Advanced Single Semester Course
The
following is a selection of topics for an undergraduate or
graduate operating systems course covering advanced issues.
Determining what content to involve in an advanced class can
be a difficult task as quite often the background
constituting operating system fundamentals varies widely. However,
it is our experience that introductory courses generally cover
material through chapter 15 (File Systems). You may discover that
you will need to adjust what we recommend in earlier chapters
based upon the experiences students bring into your class. The
projects at the end of certain chapters make excellent exercises.
Below
are recommendations for the first 19 chapters of the text. We have
attempted to offer solutions that are flexible enough allowing
instructors to tailor the material based upon the specific
backgrounds of students and goals of the class. We suggest
covering either the Linux or Windows 10 case studies to complement
the material.
- Chapter 1: Introduction
This chapter can be covered fairly quickly depending upon the
background of the students.
- Chapter 2: Operating System Structures
This chapter can be covered fairly quickly depending upon the
background of the students.
- Chapter 3: Processes
This is an important chapter and provides the basis for many
later topics. Some may choose to skip Section 3.8
(Communication in Client-Server Systems) if networking is not
covered.
- Chapter 4: Threads & Concurrency
Section 4.3 (Multithreading Models) may only require covering
the 1:1 model. Section 4.6 (Threading Issues) can be covered
lightly.
- Chapter 5: CPU Scheduling
Sections 5.6 (Real-Time Scheduling) and 5.8
(Algorithm Evaluation) may be omitted if desired.
- Chapter 6: Synchronization Tools
Section 6.3 (Peterson's Solution) may be omitted if you do not
intend on covering software solutions to the critical section
problem. Sections 6.7 (Monitors) may be omitted as well.
- Chapter 7 Synchronization Examples
You may choose to cover either Section 7.3 (POSIX
Synchronization) or 7.4 (Synchronization in Java) based upon the
programming environment you are using.
- Chapter 8: Deadlocks
You may only want to cover Sections 8.1 through 8.4.
- Chapter 9: Main Memory
We encourage you to cover this entire chapter.
- Chapter 10: Virtual Memory
Section 10.9 (Other Considerations) may be covered
lightly.
Many users of the text cover the following five chapters on
storage management very lightly.
- Chapter 11: Mass-Storage Structure
Section 11.4 (Error Detection and Correction) may be skipped.
Sections 11.5 (Storage Device Management) and 11.6 (Swap Space
Management) may be covered lightly. Section 11.7 (Storage
Attachment), and 11.8 (RAID Structure) can be omitted.
- Chapter 12: I/O Systems
Section 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 if time is running short.
- Chapter 13: File-System Interface
Section 13.4 (Protection) may be omitted.
- Chapter 14: File-System Implementation
Section 14.8 (The WAFL File System) may be omitted.
- Chapter 15 File-System Internals
Sections 15.6 (Remote File Systems), 15.7 (Consistency
Semantics), and 15.8 (NFS) may be skipped.
- Chapter 16 Security
We recommend covering this chapter
in its entirety in an advanced operating systems class.
- Chapter 17 Protection
We recommend covering this chapter
in its entirety in an advanced operating systems class.
- Chapter 18 Virtual Machines
Section 18.8 (Virtualization Research) can be skipped.
- Chapter 19 Networks and Distributed Systems
If students have not been exposed to networking, we recommend
covering this chapter in an advanced operating systems class.