(NOTE: Each chapter concludes with Summary, Key Terms, Review Questions and/or Recommended Reading, and Problems.)
Outline of the Book. Topic Ordering. Internet and Web Resources.
1. Computer System Overview.
Basic Elements. Processor Registers. Instruction Execution. Interrupts. The Memory Hierarchy. Cache Memory. I/O Communication Techniques. Appendix 1A: Performance Characteristics of Two-Level Memory. Appendix 1B: Procedure Control.
2. Operating System Overview.
Operating System Objectives and Functions. The Evolution of Operating Systems. Major Achievements. Characteristics of Modern Operating Systems. Windows 2000 Overview. Traditional UNIX Systems. Modern UNIX Systems.
3. Process Description and Control.
Process States. Process Description. Process Control. UNIX SVR4 Process Management.
4. Threads, SMP, and Microkernels.
Processes and Threads. Symmetric Multiprocessing. Microkernels. Windows 2000 Thread and SMP Management. Solaris Thread and SMP Management. Linux Process and Thread Management.
5. Concurrency: Mutual Exclusion and Synchronization.
Principles of Concurrency. Mutual Exclusion: Software Approaches.Mutual Exclusion: Hardware Support. Semaphores. Monitors. Message Passing. Readers/Writers Problem.
6. Concurrency: Deadlock and Starvation.
Principles of Deadlock. Deadlock Prevention. Deadlock Avoidance. Deadlock Detection. An Integrated Deadlock Strategy. Dining Philosophers Problem. UNIX Concurrency Mechanisms. Solaris Thread Synchronization Primitives. Windows 2000 Concurrency Mechanisms.
7. Memory Management.
Memory Management Requirements. Memory Partitioning. Paging. Segmentation. Appendix 7A: Loading and Linking.
8. Virtual Memory.
Hardware and Control Structures. Operating System Software. UNIX and Solaris Memory Management. Linux Memory Management. Windows 2000 Memory Management. Appendix 8A: Hash Tables.
9. Uniprocessor Scheduling.
Types of Scheduling. Scheduling Algorithms. Traditional UNIX Scheduling. Appendix 9A: Response Time. Appendix 9B: Queuing Systems.
10. Multiprocessor and Real-Time Scheduling.
Multiprocessor Scheduling. Real-Time Scheduling. Linux Scheduling. UNIX SVR4 Scheduling. Windows 2000 Scheduling.
V. INPUT/OUTPUT AND FILES.
11. I/O Management and Disk Scheduling.
I/O Devices. Organization of the I/O Function. Operating System Design Issues. I/O Buffering. Disk Scheduling. RAID. Disk Cache. UNIX SVR4 I/O. Windows 2000 I/O. Appendix 11A: Disk Storage Devices.
12. File Management.
Overview. File Organization. File Directories. File Sharing. Record Blocking. Secondary Storage Management. UNIX File Management. Windows 2000 File System.
VI. DISTRIBUTED SYSTEMS.
13. Distributed Processing, Client/Server, and Clusters.
Client/Server Computing. Distributed Message Passing. Remote Procedure Calls. Clusters. Windows 2000 Cluster Server. Sun Cluster. Beowulf and Linux Clusters.
14. Distributed Process Management.
Process Migration. Distributed Global States. Distributed Mutual Exclusion. Distributed Deadlock.
15. Computer Security.
Security Threats. Protection. Intruders. Malicious Software. Trusted Systems. Windows 2000 Security. Appendix 15A: Encryption.
Appendix A: TCP/IP.
The Need for a Protocol Architecture. The TCP/IP Protocol Architecture.
Appendix B: Object-Oriented Design.
Motivation. Object-Oriented Concepts. Benefits of Object-Oriented Design. CORBA.
Appendix C: Programming and Operating System Projects.
Projects for Teaching Operating Systems. Nachos. Research Projects. Programming Projects. Reading/Report Assignments.
Appendix D: OSP: An Environment for Operating System Projects.
Overview. Innovative Aspects of OSP. Comparison with Other Operating System Courseware. The OSP Software Distribution. OSP Mailing List. Future Plans.
Appendix E: BACI: The Ben-Ari Concurrent Programming System.
Introduction. BACI. Examples of BACI Programs. BACI Projects. Enhancements to the BACI System.