Advanced Single Semester Course
The following syllabus is designed for an undergraduate 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 11 (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 20 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 at least one of the case studies
to complement the material.
- Chapter 1: Introduction
This chapter can be skimmed. Section 1.2 (Computer System Organization)
can be skipped if students are familiar with computer organization.
- Chapter 2: Operating System Structures
This chapter can be quickly skimmed, especially Sections 2.1 through 2.5.
The end-of-chapter project makes an excellent exercise.
- Chapter 3: Processes
Sections 3.1 and 3.2 can be skipped if students are familiar with the process
model and process scheduling. The end-of-chapter project makes an excellent
exercise.
- Chapter 4: Threads
For students familiar with the concept of threads, Section 4. 1
(Overview) can be skipped. The end-of-chapter project makes an excellent
exercise.
- Chapter 5: CPU Scheduling
Sections 5.1 through 5.3 can be skipped for students already familiar
with the notion of CPU scheduling. The secheduling algorithms make nice programming
exercises.
- 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. The end-of-chapter
project makes an excellent exercise.
- Chapter 7: Main Memory
Sections 7.1 through 7.4 may be covered quickly depending upon students'
familiarity with main memory.
- Chapter 8: Virtual Memory
Sections 8.1, 8.2, and 8,4 may be skimmed quickly depending
upon students' familiarity with virtual memory.
- Chapter 9: Mass-Storage Structure
Sections 9.1, 9.2, and 9.4 may be covered quickly depending
upon students' background. The disk scheduling algorithms (Section 9.4)
make nice programming exercises.
- Chapter 10: File-System Interface
Section 10.1 (File Concept) may be skipped depending upon students' background.
- Chapter 11: File-System Implementation
Sections 11.1, 11.4, and 11.5 may be covered quickly depending
upon students' experience.
- Chapter 12: I/O Systems
Section 12.1 and 12.2 may be omitted if students have an understanding
of I/O hardware.
- Chapter 13 Protection
We recommend covering this chapter in its entirety in an advanced operating
systems class.
- Chapter 14 Security
We recommend covering this chapter in its entirety in an advanced operating
systems class.
- Chapter 15 Linux
Covering at least one of the case studies nicely complements the material
covered in earlier chapters.