Chapter 1 Operating System Overview
1.1 Operating System Objectives and Functions
1.2 The Evolution of Operating Systems
1.3 Major Achievements
1.4 Developments Leading to Modern Operating Systems
1.5 Virtual Machines
1.6 OS Design Considerations for Multiprocessor and Multicore
1.7 Microsoft Windows Overview
1.8 Traditional UNIX Systems
1.9 Modern UNIX Systems
1.10 Linux
1.11 Linux VServer Virtual Machine Architecture
1.12 Recommended Reading and Web Sites
1.13 Key Terms, Review Questions, and Problems
Chapter 2 Process Description and Control
2.1 What Is a Process?
2.2 Process States
2.3 Process Description
2.4 Process Control
2.5 Execution of the Operating System
2.6 Security Issues
2.7 UNIX SVR4 Process Management
2.8 Summary
2.9 Recommended Reading
2.10 Key Terms, Review Questions, and Problems
Chapter 3 Threads
3.1 Processes and Threads
3.2 Types of Threads
3.3 Multicore and Multithreading
3.4 Windows 7 Thread and SMP Management
3.5 Solaris Thread and SMP Management
3.6 Linux Process and Thread Management
3.7 Mac OS X Grand Central Dispatch
3.8 Summary
3.9 Recommended Reading
3.10 Key Terms, Review Questions, and Problems
Chapter 4 Concurrency: Mutual Exclu- sion and Synchronization
4.1 Principles of Concurrency
4.2 Mutual Exclusion: Hardware Support
4.3 Semaphores
4.4 Monitors
4.5 Message Passing
4.6 Readers/Writers Problem
4.7 Summary
4.8 Recommended Reading
4.9 Key Terms, Review Questions, and Problems
Chapter 5 Concurrency: Deadlock and Starvation
5.1 Principles of Deadlock
5.2 Deadlock Prevention
5.3 Deadlock Avoidance
5.4 Deadlock Detection
5.5 An Integrated Deadlock Strategy
5.6 Dining Philosophers Problem
5.7 UNIX Concurrency Mechanisms
5.8 Linux Kernel Concurrency Mechanisms
5.9 Solaris Thread Synchronization Primitives
5.10 Windows 7 Concurrency Mechanisms
5.11 Summary
5.12 Recommended Reading
5.13 Key Terms, Review Questions, and Problems
Chapter 6 Memory Management
6.1 Memory Management Requirements
6.2 Memory Partitioning
6.3 Paging
6.4 Segmentation
6.5 Security Issues
6.6 Summary
6.7 Recommended Reading
6.8 Key Terms, Review Questions, and Problems
6A Loading and Linking
Chapter 7 Virtual Memory
7.1 Hardware and Control Structures
7.2 Operating System Software
7.3 UNIX and Solaris Memory Management
7.4 Linux Memory Management
7.5 Windows Memory Management
7.6 Summary
7.7 Recommended Reading and Web Sites
7.8 Key Terms, Review Questions, and Problems
Chapter 8 Uniprocessor Scheduling
8.1 Types of Processor Scheduling
8.2 Scheduling Algorithms
8.3 Traditional UNIX Scheduling
8.4 Summary
8.5 Recommended Reading
8.6 Key Terms, Review Questions, and Problems
Chapter 9 Multiprocessor and Real-Time Scheduling
9.1 Multiprocessor Scheduling
9.2 Real-Time Scheduling
9.3 Linux Scheduling
9.4 UNIX SVR4 Scheduling
9.5 UNIX FreeBSD Scheduling
9.6 Windows Scheduling
9.7 Linux Virtual Machine Process Scheduling
9.8 Summary
9.9 Recommended Reading
9.10 Key Terms, Review Questions, and Problems
Chapter 10 I/O Management and Disk Scheduling
10.1 I/O Devices
10.2 Organization of the I/O Function
10.3 Operating System Design Issues
10.4 I/O Buffering
10.5 Disk Scheduling
10.6 RAID
10.7 Disk Cache
10.8 UNIX SVR4 I/O
10.9 Linux I/O
10.10 Windows I/O
10.11 Summary
10.12 Recommended Reading
10.13 Key Terms, Review Questions, and Problems
Chapter 11 File Management
11.1 Overview
11.2 File Organization and Access
11.3 B-Trees
11.4 File Directories
11.5 File Sharing
11.6 Record Blocking
11.7 Secondary Storage Management
11.8 File System Security
11.9 UNIX File Management
11.10 Linux Virtual File System
11.11 Windows File System
11.12 Summary
11.13 Recommended Reading
11.14 Key Terms, Review Questions, and Problems
References