| |
| |
| |
Overview | |
| |
| |
| |
Introduction | |
| |
| |
| |
What Operating Systems Do | |
| |
| |
| |
Computer-System Organization | |
| |
| |
| |
Computer-System Architecture | |
| |
| |
| |
Operating-System Structure | |
| |
| |
| |
Operating-System Operations | |
| |
| |
| |
Process Management | |
| |
| |
| |
Memory Management | |
| |
| |
| |
Storage Management | |
| |
| |
| |
Protection and Security | |
| |
| |
| |
Kernel Data Structures | |
| |
| |
| |
Computing Environments | |
| |
| |
| |
Open-Source Operating Systems | |
| |
| |
| |
Summary | |
| |
| |
Exercises | |
| |
| |
Bibliographical Notes | |
| |
| |
| |
Operating-System Structures | |
| |
| |
| |
Operating-System Services | |
| |
| |
| |
User and Operating-System Interface | |
| |
| |
| |
System Calls | |
| |
| |
| |
Types of System Calls | |
| |
| |
| |
System Programs | |
| |
| |
| |
Operating-System Design and Implementation | |
| |
| |
| |
Operating-System Structure | |
| |
| |
| |
Operating-System Debugging | |
| |
| |
| |
Operating-System Generation | |
| |
| |
| |
System Boot | |
| |
| |
| |
Summary | |
| |
| |
Exercises | |
| |
| |
Bibliographical Notes | |
| |
| |
| |
Process Management | |
| |
| |
| |
Processes | |
| |
| |
| |
Process Concept | |
| |
| |
| |
Process Scheduling | |
| |
| |
| |
Operations on Processes | |
| |
| |
| |
Interprocess Communication | |
| |
| |
| |
Examples of IPC Systems | |
| |
| |
| |
Communication in Client-Server Systems | |
| |
| |
| |
Summary | |
| |
| |
Exercises | |
| |
| |
Bibliographical Notes | |
| |
| |
| |
Threads | |
| |
| |
| |
Overview | |
| |
| |
| |
Multicore Programming | |
| |
| |
| |
Multithreading Models | |
| |
| |
| |
Thread Libraries | |
| |
| |
| |
Implicit Threading | |
| |
| |
| |
Threading Issues | |
| |
| |
| |
Operating-System Examples | |
| |
| |
| |
Summary | |
| |
| |
Exercises | |
| |
| |
Bibliographical Notes | |
| |
| |
| |
Process Synchronization | |
| |
| |
| |
Background | |
| |
| |
| |
The Critical-Section Problem | |
| |
| |
| |
Peterson's Solution | |
| |
| |
| |
Synchronization Hardware | |
| |
| |
| |
Mutex Locks | |
| |
| |
| |
Semaphores | |
| |
| |
| |
Classic Problems of Synchronization | |
| |
| |
| |
Monitors | |
| |
| |
| |
Synchronization Examples | |
| |
| |
| |
Alternative Approaches | |
| |
| |
| |
Deadlocks | |
| |
| |
| |
Summary | |
| |
| |
Exercises | |
| |
| |
Bibliographical Notes | |
| |
| |
| |
CPU Scheduling | |
| |
| |
| |
Basic Concepts | |
| |
| |
| |
Scheduling Criteria | |
| |
| |
| |
Scheduling Algorithms | |
| |
| |
| |
Thread Scheduling | |
| |
| |
| |
Multiple-Processor Scheduling | |
| |
| |
| |
Real-Tune CPU Scheduling | |
| |
| |
| |
Operating-System Examples | |
| |
| |
| |
Algorithm Evaluation | |
| |
| |
| |
Summary | |
| |
| |
Exercises | |
| |
| |
Bibliographical Notes | |
| |
| |
| |
Memory Management | |
| |
| |
| |
Main Memory | |
| |
| |
| |
Background | |
| |
| |
| |
Swapping | |
| |
| |
| |
Contiguous Memory Allocation | |
| |
| |
| |
Segmentation | |
| |
| |
| |
Paging | |
| |
| |
| |
Structure of the Page Table | |
| |
| |
| |
Example: Intel 32 and 64-bit Architectures | |
| |
| |
| |
Example: ARM Architecture | |
| |
| |
| |
Summary | |
| |
| |
Exercises | |
| |
| |
Bibliographical Notes | |
| |
| |
| |
Virtual Memory | |
| |
| |
| |
Background | |
| |
| |
| |
Demand Paging | |
| |
| |
| |
Copy-on-Write | |
| |
| |
| |
Page Replacement | |
| |
| |
| |
Allocation of Frames | |
| |
| |
| |
Thrashing | |
| |
| |
| |
Memory-Mapped Files | |
| |
| |
| |
Allocating Kernel Memory | |
| |
| |
| |
Other Considerations | |
| |
| |
| |
Operating-System Examples | |
| |
| |
| |
Summary | |
| |
| |
Exercises | |
| |
| |
Bibliographical Notes | |
| |
| |
| |
Storage Management | |
| |
| |
| |
Mass-Storage Structure | |
| |
| |
| |
Overview of Mass-Storage Structure | |
| |
| |
| |
Disk Structure | |
| |
| |
| |
Disk Attachment | |
| |
| |
| |
Disk Scheduling | |
| |
| |
| |
Disk Management | |
| |
| |
| |
Swap-Space Management | |
| |
| |
| |
RAID Structure | |
| |
| |
| |
Stable-Storage Implementation | |
| |
| |
| |
Summary | |
| |
| |
Exercises | |
| |
| |
Bibliographical Notes | |
| |
| |
| |
File-System Interface | |
| |
| |
| |
File Concept | |
| |
| |
| |
Access Methods | |
| |
| |
| |
Directory and Disk Structure | |
| |
| |
| |
File-System Mounting | |
| |
| |
| |
File Sharing | |
| |
| |
| |
Protection | |
| |
| |
| |
Summary | |
| |
| |
Exercises | |
| |
| |
Bibliographical Notes | |
| |
| |
| |
File-System Implementation | |
| |
| |
| |
File-System Structure | |
| |
| |
| |
File-System Implementation | |
| |
| |
| |
Directory Implementation | |
| |
| |
| |
Allocation Methods | |
| |
| |
| |
Free-Space Management | |
| |
| |
| |
Efficiency and Performance | |
| |
| |
| |
Recovery | |
| |
| |
| |
NFS | |
| |
| |
| |
Example: The WAFL File System | |
| |
| |
| |
Summary | |
| |
| |
Exercises | |
| |
| |
Bibliographical Notes | |
| |
| |
| |
I/O Systems | |
| |
| |
| |
Overview | |
| |
| |
| |
I/O Hardware | |
| |
| |
| |
Application I/O Interface | |
| |
| |
| |
Kernel I/O Subsystem | |
| |
| |
| |
Transforming I/O Requests to Hardware Operations | |
| |
| |
| |
STREAMS | |
| |
| |
| |
Performance | |
| |
| |
| |
Summary | |
| |
| |
Exercises | |
| |
| |
Bibliographical Notes | |
| |
| |
Part 5o Protection and Security | |
| |
| |
| |
Protection | |
| |
| |
| |
Goals of Protection | |
| |
| |
| |
Principles of Protection | |
| |
| |
| |
Domain of Protection | |
| |
| |
| |
Access Matrix | |
| |
| |
| |
Implementation of the Access Matrix | |
| |
| |
| |
Access Control | |
| |
| |
| |
Revocation of Access Rights | |
| |
| |
| |
Capability-Based Systems | |
| |
| |
| |
Language-Based Protection | |
| |
| |
| |
Summary | |
| |
| |
Exercises | |
| |
| |
Bibliographical Notes | |
| |
| |
| |
Security | |
| |
| |
| |
The Security Problem | |
| |
| |
| |
Program Tnreats | |
| |
| |
| |
System and Network Threats | |
| |
| |
| |
Cryptography as a Security Tool | |
| |
| |
| |
User Authentication | |
| |
| |
| |
Implementing Security Defenses | |
| |
| |
| |
Firewalling to Protect Systems and Networks | |
| |
| |
| |
Computer-Security Classifications | |
| |
| |
| |
An Example: Windows 7 | |
| |
| |
| |
Summary | |
| |
| |
Exercises | |
| |
| |
Bibliographical Notes | |
| |
| |
| |
Case Studies | |
| |
| |
| |
The Linux System | |
| |
| |
| |
Linux History | |
| |
| |
| |
Design Principles | |
| |
| |
| |
Kernel Modules | |
| |
| |
| |
Process Management | |
| |
| |
| |
Scheduling | |
| |
| |
| |
Memory Management | |
| |
| |
| |
File Systems | |
| |
| |
| |
Input and Output | |
| |
| |
| |
Interprocess Communication | |
| |
| |
| |
Network Structure | |
| |
| |
| |
Security | |
| |
| |
| |
Summary | |
| |
| |
Exercises | |
| |
| |
Bibliographical Notes | |
| |
| |
| |
BSD Unix (contents online) | |
| |
| |
| |
UNIX History | |
| |
| |
| |
Design Principles | |
| |
| |
| |
Programmer Interface | |
| |
| |
| |
User Interface | |
| |
| |
| |
Process Management | |
| |
| |
| |
Memory Management | |
| |
| |
| |
File System | |
| |
| |
| |
I/O System | |
| |
| |
| |
Interprocess Communication | |
| |
| |
| |
Summary | |
| |
| |
Exercises | |
| |
| |
Bibliographical Notes | |
| |
| |
| |
The Match System (content ooline) | |
| |
| |
| |
History of the Mach System | |
| |
| |
| |
Design Principles | |
| |
| |
| |
System Components | |
| |
| |
| |
Process Management | |
| |
| |
| |
Interprocess Communication | |
| |
| |
| |
Memory Management | |
| |
| |
| |
Programmer Interface | |
| |
| |
section.17.7 | |
| |
| |
| |
Summary | |
| |
| |
Exercises | |
| |
| |
Bibliographical Notes | |
| |
| |
Index | |