Chapter 0 Reader’s Guide
0.1 Outline of the Book
0.2 Topic Ordering
0.3 Internet and Web Resources
PART ONE BACKGROUND
Chapter 1 Computer System Overview
1.1 Basic Elements
1.2 Processor Registers
1.3 Instruction Execution
1.4 Interrupts
1.5 The Memory Hierarchy
1.6 Cache Memory
1.7 I/O Communication Techniques
1.8 Recommended Readings and Web Sites
1.9 Key Terms, Review Questions, and Problems
Appendix 1A Performance Characteristics of Two-Level Memories
Appendix 1B Procedure Control
Chapter 2 Operating System Overview
2.1 Operating System Objectives and Functions
2.2 The Evolution of Operating Systems
2.3 Major Achievements
2.4 Developments Leading to Modern Operating Systems
2.5 Microsoft Windows Overview
2.6 Traditional UNIX Systems
2.7 Modern UNIX Systems
2.8 Linux
2.9 Recommended Readings and Web Sites
2.10 Key Terms, Review Questions, and Problems
PART TWO PROCESSES
Chapter 3 Process Description and Control
3.1 What is a Process?
3.2 Process States
3.3 Process Description
3.4 Process Control
3.5 UNIX SVR4 Process Management
3.6 Summary
3.7 Recommended Readings
3.8 Key Terms, Review Questions, and Problems
Programming Project One: Developing a Shell
Chapter 4 Threads, SMP, and Microkernels
4.1 Processes and Threads
4.2 Symmetric Multiprocessing
4.3 Microkernels
4.4 Windows Thread and SMP Management
4.5 Solaris Thread and SMP Management
4.6 Linux Process and Thread Management
4.7 Summary
4.8 Recommended Readings
4.9 Key Terms, Review Questions, and Problems
Chapter 5 Concurrency: Mutual Exclusion and Synchronization
5.1 Principles of Concurrency
5.2 Mutual Exclusion: Hardware Support
5.3 Semaphores
5.4 Monitors
5.5 Message Passing
5.6 Readers/Writers Problem
5.7 Summary
5.8 Recommended Readings
5.9 Key Terms, Review Questions, and Problems
Chapter 6 Concurrency: Deadlock and Starvation
6.1 Principles of Deadlock
6.2 Deadlock Prevention
6.3 Deadlock Avoidance
6.4 Deadlock Detection
6.5 An Integrated Deadlock Strategy
6.6 Dining Philosophers Problem
6.7 UNIX Concurrency Mechanisms
6.8 Linux Kernel Concurrency Mechanisms
6.9 Solaris Thread Synchronization Primitives
6.10 Windows Concurrency Mechanisms 291
6.11 Summary
6.12 Recommended Readings
6.13 Key Terms, Review Questions, and Problems
PART THREE MEMORY
Chapter 7 Memory Management
7.1 Memory Management Requirements
7.2 Memory Partitioning
7.3 Paging
7.4 Segmentation
7.5 Summary
7.6 Recommended Readings
7.7 Key Terms, Review Questions, and Problems
Appendix 7A Loading and Linking
Chapter 8 Virtual Memory
8.1 Hardware and Control Structures
8.2 Operating System Software
8.3 UNIX and Solaris Memory Management
8.4 Linux Memory Management
8.5 Windows Memory Management
8.6 Summary
8.7 Recommended Readings and Web Sites
8.8 Key Terms, Review Questions, and Problems
Appendix 8A Hash Tables
PART FOUR SCHEDULING
Chapter 9 Uniprocessor Scheduling
9.1 Types of Processor Scheduling
9.2 Scheduling Algorithms
9.3 Traditional UNIX Scheduling
9.4 Summary
9.5 Recommended Readings
9.6 Key Terms, Review Questions, and Problems
Appendix 9A Response Time
Appendix 9B Queuing Systems
Programming Project Two: The HOST Dispatcher Shell
Chapter 10 Multiprocessor and Real-Time Scheduling
10.1 Multiprocessor Scheduling
10.2 Real-Time Scheduling
10.3 Linux Scheduling
10.4 UNIX SVR4 Scheduling
10.5 Windows Scheduling
10.6 Summary
10.7 Recommended Readings
10.8 Key Terms, Review Questions, and Problems
PART FIVE INPUT/OUTPUT AND FILES
Chapter 11 I/O Management and Disk Scheduling
11.1 I/O Devices
11.2 Organization of the I/O Function
11.3 Operating System Design Issues
11.4 I/O Buffering
11.5 Disk Scheduling
11.6 RAID
11.7 Disk Cache
11.8 UNIX SVR4 I/O
11.9 Linux I/O
11.10 Windows I/O
11.11 Summary
11.12 Recommended Readings and Web Sites
11.13 Key Terms, Review Questions, and Problems
Appendix 11A Disk Storage Devices
Chapter 12 File Management
12.1 Overview
12.2 File Organization and Access
12.3 File Directories
12.4 File Sharing
12.5 Record Blocking
12.6 Secondary Storage Management
12.7 UNIX File Management
12.8 Linux Virtual File System
12.9 Windows File System
12.10 Summary
12.11 Recommended Readings
12.12 Key Terms, Review Questions, and Problems
APPENDICES
Appendix A Topics in Concurrency
A.1 Mutual Exclusion: Software Approaches
A.2 Race Conditions and Semaphores
A.3 A Barbershop Problem
A.4 Problems
Appendix B Object-Oriented Design
B.1 Motivation
B.2 Object-Oriented Concepts
B.3 Benefits of Object-Oriented Design
B.4 CORBA
B.5 Recommended Readings and Web Sites
Appendix C Programming and Operating System Projects
C.1 Projects for Teaching Operating Systems
C.2 NACHOS
C.3 Research Projects
C.4 Programming Projects
C.5 Reading/Report Assignments
Appendix D OSP: An Environment for Operating Systems Projects
D.1 Overview
D.2 Innovative Aspects of OSP
D.3 Comparison with Other Operating System Courseware
Appendix E BACI:The Ben-Ari Concurrent Programming System
E.1 Introduction
E.2 BACI
E.3 Examples of BACI Programs
E.4 BACI Projects
E.5 Enhancements to the BACK System
Glossary
References
Index