Introduction to Operating Systems
Revised: August 2018
The system call interface and the implementation of the operating system kernel (process
management, memory management, and file systems); concurrency (including synchronization
primitives, inter-process communication and deadlock); system security.
Corequisites & Notes
After completing this course, you will better understand the implementation of, and
services provided by modern operating systems. In particular, you will understand
the system call interface to the operating system kernel, process and thread management,
mutual exclusion, process scheduling, deadlocks, memory management, and file systems.
Additionally, you will possess the programming skills needed to implement parallel
applications using threads.
Abraham Silbershatz, Peter Baer Galvin, and Greg Gagne, Operating Systems Concepts with Java, Eight Edition, John Wiley and Sons, 2010.
Grading procedures and factors influencing course grade are left to the discretion
of individual instructors, subject to general university policy.
Attendance policy is left to the discretion of individual instructors, subject to
general University policy.
- Introduction to Operating Systems
Some basic terminology (process, kernel), functions of operating systems, current
system classifications (parallel, distributed, real-time).
- Introduction to the C Programming Language
An abbreviated overview of the C programming language.
- System Call Abstraction
Components of an operating system kernel, the system call interface (generic and UNIX-specific).
Structuring of an operating system kernel (monolithic, microkernel, etc).
- Basic Process Management and Threads
Process state transition diagram, context switches, threads.
- Process Synchronization
Interprocess communication, the critical section problem, software solutions, semaphores,
monitors, classical problems, Java synchronization.
- Deadlock Handling
Deadlock characterization, deadlock prevention, deadlock avoidance, and deadlock detection.
- Process Scheduling
An introduction to the aspects of computer hardware relevant to the operating system
including device drivers, I/O interrupts, interrupt vectors, DMA, memory-mapped I/O,
programmed I/O, interupt-driven I/O, storage hierarchy, dual-mode operation, memory
protection using base and limit registers, timer interrupts and time slicing (quantums
and preemptive CPU scheduling).
- Memory management
Memory management for non-virtual memory systems: swapping, contiguous allocation,
segmentation, and paging. Virtual memory systems: demand paging, page replacement,
- File Systems and Secondary Storage (Time permitting)
The kernel I/O subsystem (interrupt handling and device drivers), disk scheduling,
the file system interface, and file system implementation.