| | Copyright | |
| | Preface | xv |
| | Chapter 1. Introduction | 1 |
| | | Section 1.1. What Is an Operating System? | 4 |
| | | Section 1.2. History of Operating Systems | 6 |
| | | Section 1.3. Operating System Concepts | 19 |
| | | Section 1.4. System Calls | 26 |
| | | Section 1.5. Operating System Structure | 42 |
| | | Section 1.6. Outline of the Rest of This Book | 51 |
| | | Section 1.7. Summary | 51 |
| | | Problems | 52 |
| | Chapter 2. Processes | 55 |
| | | Section 2.1. Introduction to Processes | 55 |
| | | Section 2.2. Interprocess Communication | 68 |
| | | Section 2.3. Classical IPC Problems | 88 |
| | | Section 2.4. Scheduling | 93 |
| | | Section 2.5. Overview of Processes in MINIX 3 | 112 |
| | | Section 2.6. Implementation of Processes in MINIX 3 | 125 |
| | | Section 2.7. The System Task in MINIX 3 | 192 |
| | | Section 2.8. The Clock Task in MINIX 3 | 204 |
| | | Section 2.9. Summary | 214 |
| | | Problems | 215 |
| | Chapter 3. Input/Output | 221 |
| | | Section 3.1. Principles of I/O Hardware | 222 |
| | | Section 3.2. Principles of I/O Software | 229 |
| | | Section 3.3. Deadlocks | 237 |
| | | Section 3.4. Overview of I/O in MINIX 3 | 252 |
| | | Section 3.5. Block Devices in MINIX 3 | 261 |
| | | Section 3.6. RAM Disks | 271 |
| | | Section 3.7. Disks | 278 |
| | | Section 3.8. Terminals | 302 |
| | | Section 3.9. Summary | 366 |
| | | Problems | 367 |
| | Chapter 4. Memory Management | 373 |
| | | Section 4.1. Basic Memory Management | 374 |
| | | Section 4.2. Swapping | 378 |
| | | Section 4.3. Virtual Memory | 383 |
| | | Section 4.4. Page Replacement Algorithms | 396 |
| | | Section 4.5. Design Issues for Paging Systems | 404 |
| | | Section 4.6. Segmentation | 410 |
| | | Section 4.7. Overview of the MINIX 3 Process Manager | 420 |
| | | Section 4.8. Implementation of the MINIX 3 Process Manager | 447 |
| | | Section 4.9. Summary | 475 |
| | | Problems | 476 |
| | Chapter 5. File Systems | 481 |
| | | Section 5.1. Files | 482 |
| | | Section 5.2. Directories | 491 |
| | | Section 5.3. File System Implementation | 497 |
| | | Section 5.4. Security | 526 |
| | | Section 5.5. Protection Mechanisms | 537 |
| | | Section 5.6. Overview of the MINIX 3 File System | 548 |
| | | Section 5.7. Implementation of the MINIX 3 File System | 566 |
| | | Section 5.8. Summary | 606 |
| | | Problems | 607 |
| | Chapter 6. Reading List and Bibliography | 611 |
| | | Section 6.1. Suggestions for Further Reading | 611 |
| | | Section 6.2. Alphabetical Bibliography | 618 |
| | Appendix A. Installing MINIX 3 | 629 |
| | | Section A.1. Preparation | 629 |
| | | Section A.2. Booting | 631 |
| | | Section A.3. Installing to the Hard Disk | 632 |
| | | Section A.4. Testing | 634 |
| | | Section A.5. Using a Simulator | 636 |
| | Appendix B. The MINIX Source Code | 637 |
| | Appendix C. Index to Files | 1033 |
| | About the Authors | 1053 |
| | About the MINIX 3 CD | InsideBackCover |
| | | System Requirements | InsideBackCover |
| | | Hardware | InsideBackCover |
| | | Software | InsideBackCover |
| | | Installation | InsideBackCover |
| | | Product Support | InsideBackCover |
| | Index | |