You are previewing Operating System Concepts, 9th Edition.
O'Reilly logo
Operating System Concepts, 9th Edition

Book Description

Operating System Concepts, now in its ninth edition, continues to provide a solid theoretical foundation for understanding operating systems. The ninth edition has been thoroughly updated to include contemporary examples of how operating systems function. The text includes content to bridge the gap between concepts and actual implementations. End-of-chapter problems, exercises, review questions, and programming exercises help to further reinforce important concepts. A new Virtual Machine provides interactive exercises to help engage students with the material.

Table of Contents

  1. Cover Page
  2. Title Page
  3. Copyright
  4. Dedication
  5. Preface
    1. Content of This Book
    2. The Ninth Edition
    3. Programming Environments
    4. Linux Virtual Machine
    5. Supporting Website
    6. Notes to Instructors
    7. Notes to Students
    8. Contacting Us
    9. Acknowledgments
  6. Contents
  7. PART ONE: OVERVIEW
    1. Chapter 1 Introduction
      1. 1.1 What Operating Systems Do
      2. 1.2 Computer-System Organization
      3. 1.3 Computer-System Architecture
      4. 1.4 Operating-System Structure
      5. 1.5 Operating-System Operations
      6. 1.6 Process Management
      7. 1.7 Memory Management
      8. 1.8 Storage Management
      9. 1.9 Protection and Security
      10. 1.10 Kernel Data Structures
      11. 1.11 Computing Environments
      12. 1.12 Open-Source Operating Systems
      13. 1.13 Summary
      14. Exercises
      15. Bibliographical Notes
    2. Chapter 2 Operating-System Structures
      1. 2.1 Operating-System Services
      2. 2.2 User and Operating-System Interface
      3. 2.3 System Calls
      4. 2.4 Types of System Calls
      5. 2.5 System Programs
      6. 2.6 Operating-System Design and Implementation
      7. 2.7 Operating-System Structure
      8. 2.8 Operating-System Debugging
      9. 2.9 Operating-System Generation
      10. 2.10 System Boot
      11. 2.11 Summary
      12. Exercises
      13. Bibliographical Notes
  8. PART TWO: PROCESS MANAGEMENT
    1. Chapter 3 Processes
      1. 3.1 Process Concept
      2. 3.2 Process Scheduling
      3. 3.3 Operations on Processes
      4. 3.4 Interprocess Communication
      5. 3.5 Examples of IPC Systems
      6. 3.6 Communication in Client–Server Systems
      7. 3.7 Summary
      8. Exercises
      9. Bibliographical Notes
    2. Chapter 4 Threads
      1. 4.1 Overview
      2. 4.2 Multicore Programming
      3. 4.3 Multithreading Models
      4. 4.4 Thread Libraries
      5. 4.5 Implicit Threading
      6. 4.6 Threading Issues
      7. 4.7 Operating-System Examples
      8. 4.8 Summary
      9. Exercises
      10. Bibliographical Notes
    3. Chapter 5 Process Synchronization
      1. 5.1 Background
      2. 5.2 The Critical-Section Problem
      3. 5.3 Peterson's Solution
      4. 5.4 Synchronization Hardware
      5. 5.5 Mutex Locks
      6. 5.6 Semaphores
      7. 5.7 Classic Problems of Synchronization
      8. 5.8 Monitors
      9. 5.9 Synchronization Examples
      10. 5.10 Alternative Approaches
      11. 5.11 Summary
      12. Exercises
      13. Bibliographical Notes
    4. Chapter 6 CPU Scheduling
      1. 6.1 Basic Concepts
      2. 6.2 Scheduling Criteria
      3. 6.3 Scheduling Algorithms
      4. 6.4 Thread Scheduling
      5. 6.5 Multiple-Processor Scheduling
      6. 6.6 Real-Time CPU Scheduling
      7. 6.7 Operating-System Examples
      8. 6.8 Algorithm Evaluation
      9. 6.9 Summary
      10. Exercises
      11. Bibliographical Notes
    5. Chapter 7 Deadlocks
      1. 7.1 System Model
      2. 7.2 Deadlock Characterization
      3. 7.3 Methods for Handling Deadlocks
      4. 7.4 Deadlock Prevention
      5. 7.5 Deadlock Avoidance
      6. 7.6 Deadlock Detection
      7. 7.7 Recovery from Deadlock
      8. 7.8 Summary
      9. Exercises
      10. Bibliographical Notes
  9. PART THREE: MEMORY MANAGEMENT
    1. Chapter 8 Main Memory
      1. 8.1 Background
      2. 8.2 Swapping
      3. 8.3 Contiguous Memory Allocation
      4. 8.4 Segmentation
      5. 8.5 Paging
      6. 8.6 Structure of the Page Table
      7. 8.7 Example: Intel 32 and 64-bit Architectures
      8. 8.8 Example: ARM Architecture
      9. 8.9 Summary
      10. Exercises
      11. Bibliographical Notes
    2. Chapter 9 Virtual Memory
      1. 9.1 Background
      2. 9.2 Demand Paging
      3. 9.3 Copy-on-Write
      4. 9.4 Page Replacement
      5. 9.5 Allocation of Frames
      6. 9.6 Thrashing
      7. 9.7 Memory-Mapped Files
      8. 9.8 Allocating Kernel Memory
      9. 9.9 Other Considerations
      10. 9.10 Operating-System Examples
      11. 9.11 Summary
      12. Exercises
      13. Bibliographical Notes
  10. PART FOUR: STORAGE MANAGEMENT
    1. Chapter 10 Mass-Storage Structure
      1. 10.1 Overview of Mass-Storage Structure
      2. 10.2 Disk Structure
      3. 10.3 Disk Attachment
      4. 10.4 Disk Scheduling
      5. 10.5 Disk Management
      6. 10.6 Swap-Space Management
      7. 10.7 RAID Structure
      8. 10.8 Stable-Storage Implementation
      9. 10.9 Summary
      10. Exercises
      11. Bibliographical Notes
    2. Chapter 11 File-System Interface
      1. 11.1 File Concept
      2. 11.2 Access Methods
      3. 11.3 Directory and Disk Structure
      4. 11.4 File-System Mounting
      5. 11.5 File Sharing
      6. 11.6 Protection
      7. 11.7 Summary
      8. Exercises
      9. Bibliographical Notes
    3. Chapter 12 File-System Implementation
      1. 12.1 File-System Structure
      2. 12.2 File-System Implementation
      3. 12.3 Directory Implementation
      4. 12.4 Allocation Methods
      5. 12.5 Free-Space Management
      6. 12.6 Efficiency and Performance
      7. 12.7 Recovery
      8. 12.8 NFS
      9. 12.9 Example: The WAFL File System
      10. 12.10 Summary
      11. Exercises
      12. Bibliographical Notes
    4. Chapter 13 I/O Systems
      1. 13.1 Overview
      2. 13.2 I/O Hardware
      3. 13.3 Application I/O Interface
      4. 13.4 Kernel I/O Subsystem
      5. 13.5 Transforming I/O Requests to Hardware Operations
      6. 13.6 STREAMS
      7. 13.7 Performance
      8. 13.8 Summary
      9. Exercises
      10. Bibliographical Notes
  11. PART FIVE: PROTECTION AND SECURITY
    1. Chapter 14 Protection
      1. 14.1 Goals of Protection
      2. 14.2 Principles of Protection
      3. 14.3 Domain of Protection
      4. 14.4 Access Matrix
      5. 14.5 Implementation of the Access Matrix
      6. 14.6 Access Control
      7. 14.7 Revocation of Access Rights
      8. 14.8 Capability-Based Systems
      9. 14.9 Language-Based Protection
      10. 14.10 Summary
      11. Exercises
      12. Bibliographical Notes
    2. Chapter 15 Security
      1. 15.1 The Security Problem
      2. 15.2 Program Threats
      3. 15.3 System and Network Threats
      4. 15.4 Cryptography as a Security Tool
      5. 15.5 User Authentication
      6. 15.6 Implementing Security Defenses
      7. 15.7 Firewalling to Protect Systems and Networks
      8. 15.8 Computer-Security Classifications
      9. 15.9 An Example: Windows 7
      10. 15.10 Summary
      11. Exercises
      12. Bibliographical Notes
  12. PART SIX: ADVANCED TOPICS
    1. Chapter 16 Virtual Machines
      1. 16.1 Overview
      2. 16.2 History
      3. 16.3 Benefits and Features
      4. 16.4 Building Blocks
      5. 16.5 Types of Virtual Machines and Their Implementations
      6. 16.6 Virtualization and Operating-System Components
      7. 16.7 Examples
      8. 16.8 Summary
      9. Exercises
      10. Bibliographical Notes
    2. Chapter 17 Distributed Systems
      1. 17.1 Advantages of Distributed Systems
      2. 17.2 Types of Network-based Operating Systems
      3. 17.3 Network Structure
      4. 17.4 Communication Structure
      5. 17.5 Communication Protocols
      6. 17.6 An Example: TCP/IP
      7. 17.7 Robustness
      8. 17.8 Design Issues
      9. 17.9 Distributed File Systems
      10. 17.10 Summary
      11. Exercises
      12. Bibliographical Notes
  13. PART SEVEN: CASE STUDIES
    1. Chapter 18 The Linux System
      1. 18.1 Linux History
      2. 18.2 Design Principles
      3. 18.3 Kernel Modules
      4. 18.4 Process Management
      5. 18.5 Scheduling
      6. 18.6 Memory Management
      7. 18.7 File Systems
      8. 18.8 Input and Output
      9. 18.9 Interprocess Communication
      10. 18.10 Network Structure
      11. 18.11 Security
      12. 18.12 Summary
      13. Exercises
      14. Bibliographical Notes
    2. Chapter 19 Windows 7
      1. 19.1 History
      2. 19.2 Design Principles
      3. 19.3 System Components
      4. 19.4 Terminal Services and Fast User Switching
      5. 19.5 File System
      6. 19.6 Networking
      7. 19.7 Programmer Interface
      8. 19.8 Summary
      9. Exercises
      10. Bibliographical Notes
    3. Chapter 20 Influential Operating Systems
      1. 20.1 Feature Migration
      2. 20.2 Early Systems
      3. 20.3 Atlas
      4. 20.4 XDS-940
      5. 20.5 THE
      6. 20.6 RC 4000
      7. 20.7 CTSS
      8. 20.8 MULTICS
      9. 20.9 IBM OS/360
      10. 20.10 TOPS-20
      11. 20.11 CP/M and MS/DOS
      12. 20.12 Macintosh Operating System and Windows
      13. 20.13 Mach
      14. 20.14 Other Systems
      15. Exercises
      16. Bibliographical Notes
  14. Credits
  15. Index