| |
| |
| |
Introducation | |
| |
| |
| |
What is an Operating System? | |
| |
| |
| |
The Operating System as an Extended Machine | |
| |
| |
| |
The Operating System as a Resource Manager | |
| |
| |
| |
History of Operating Systems | |
| |
| |
| |
The First Generation | |
| |
| |
| |
The Second Generation | |
| |
| |
| |
The Third Generation | |
| |
| |
| |
The Fourth Generation | |
| |
| |
| |
Computer Hardware Review | |
| |
| |
| |
Processors | |
| |
| |
| |
Memory | |
| |
| |
| |
Disks | |
| |
| |
| |
Tapes | |
| |
| |
| |
I/O Devices | |
| |
| |
| |
Buses | |
| |
| |
| |
Booting the Computer | |
| |
| |
| |
The Operating System Zoo | |
| |
| |
| |
Mainframe Operating Systems | |
| |
| |
| |
Server Operating Systems | |
| |
| |
| |
Multiprocessor Operating Systems | |
| |
| |
| |
Personal Computer Operating Systems | |
| |
| |
| |
Handheld Computer Operating Systems | |
| |
| |
| |
Embedded Operating Systems | |
| |
| |
| |
Sensor Node Operating Systems | |
| |
| |
| |
Real-Time Operating Systems | |
| |
| |
| |
Smart Card Operating Systems | |
| |
| |
| |
Operating System Concepts | |
| |
| |
| |
Processes | |
| |
| |
| |
Address Spaces | |
| |
| |
| |
Files | |
| |
| |
| |
Input/Output | |
| |
| |
| |
Protection | |
| |
| |
| |
The Shell | |
| |
| |
| |
Ontogeny Recapitulates Phylogeny | |
| |
| |
| |
System Calls | |
| |
| |
| |
System Calls for Process Management | |
| |
| |
| |
System Calls for File Management | |
| |
| |
| |
System Calls for Directory Management | |
| |
| |
| |
Miscellaneous System Calls | |
| |
| |
| |
The Windows Win32 API | |
| |
| |
| |
Operating System Structure | |
| |
| |
| |
Monolithic Systems | |
| |
| |
| |
Layered Systems | |
| |
| |
| |
Microkernels | |
| |
| |
| |
Client-Server Model | |
| |
| |
| |
Virtual Machines | |
| |
| |
| |
Exokernels | |
| |
| |
| |
The World According to C | |
| |
| |
| |
The C Language | |
| |
| |
| |
Header Files | |
| |
| |
| |
Large Programming Projects | |
| |
| |
| |
The Model of Run Time | |
| |
| |
| |
Research on Operating Systems | |
| |
| |
| |
Outline of the Rest of This Book | |
| |
| |
| |
Metric Units | |
| |
| |
| |
Summary | |
| |
| |
| |
Processes and Threads | |
| |
| |
| |
Processes | |
| |
| |
| |
The Process Model | |
| |
| |
| |
Process Creation | |
| |
| |
| |
Process Termination | |
| |
| |
| |
Process Hierarchies | |
| |
| |
| |
Process States | |
| |
| |
| |
Implementation of Processes | |
| |
| |
| |
Modeling Multiprogramming | |
| |
| |
| |
Threads | |
| |
| |
| |
Thread Usage | |
| |
| |
| |
The Classical Thread Model | |
| |
| |
| |
Posix Threads | |
| |
| |
| |
Implementing Threads in User Space | |
| |
| |
| |
Implementing Threads in the Kernel | |
| |
| |
| |
Hybrid Implementations | |
| |
| |
| |
Scheduler Activations | |
| |
| |
| |
Pop-Up Threads | |
| |
| |
| |
Making Single-Threaded Code Multithreaded | |
| |
| |
| |
Interprocess Communication | |
| |
| |
| |
Race Conditions | |
| |
| |
| |
Critical Regions | |
| |
| |
| |
Mutual Exclusion with Busy Waiting | |
| |
| |
| |
Sleep and Wakeup | |
| |
| |
| |
Semaphores | |
| |
| |
| |
Mutexes | |
| |
| |
| |
Monitors | |
| |
| |
| |
Message Passing | |
| |
| |
| |
Barriers | |
| |
| |
| |
Scheduling | |
| |
| |
| |
Introduction to Scheduling | |
| |
| |
| |
Scheduling in Batch Systems | |
| |
| |
| |
Scheduling in Interactive Systems | |
| |
| |
| |
Scheduling in Real-Time Systems | |
| |
| |
| |
Policy versus Mechanism | |
| |
| |
| |
Thread Scheduling | |
| |
| |
| |
Classical Ipc Problems | |
| |
| |
| |
The Dining Philosophers Problem | |
| |
| |
| |
The Readers and Writers Problem | |
| |
| |
| |
Research on Processes and Threads | |
| |
| |
| |
Summary | |
| |
| |
| |
Memory Management | |
| |
| |
| |
No Memory Abstraction | |
| |
| |
| |
A Memory Abstraction: Address Spaces | |
| |
| |
| |
The Notion of an Address Space | |
| |
| |
| |
Swapping | |
| |
| |
| |
Managing Free Memory | |
| |
| |
| |
Virtual Memory | |
| |
| |
| |
Paging | |
| |
| |
| |
Page Tables | |
| |
| |
| |
Speeding Up Paging | |
| |
| |
| |
Page Tables for Large Memories | |
| |
| |
| |
Page Lacement Algorithms | |
| |
| |
| |
The Optimal Page Replacement Algorithm | |
| |
| |
| |
The Not Recently Used Page Replacement Algorithm | |
| |
| |
| |
The First-In, First-Out | |
| |
| |
| |
The Second Chance Page Replacement Algorithm | |
| |
| |
| |
The Clock Page Replacement Algorithm | |
| |
| |
| |
The Least Recently Used | |
| |
| |
| |
S | |