Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Operating System Concepts Second Edition leclwische Hcchsehufe Darmstadt FACHBEREICH INFORMATtK , BJ^B L I O TJjiJMC ' Inventa r-Nr.» Snchqnhifitat \ Standorti James L. Peterson Abraham Silberschatz University of Texas at Austin Fachbereichsbibliothek Informatik TU Darmstadt • I III • ! • • ! • ! ! II ! • 59465279 '"il?"" Addison-Wesley Publishing Company Reading, Massachusetts • Menlo Park, California Don Mills, Ontario • Wokingham, England • Amsterdam Sydney f Singapore • Tokyo •, Mexico City • Bogota Santiago • San Juan Contents Chapter 1 Introduction 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 1.10 1.11 What Is an Operating System? Early Systems Simple Monitor Performance Multiprogramming Time Sharing Real-Time Systems Protection Different Classes of Computers Multiprocessor Systems Summary Exercises Bibliographic Notes 1 4 6 9 17 18 21 22 31 33 34 35 37 Chapter 2 Operating System Services 2.1 2.2 2.3 2.4 Types of Services The User View The Operating System View Summary Bibliographic Notes 39 40 49 54 56 Chapter 3 File Systems 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 File Concept File Support Access Methods Allocation Methods Directory Systems File Protection Implementation Issues Summary Exercises Bibliographic Notes 57 64 68 71 82 93 96 98 99 102 Table of Contents Chapter 4 CPU Scheduling 4.1 4.2 4.3 4.4 4.5 4.6 Review of Multiprogramming Concepts Scheduling Concepts Scheduling Algorithms < Algorithm Evaluation Multiple Processor Scheduling Summary Exercises Bibliographic Notes ^ 103 105 115 129 135 136 137 141 Chapter 5 Memory Management 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 Preliminaries Bare Machine Resident Monitor Swapping Multiple Partitions Paging Segmentation Combined Systems Summary Exercises Bibliographic Notes 143 145 146 152 156 172 183 191 194 196 200 Chapter 6 Virtual Memory 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9 6.10 Overlays Demand Paging Performance of Demand Paging Page Replacement Virtual Memory Concepts Page Replacement Algorithms Allocation Algorithms Thrashing Other Considerations Summary Exercises Bibliographic Notes 201 204 210 213 216 217 228 232 238 244 246 254 Table of Contents xi Chapter 7 Disk and Drum Scheduling 7.1 7.2 7.3 7.4 7.5 7.6 7.7 Physical Characteristics First-Come-First-Served Scheduling Shortest-Seek-Time-First SCAN Selecting a Disk Scheduling Algorithm Sector Queueing Summary Exercises Bibliographic Notes 257 261 262 263 265 266 268 268 270 Chapter 8 Deadlocks 8.1 8.2 8.3 8.4 8.5 8.6 8.7 8.8 The Deadlock Problem Deadlock Characterization Deadlock Prevention Deadlock Avoidance Deadlock Detection Recovery from Deadlock Combined Approach to Deadlock Handling Summary Exercises Bibliographic Notes 271 275 280 283 291 295 298 300 301 305 Chapter 9 Concurrent Processes 9.1 9.2 9.3 9.4 9.5 9.6 9.7 9.8 9.9 Precedence Graphs Specification Review of Process Concept Hierarchy of Processes The Critical Section Problem Semaphores Classical Process Coordination Problems Interprocess Communication Summary Exercises Bibliographic Notes 307 310 318 320 323 340 344 349 361 361 367 Table of Contents Chapter 10 Concurrent Programming 10.1 10.2 10.3 10.4 10.5 Motivation Modularization Synchronization Concurrent Languages Summary Exercises Bibliographic Notes 369 370 375 393 400 401 404 Chapter 11 Protection 11.1 11.2 11.3 11.4 11.5 11.6 11.7 11.8 11.9 11.10 11.11 11.12 Goals of Protection Mechanisms and Policies Domain of Protection Access Matrix Implementation of Access Matrix Dynamic Protection Structures Revocation Existing Systems Language-Based Protection Protection Problems Security Summary Exercises Bibliographic Notes 407 408 409 410 411 415 420 422 427 432 434 436 436 438 Chapter 12 Design Principles 12.1 12.2 12.3 12.4 12.5 12.6 12.7 12.8 Goals Mechanisms and Policies Layered Approach Virtual Machines Multiprocessors Implementation System Generation Summary Exercises Bibliographic Notes 441 442 442 446 449 450 451 453 453 455 Table of Contents xiii Chapter 13 Distributed Systems 13.1 13.2 13.3 13.4 13.5 13.6 13.7 13.8 13.9 13.10 13.11 13.12 13.13 Motivation Topology Communication System Type File Systems Mode of Computation Event Ordering Synchronization Deadlock Handling Robustness Reaching Agreement Election Algorithms Summary Exercises Bibliographic Notes 457 459 464 471 474 476 478 481 486 494 496 499 502 503 504 Chapter 14 The Unix Operating System 14.1 14.2 14.3 14.4 14.5 14.6 14.7 14.8 14.9 14.10 History Design Principles Programmer Interface User Interface File System Process Management Memory Management I/O System Interprocess Communication Summary Bibliographic Notes 507 510 512 519 523 532 537 541 545 551 552 Chapter 15 Historical Perspective 15.1 15.2 15.3 15.4 15.5 15.6 15.7 15.8 Atlas XDS-940 THE RC4000 CTSS Multics OS/360 Other Systems 555 557 557 558 560 561 561 563 xiv Table of Contents Bibliography 565 Index 601