You are previewing Operating System Concepts Essentials, Second Edition.
O'Reilly logo
Operating System Concepts Essentials, Second Edition

Book Description

By staying current, remaining relevant, and adapting to emerging course needs, Operating System Concepts by Abraham Silberschatz, Peter Baer Galvin and Greg Gagne has defined the operating systems course through nine editions. This second edition of the Essentials version is based on the recent ninth edition of the original text.

Operating System Concepts Essentials comprises a subset of chapters of the ninth edition for professors who want a shorter text and do not cover all the topics in the ninth edition. The new second edition of Essentials will be available as an ebook at a very attractive price for students. The ebook will have live links for the bibliography, cross-references between sections and chapters where appropriate, and new chapter review questions. A two-color printed version is also available.

Table of Contents

  1. Cover Page
  2. Title Page
  3. Copyright
  4. Dedication
  5. Preface
    1. Content of This Book
    2. Operating System Essentials
    3. The Second Edition
    4. Programming Environments
    5. Linux Virtual Machine
    6. Supporting Website
    7. Notes to Instructors
    8. Notes to Students
    9. Contacting Us
    10. 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. Review Questions
      15. Practice Exercises
      16. Exercises
      17. Bibliographical Notes
      18. Bibliography
    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. Review Questions
      13. Practice Exercises
      14. Exercises
      15. Programming Problems
      16. Programming Projects
      17. Bibliographical Notes
      18. Bibliography
  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. Review Questions
      9. Practice Exercises
      10. Exercises
      11. Programming Problems
      12. Programming Projects
      13. Bibliographical Notes
      14. Bibliography
    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. Review Questions
      10. Practice Exercises
      11. Exercises
      12. Programming Problems
      13. Programming Projects
      14. Bibliographical Notes
      15. Bibliography
    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 Deadlocks
      12. 5.12 Summary
      13. Review Questions
      14. Practice Exercises
      15. Exercises
      16. Programming Problems
      17. Programming Projects
      18. Bibliographical Notes
      19. Bibliography
    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. Review Questions
      11. Practice Exercises
      12. Exercises
      13. Bibliographical Notes
      14. Bibliography
  9. Part Three: Memory Management
    1. Chapter 7: Main Memory
      1. 7.1 Background
      2. 7.2 Swapping
      3. 7.3 Contiguous Memory Allocation
      4. 7.4 Segmentation
      5. 7.5 Paging
      6. 7.6 Structure of the Page Table
      7. 7.7 Example: Intel 32 and 64-bit Architectures
      8. 7.8 Example: ARM Architecture
      9. 7.9 Summary
      10. Review Questions
      11. Practice Exercises
      12. Exercises
      13. Programming Problems
      14. Bibliographical Notes
      15. Bibliography
    2. Chapter 8: Virtual Memory
      1. 8.1 Background
      2. 8.2 Demand Paging
      3. 8.3 Copy-on-Write
      4. 8.4 Page Replacement
      5. 8.5 Allocation of Frames
      6. 8.6 Thrashing
      7. 8.7 Memory-Mapped Files
      8. 8.8 Allocating Kernel Memory
      9. 8.9 Other Considerations
      10. 8.10 Operating-System Examples
      11. 8.11 Summary
      12. Review Questions
      13. Practice Exercises
      14. Exercises
      15. Programming Problems
      16. Programming Projects
      17. Bibliographical Notes
      18. Bibliography
  10. Part Four: Storage Management
    1. Chapter 9: Mass-Storage Structure
      1. 9.1 Overview of Mass-Storage Structure
      2. 9.2 Disk Structure
      3. 9.3 Disk Attachment
      4. 9.4 Disk Scheduling
      5. 9.5 Disk Management
      6. 9.6 Swap-Space Management
      7. 9.7 RAID Structure
      8. 9.8 Stable-Storage Implementation
      9. 9.9 Summary
      10. Review Questions
      11. Practice Exercises
      12. Exercises
      13. Programming Problems
      14. Bibliographical Notes
      15. Bibliography
    2. Chapter 10: File-System Interface
      1. 10.1 File Concept
      2. 10.2 Access Methods
      3. 10.3 Directory and Disk Structure
      4. 10.4 File-System Mounting
      5. 10.5 File Sharing
      6. 10.6 Protection
      7. 10.7 Summary
      8. Review Questions
      9. Practice Exercises
      10. Exercises
      11. Bibliographical Notes
      12. Bibliography
    3. Chapter 11: File-System Implementation
      1. 11.1 File-System Structure
      2. 11.2 File-System Implementation
      3. 11.3 Directory Implementation
      4. 11.4 Allocation Methods
      5. 11.5 Free-Space Management
      6. 11.6 Efficiency and Performance
      7. 11.7 Recovery
      8. 11.8 NFS
      9. 11.9 Example: The WAFL File System
      10. 11.10 Summary
      11. Review Questions
      12. Practice Exercises
      13. Exercises
      14. Programming Problems
      15. Bibliographical Notes
      16. Bibliography
    4. Chapter 12: I/O Systems
      1. 12.1 Overview
      2. 12.2 I/O Hardware
      3. 12.3 Application I/O Interface
      4. 12.4 Kernel I/O Subsystem
      5. 12.5 Transforming I/O Requests to Hardware Operations
      6. 12.6 STREAMS
      7. 12.7 Performance
      8. 12.8 Summary
      9. Review Questions
      10. Practice Exercises
      11. Exercises
      12. Bibliographical Notes
      13. Bibliography
  11. Part Five: Protection and Security
    1. Chapter 13: Protection
      1. 13.1 Goals of Protection
      2. 13.2 Principles of Protection
      3. 13.3 Domain of Protection
      4. 13.4 Access Matrix
      5. 13.5 Implementation of the Access Matrix
      6. 13.6 Access Control
      7. 13.7 Revocation of Access Rights
      8. 13.8 Capability-Based Systems
      9. 13.9 Language-Based Protection
      10. 13.10 Summary
      11. Review Questions
      12. Practice Exercises
      13. Exercises
      14. Bibliographical Notes
      15. Bibliography
    2. Chapter 14: Security
      1. 14.1 The Security Problem
      2. 14.2 Program Threats
      3. 14.3 System and Network Threats
      4. 14.4 Cryptography as a Security Tool
      5. 14.5 User Authentication
      6. 14.6 Implementing Security Defenses
      7. 14.7 Firewalling to Protect Systems and Networks
      8. 14.8 Computer-Security Classifications
      9. 14.9 An Example: Windows 7
      10. 14.10 Summary
      11. Review Questions
      12. Practice Exercises
      13. Exercises
      14. Bibliographical Notes
      15. Bibliography
  12. Part Six: Case Studies
    1. Chapter 15: The Linux System
      1. 15.1 Linux History
      2. 15.2 Design Principles
      3. 15.3 Kernel Modules
      4. 15.4 Process Management
      5. 15.5 Scheduling
      6. 15.6 Memory Management
      7. 15.7 File Systems
      8. 15.8 Input and Output
      9. 15.9 Interprocess Communication
      10. 15.10 Network Structure
      11. 15.11 Security
      12. 15.12 Summary
      13. Review Questions
      14. Practice Exercises
      15. Exercises
      16. Bibliographical Notes
      17. Bibliography
  13. Index