The purpose of this course is to provide students basic knowledge of operating systems,
difference between the kernel and user modes, concepts of application program interfaces, methods
and implementations of interrupts. Students are introduced to the schedulers, policies,
processes, threads, memory management, virtual memory, protection, access control, and
authentication. Students learn system calls in different popular operating systems used in the
At the successful completion of this course, students will be able to:
- Explain the objectives and functions of modern operating systems.
- Describe how computing resources are used by application software and managed by system
- Describe reasons for using interrupts, dispatching, and context switching to support
concurrency in an operating system. Evaluate the trade-offs in terms of memory size (main
memory, cache memory, auxiliary memory) and processor speed.
- Articulate the need for protection and security in an operating system.
- Module 1: Introduction, and Computer System Structures (Chapter 1)
- Module 2: Operating System Structures (Chapter 2)
- Module 3: Processes (Chapter 3)
- Module 4: Threads (Chapter 4)
- Module 5: CPU Scheduling (Chapter 5)
- Module 6: Synchronization Tools (Chapter 6)
- Module 7: Synchronization Examples (Chapter 7)
- Module 8: Deadlocks (Chapter 8)
- Module 9: Main Memory Management (Chapter 9)
- Module 10: Virtual Memory (Chapters 10)
- Module 11: Mass Storage structure (Chapters 11)
- Module 12: Input/Output (Chapter 12)
- Module 13: File System Interface (Chapter 13)
- Module 14: File System Implementation (Chapter 14)
Required text and materials
Silberschatz, A., Galvin, P.B., & Gagne, G. (2018). Operating System Concepts with
Java, (10th ed.). John Wiley & Sons.
Type: Enhanced E-Text plus abridged print
companion: ISBN: 978-1-119-45633-9-
Computer with Internet access.
Java Programming Language.
Microsoft Office or other Office software to view Power Point presentations.
Please be aware that due to COVID-19 safety guidelines all in-person exams have been suspended. As such, all final exams are currently being delivered through ProctorU, which has an approximate fee of $35 involved. There will be more information in your course shell, on how to apply, if your course has a final exam.
To successfully complete this course, students must obtain 50% or higher on the overall course,
and 50% or higher on the final mandatory examination.
|Assignment 1: Introduction to Linux
|Assignment 2: Unix Processes
|Assignment 3: Multithread Programming
|Assignment 4: Calculation of CPU Scheduling Algorithms
|Assignment 5: Process Synchronization
|Assignment 6: Memory Management
|Assignment 7: Mass Storage
|Assignment 8: File Systems
|Final Examination *
Open Learning Faculty Member
An Open Learning Faculty Member is available to assist students. Primary communication is
through the Learning Environment's "Mail" tool or by phone. Students will receive the necessary
contact information at the start of the course.