CS 3733 Operating Systems
Warning: This is not for the current semester.
Survey of the rest of the books:
Sliberschatz and Galvin
- We covered most of Chapters 1-6 and 8-9.
- Chapter 7: Deadlocks
I talked about the idea of a deadlock when we discussed process synchronization.
This chapter discusses deadlocks in some detail from both the theoretical and
practical viewpoints. It discusses how to detect, avoid, and recover from
deadlocks.
- Chapter 10: File-System Interface
Most of the information here we discussed in Chapter 3 of PUP
- Chapter 11: File-System Implementation
This chapter discusses several methods of oranizing a file system.
We talked about the use of inodes when we discussed Chapter 3 of PUP.
- I/O Systems: Chapters 12-15
These chapters discuss the design of an I/O subsystem.
We discussed I/O from a usage, rather than a design point of view.
- Chapter 15 Network Strucures
We covered most of this material when we discussed Chapter 12 of PUP.
- Chapters 16-18: Distribued Systems
This material is covered in our graduate OS course.
- Chapters 19 and 20: Protection and Security
This material is usually covered in our graduate OS course.
- Chapters 21-24: Case Studies
Most of this material deals with three case studies: UNIX, Linux,
and Windows NT. Almost all of the material on UNIX was covered in class.
Some of the addional material was covered as examples throughout the semester.
Practical UNIX Programming
- We covered much of Chapters 1-5 and 12.
- Chapter 6: Timers
This is a project chapter that introduces timers that can generate signals
after a given amount of time.
- Chapter 7: Cracking Shells
This is a project chapter which develops several versions of UNIX shells,
each a bit more complex than the last.
- Chapter 8 Critical Sections and Semaphores
This chapter introduces semaphores (which we covered in class from
a theoretical point of view) and describes how to use semaphores in UNIX.
- Chapters 9 and 10: Threads and Thread Synchronization
These chapters deal with the use of threads and synchronization using threads.
They contain a number of examples of how threads can be used for parallel
processing and for simplifying the design of programs run on a single CPU.
- Chapter 13: Internet Radio
When this chapter was written, the idea of sending sound over the internet
was new. It is a project chapter that discusses sending audio over the network
from a server.
- Chapter 14: Remote Procedure Calls
RPC is a method of executing a procedure on a remote machine and returning
values over the network.
- Chapter 15: Tuple Space
This is a project chapter that develops a simple distributed computing
environment based on the Linda system.