Introducation / 1: |
What is an Operating System? / 1.1: |
The Operating System as an Extended Machine / 1.1.1: |
The Operating System as a Resource Manager / 1.1.2: |
History of Operating Systems / 1.2: |
The First Generation / 1.2.1: |
The Second Generation / 1.2.2: |
The Third Generation / 1.2.3: |
The Fourth Generation / 1.2.4: |
Computer Hardware Review / 1.3: |
Processors / 1.3.1: |
Memory / 1.3.2: |
Disks / 1.3.3: |
Tapes / 1.3.4: |
I/O Devices / 1.3.5: |
Buses / 1.3.6: |
Booting the Computer / 1.3.7: |
The Operating System Zoo / 1.4: |
Mainframe Operating Systems / 1.4.1: |
Server Operating Systems / 1.4.2: |
Multiprocessor Operating Systems / 1.4.3: |
Personal Computer Operating Systems / 1.4.4: |
Handheld Computer Operating Systems / 1.4.5: |
Embedded Operating Systems / 1.4.6: |
Sensor Node Operating Systems / 1.4.7: |
Real-Time Operating Systems / 1.4.8: |
Smart Card Operating Systems / 1.4.9: |
Operating System Concepts / 1.5: |
Processes / 1.5.1: |
Address Spaces / 1.5.2: |
Files / 1.5.3: |
Input/Output / 1.5.4: |
Protection / 1.5.5: |
The Shell / 1.5.6: |
Ontogeny Recapitulates Phylogeny / 1.5.7: |
System Calls / 1.6: |
System Calls for Process Management / 1.6.1: |
System Calls for File Management / 1.6.2: |
System Calls for Directory Management / 1.6.3: |
Miscellaneous System Calls / 1.6.4: |
The Windows Win32 API / 1.6.5: |
Operating System Structure / 1.7: |
Monolithic Systems / 1.7.1: |
Layered Systems / 1.7.2: |
Microkernels / 1.7.3: |
Client-Server Model / 1.7.4: |
Virtual Machines / 1.7.5: |
Exokernels / 1.7.6: |
The World According to C / 1.8: |
The C Language / 1.8.1: |
Header Files / 1.8.2: |
Large Programming Projects / 1.8.3: |
The Model of Run Time / 1.8.4: |
Research on Operating Systems / 1.9: |
Outline of the Rest of This Book / 1.10: |
Metric Units / 1.11: |
Summary / 1.12: |
Processes and Threads / 2: |
The Process Model / 2.1: |
Process Creation / 2.1.2: |
Process Termination / 2.1.3: |
Process Hierarchies / 2.1.4: |
Process States / 2.1.5: |
Implementation of Processes / 2.1.6: |
Modeling Multiprogramming / 2.1.7: |
Threads / 2.2: |
Thread Usage / 2.2.1: |
The Classical Thread Model / 2.2.2: |
Posix Threads / 2.2.3: |
Implementing Threads in User Space / 2.2.4: |
Implementing Threads in the Kernel / 2.2.5: |
Hybrid Implementations / 2.2.6: |
Scheduler Activations / 2.2.7: |
Pop-Up Threads / 2.2.8: |
Making Single-Threaded Code Multithreaded / 2.2.9: |
Interprocess Communication / 2.3: |
Race Conditions / 2.3.1: |
Critical Regions / 2.3.2: |
Mutual Exclusion with Busy Waiting / 2.3.3: |
Sleep and Wakeup / 2.3.4: |
Semaphores / 2.3.5: |
Mutexes / 2.3.6: |
Monitors / 2.3.7: |
Message Passing / 2.3.8: |
Barriers / 2.3.9: |
Scheduling / 2.4: |
Introduction to Scheduling / 2.4.1: |
Scheduling in Batch Systems / 2.4.2: |
Scheduling in Interactive Systems / 2.4.3: |
Scheduling in Real-Time Systems / 2.4.4: |
Policy versus Mechanism / 2.4.5: |
Thread Scheduling / 2.4.6: |
Classical Ipc Problems / 2.5: |
The Dining Philosophers Problem / 2.5.1: |
The Readers and Writers Problem / 2.5.2: |
Research on Processes and Threads / 2.6: |
Memory Management / 2.7: |
No Memory Abstraction / 3.1: |
A Memory Abstraction: Address Spaces / 3.2: |
The Notion of an Address Space / 3.2.1: |
Swapping / 3.2.2: |
Managing Free Memory / 3.2.3: |
Virtual Memory / 3.3: |
Paging / 3.3.1: |
Page Tables / 3.3.2: |
Speeding Up Paging / 3.3.3: |
Page Tables for Large Memories / 3.3.4: |
Page Lacement Algorithms / 3.4: |
The Optimal Page Replacement Algorithm / 3.4.1: |
The Not Recently Used Page Replacement Algorithm / 3.4.2: |
The First-In, First-Out / 3.4.3: |
The Second Chance Page Replacement Algorithm / 3.4.4: |
The Clock Page Replacement Algorithm / 3.4.5: |
The Least Recently Used / 3.4.6: |
S / 3.4.7: |
Introducation / 1: |
What is an Operating System? / 1.1: |
The Operating System as an Extended Machine / 1.1.1: |