PART ONE OVERVIEW
Chapter 1 Introduction
1.1 What Operating Systems Do
1.2 Computer-System Organization
1.3 Computer-System Architecture
1.4 Operating-System Structure
1.5 Operating-System Operations
1.6 Process Management
1.7 Memory Management
1.8 Storage Management
1.9 Protection and Security
1.10 Distributed Systems
1.11 Special-Purpose Systems
1.12 Computing Environments
1.13 Summary
Exercises
Bibliographical Notes
Chapter 2 Operating-System Structures
2.1 Operating-System Services
2.2 User Operating-System Interface
2.3 System Calls
2.4 Types of System Calls
2.5 System Programs
2.6 Operating-System Design and ImplementatiOn
2.7 Operating-System Structure
2.8 Virtual Machines
2.9 Java
2.10 Operating-System Generation
2.11 System Boot
2.12 Summary
Exercises
Bibliographical Notes
PART TWO PROCESS MANAGEMENT
Chapter 3 Processes
3.1 Process Concept
3.2 Process Scheduling
3.3 Operations on Processes
3.4 Interprocess Communication
3.5 Examples of IPC Systems
3.6 Communication in Client-Server Systems
3.7 Summary
Exercises
Bibliographical Notes
Chapter 4 Threads
4.1 Overview
4.2 Multithreading Models
4.3 Thread Libraries
4.4 Java Threads
4.5 Threading Issues
4.6 Operating-System Examples
4.7 Summary
Exercises
Bibliographical Notes
Chapter 5 CPU Scheduling
5.1 Basic Concepts
5.2 Scheduling Criteria
5.3 Scheduling Algorithms
5.4 Multiple-Processor Scheduling
5.5 Thread Scheduling
5.6 Operating System Examples
5.7 Java Scheduling
5.8 Algorithm Evaluation
5.9 Summary
Exercises
Bibliographical Notes
Chapter 6 Process Synchronization
6.1 Background
6.2 The Critical-Section problem
6.3 Peterson's Solution
6.4 Synchronization Hardware
6.5 Semaphores
6.6 Classic Problems of Synchronization
6.7 Monitors
6.8 Java Synchronization
6.9 Synchronization Examples
6.10 Atomic Transactions
6.11 Summary
Exercises
Bibliographical Notes
Chapter 7 Deadlocks
7.1 System Model
7.2 Deadlock Characterization
7.3 Methods for Handling Deadlocks
7.4 Deadlock Prevention
7.5 Deadlock Avoidance
7.6 Deadlock Detection
7.7 Recovery from Deadlock
7.8 Summary
Exercises
Bibliographical Notes
PART THREE MEMORY MANAGEMENT
Chapter 8 Main Memory
8.1 Background
8.2 Swapping
8.3 Contiguous Memory Allocation
8.4 Paging
8.5 Structure of the Page Table
8.6 Segmentation
8.7 Example:The Intel Pentium
8.8 Summary
Exercises
Bibliographical Notes
Chapter 9 Virtual Memory
9.1 Background
9.2 Demand Paging
9.3 Copy-on-Write
9.4 Page Replacement
9.5 Allocation of Frames
9.6 Thrashing
9.7 Memory-Mapped Files
9.8 Allocating Kernel Memory
9.9 Other Considerations
9.10 Operating-System Examples
9.11 Summary
Exercises
Bibliographical Notes
PART FOUR STORAGE MANAGEMENT
Chapter 10 File'System Interface
10.1 The Concept of a File
10.2 Access Methods
10.3 Directory Structure
10.4 File-System Mounting
10.5 File Sharing
10.6 Protection
10.7 Summary
Exercises
Bibliographical Notes
Chapter 11 File-System Implementation
11.1 File-System Structure
11.2 File-System Implementation
11.3 Directory Implementation
11.4 Allocation Methods
11.5 Free-Space Management
11.6 Efficiency and Performance
11.7 Recovery
11.8 Log-Structured File Systems
11.9 NFS
11.10 Example:The WAFL File System
11.11 Summary
Exercises
Bibliographical Notes
Chapter 12 Mass-Storage Structure
12.1 Overview of Mass-Storage Structure
12.2 Disk Structure
12.3 Disk Attachment
12.4 Disk Scheduling
12.5 Disk Management
12.6 Swap-Space Management
12.7 RAID Structure
12.8 Stable-Storage Implementation
12.9 Tertiary-Storage Structure
12.10 Summary
Exercises
Bibliographical Notes
Chapter 13 I/O Systems
13.1 Overview
13.2 I/O Hardware
13.3 Application I/O Interface
13.4 Kernel I/O Subsystem
13.5 Transforming I/O Requests to Hardware Operations
13.6 STREAMS
13.7 Performance
13.8 Summary
Exercises
Bibliographical Notes
PART FIVE PROTECTION AND SECURITY
Chapter 14 Protection
14.1 Goals of Protection
14.2 Principles of Protection
14.3 Domain of Protection
14.4 Access Matrix
14.5 Implementation of Access Matrix
14.6 Access Control
14.7 Revocation of Access Rights
14.8 Capability-Based Systems
14.9 Language-Based Protection
14.10 Summary
Exercises
Bibliographical Notes
Chapter 15 Security
15.1 The Security Problem
15.2 Program Threats
15.3 System and Network Threats
15.4 Cryptography as a Security Tool
15.5 User Authentication
15.6 Implementing Security Defenses
15.7 Firewalling to Protect Systems and Networks
15.8 Computer-Security Classifications
15.9 An Example:W'mdows XP
15.10 Summary
Exercises
Bibliographical Notes
PART SIX DISTRIBUTED SYSTEMS
Chapter 16 Distributed System Structures
16.1 Motivation
16.2 Types of Network- based Operating Systems
16.3 Network Structure
16.4 Network Topology
16.5 Communication Structure
16.6 Communication Protocols
16.7 Robustness
16.8 Design Issues
16.9 An Example:Networking
16.10 Summary
Exercises
Bibliographical Notes
Chapter 17 Distributed File Systems
17.1 Background
17.2 Naming and Transparency
17.3 Remote File Access
17.4 Stateful Versus Stateless Service
17.5 File Replication
17.6 An Example:AFS
17.7 Summary
Exercises
Bibliographical Notes
Chapter 18 Distributed Coordination
18.1 Event Ordering
18.2 Mutual Exclusion
18.3 Atomicity
18.4 Concurrency Control
18.5 Deadlock Handling
18.6 Election Algorithms
18.7 Reaching Agreement
18.8 Summary
Exercises
Bibliographical Notes
PART SEVEN SPECIAL PURPOSE SYSTEMS
Chapter 19 Real-Time Systems
19.1 Overview
19.2 System Characteristics
19.3 Features of Real-Time Kernels
19.4 Implementing Real-Time Operating Systems
19.5 Real-Tune CPU Scheduling
19.6 VxWorks 5.x
19.7 Summary
Exercises
Bibliographical Notes
Chapter 20 Multimedia Systems
20.1 What Is Multimedia?
20.2 Compression
20.3 Requirements of Multimedia Kernels
20.4 CPU Scheduling
20.5 Disk Scheduling
20.6 Network Management
20.7 An Example:CineBlitz
20.8 Summary
Exercises
Bibliographical Notes
PART EIGHT CASE STUDIES
Chapter 21 The Linux System
21.1 Linux History
21.2 Design Principles
21.3 Kernel Modules
21.4 Process Management
21.5 Scheduling
21.6 Memory Management
21.7 File Systems
21.8 Input and Output
21.9 Interprocess Communication
21.10 Network Structure
21.11 Security
21.12 Summary
Exercises
Bibliographical Notes
Chapter 22 Windows XP
22.1 History
22.2 Design Principles
22.3 System Components
22.4 Environmental Subsystems
22.5 File System
22.6 Networking
22.7 Programmer Interface
22.8 Summary
Exercises
Bibliographical Notes
Chapter 23 Influential Operating Systems
23.1 Early Systems
23.2 Atlas
23.3 XDS-940
23.4 THE
23.5 RC 4000
23.6 CTSS
23.7 MULTICS
23.8 IBM OS/360
23.9 Mach
23.10 Other Systems Exercises
PARTE-IGHT APPENDICES
Appendix A BSD UNIX (contents,online)
A.1 UNIX History
A.2 Design Principles
A.3 Programmer Interface
A.4 User Interface
A.5 Process Management
A.6 Memory Management
A.7 File System
A.8 I/O System
A.9 Interprocess Communication
A.10 Summary
Exercises
Bibliographical Notes
Appendix B The Mach System(contents online)
B.1 History of the Mach System
B.2 Design Principles
B.3 System Components
B.4 Process Management
B.5 Interprocess Communication
B.6 Memory Management
B.7 Programmer Interface
B.8 Summary
Exercises
Bibliographical Notes
Credits
Appendix C Windows 2000 (contents online)
C.1 History
C.2 Design Principles
C.3 System Components
C.4 Environmental Subsystems
C.5 File System
C.6 Networking
C.7 Programmer Interface
C.8 Summary
Exercises
Bibliographical Notes
Appendix D Distributed Communication (contents online)
D.1 Sockets
D.2 UDP Sockets
D.3 Remote Method Invocation
D.4 Other Aspects of Distributed Communication
D.5 Web Services
D.6 Summary
Exercises
Bibliographical Notes
Appendix E Java Primer (contents online)
E.1 Basics
E.2 Inheritance
E.3 Interfaces and Abstract Classes
E.4 Exception Handling
E.5 Applications and Applets
E.6 Summary Bibliographical Notes
Bibliography
Credits
Index