Below is a suggested syllabi listing topics for a typical one-semester
undergraduate course on operating systems. Because we often use
examples illustrating POSIX to highlight UNIX/Linux style systems or
Win32 to highlight Windows systems, you may choose to cover either
POSIX or Win32 depending upon the type of operating system you and your
students are using. However, we encourage you to cover both systems
whenever possible as exposure to more than one API is beneficial to
We also encourage you to cover at least one of the case studies - Chapter 15 (Linux) and/or Chapter 16 (Windows 7).
Chapter 1: Introduction
This chapter can be covered fairly quickly, especially if students are familiar with computer organization. Section 1.10 (Distributed Systems) can be omitted if you do not intend on covering networking.
Chapter 2: Operating System Structures
Sections 2.6 (Operating System Design and Implementation), 2.9 (Operating System Debugging), 2.10 (System Generation), and 2.11 (System Boot) may be omitted if desired.
Chapter 3: Processes
Section 3.6 (Communication in Client-Server Systems) may be skipped if desired.
Chapter 4: Threads
Section 4.4 (Threading Issues) can be covered lightly.
Chapter 5: CPU Scheduling
Section 5.7 (Algorithm Evaluation) can be omitted if desired.
Chapter 6: Process Synchronization
Section 6.3 (Peterson's Solution) may be omitted if you do not intend on covering software solutions to the critical section problem. Section 6.7 (Monitors) may be omitted as well. We encourage you to cover Section 6.9 (Deadlocks.)
Chapter 7: Main Memory
Sections 7.6 and 7.7 may be omitted if you do not wish to cover segmented architectures.
Chapter 8: Virtual Memory
Section 8.7 (Memory-Mapped Files) can be covered lightly. Section 8.8 (Allocating Kernel Memory) may be omitted if desired. Section 8.9 (Other Considerations) may be covered lightly as well.
Chapter 9: File-System Interface
Sections 9.3.3 and 9.3.4 may be omitted (Single-Level and Two-Level Directories). Sections 9.5 (File Sharing) and 9.6 (Protection) may be omitted if desired.
Chapter 10: File-System Implementation
Section 10.2.3 (Virtual File Systems) may be skipped. Section 10.6 (Efficiency and Performance) may be covered lightly.
Chapter 11: Mass-Storage Structure
Sections 11.3 (Disk Attachment) may be skipped. Sections 11.5 (Disk Management) and 11.6 (Swap Space Management) may be covered lightly. Section 11.7 (RAID Structure) may be skipped. Disk scheduling algorithms (Section 11.4) make nice programming exercises.
Chapter 12: I/O Systems
Sections 12.1 and 12.2 may be omitted if students have an understanding of I/O hardware. Section 12.6 (STREAMS) may be omitted. Remaining sections may be covered lightly, especially if students have an understanding of I/O hardware.