book cover Operating System Concepts Essentials
Eight Edition
Avi Silberschatz
Peter Baer Galvin
Greg Gagne

line separator

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 students.

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.

From our experiences, covering Chapters 1 - 12 in a one-semester course is very manageable. Rarely can we cover material on Protection and Security (Chapters 13 and 14) in introductory operating systems classes. For advanced classes - if time permits - we encourage you to cover the chapters on Protection and Security in their entirety.

line separator

We welcome feedback on the suggested syllabus from instructors.