Typical Single Semester Course
The following syllabus is designed for a typical undergraduate
course where the goal is to introduce students to the concepts of
operating systems. We encourage you to examine our notes on
integrating Java within this
suggested curriculum.
- Chapter 1: Introduction
- Chapter 2: Computer System Structures
This chapter can be skipped if students are familiar with
computer organization.
- Chapter 3: Operating System Structures
Section 3.6 (Virtual Machines) may be omitted if desired.
- Chapter 4: Processes
Section 4.5 (Interprocess Communication) can be explored in less detail.
- Chapter 5: Threads
- Chapter 6: CPU Scheduling
Sections 6.4 (Multiple-Processor Scheduling) and 6.5
(Real-Time Scheduling) may be omitted if desired.
- Chapter 7: Process Synchronization
Section 7.7 (Monitors) may be omitted.
- Chapter 8: Deadlocks
You may only want to cover Sections 8.1 through 8.3.
- Chapter 9: Memory Management
Sections 9.5 and 9.6 may be omitted if you do not wish to cover
segmented architectures.
- Chapter 10: Virtual Memory
- Chapter 11: File-System Interface
Sections 11.3.1 and 11.3.2 may be omitted (Single-Level and
Two-Level Directories).
- Chapter 12: File-System Implementation
- Chapter 13: I/O Systems
Section 13.1 and 13.2 may be omitted if students have an
understanding of I/O hardware.
- Chapter 14: Mass-Storage Structure
Coverage of Section
14.8 (Tertiary-Storage Structure) may depend upon the amount
of time remaining. Disk scheduling algorithms (Section 14.2)
make nice Java exercises.