Modern Operating Systems

Andrew S. Tanenbaum

Publisher: Prentice Hall, 1992, 728 pages

ISBN: 0-13-595752-4

Keywords: Operating Systems

Last modified: April 23, 2021, 4:19 a.m.

For Introductory Courses in Operating Systems in Computer Science, Computer Engineering, and Electrical Engineering programs.

  1. Traditional Operating Systems
    1. Introduction
      1. What Is an Operating System?
        1. The Operating System as an Extended Machine
        2. The Operating System as a Resource Manager
      2. History of Operating Systems
        1. The First Generation
        2. The Second Generation
        3. The Third Generation
        4. The Fourth Generation
      3. Operating System Concepts
        1. Processes
        2. Files
        3. System Calls
        4. The Shell
      4. Operating System Structure
        1. Monolithic Systems
        2. Layered Systems
        3. Virtual Machines
        4. Client-Server Model
      5. Outline of the Rest of This Book
      6. Summary
    2. Processes
      1. Introduction to Processes
        1. The Process Model
        2. Implementation of Processes
      2. Interprocess Communication
        1. Race Conditions
        2. Critical Sections
        3. Mutual Exclusion with Busy Waiting
        4. Sleep and Wakeup
        5. Semaphores
        6. Event Counters
        7. Monitors
        8. Message Passing
        9. Equivalence of Primitives
      3. Classical IPC Problems
        1. The Dining Philosophers Problem
        2. The Readers and Writers Problem
        3. The Sleeping Barber Problem
      4. Process Scheduling
        1. Round Robin Scheduling
        2. Priority Scheduling
        3. Multiple Queues
        4. Shortest Job First
        5. Guaranteed Scheduling
        6. Policy versus Mechanism
        7. Two-Level Scheduling
      5. Summary
    3. Memory Management
      1. Memory Management Without Swapping or Paging
        1. Monoprogramming without Swapping or Paging
        2. Multiprogramming and Memory Usage
        3. Multiprogramming with Fixed Partitions
      2. Swapping
        1. Multiprogramming with Variable Partitions
        2. Memory Management with Bit Maps
        3. Memory Management with Linked Lists
        4. Memory Management with the Buddy System
        5. Allocation of Swap Space
        6. Analysis of Swapping Systems
      3. Virtual Memory
        1. Paging
        2. Page Tables
        3. Examples of Paging Hardware
        4. Associative Memory
        5. Inverted Page Tables
      4. Page Replacement Algorithms
        1. The Optional Page Replacement Algorithm
        2. The Not-Recently-Used Page Replacement Algorithm
        3. The First-In, First-Out
        4. The Second Chance Page Replacement Algorithm
        5. The Clock Page Replacement Algorithm
        6. The Least Recently Used
        7. Simulating LRU in Software
      5. Modeling Paging Algorithms
        1. Belady's Anomaly
        2. Stack Algorithm
        3. The Distance String
        4. Predicting Page Fault Rates
      6. Design Issues for Paging Systems
        1. The Working Set Model
        2. Local versus Global Allocation Policies
        3. Page Size
        4. Implementation Issues
      7. Segmentation
        1. Implementation of Pure Segmentation
        2. Segmentation with Paging: MULTICS
        3. Segmentation with Paging: The Intel 386
      8. Summary
    4. File Systems
      1. Files
        1. File Naming
        2. File Structure
        3. File Types
        4. File Access
        5. File Attributes
        6. File Operations
        7. Memory-Mapped Files
      2. Directories
        1. Hierarchical Directory Systems
        2. Path Names
        3. Directory Operations
      3. File System Implementation
        1. Implementing Files
        2. Implementing Directories
        3. Shared Files
        4. Disk Space Management
        5. File System Reliability
        6. File System Performance
      4. Security
        1. The Security Environment
        2. Famous Security Flaws
        3. The Internet Worm
        4. Generic Security Attacks
        5. Design Principles for Security
        6. User Authentication
      5. Protection Mechanisms
        1. Protection Domains
        2. Access Control Lists
        3. Capabilities
        4. Protection Models
        5. Covert Channels
      6. Summary
    5. Input/Output
      1. Principles of I/O Hardware
        1. I/O Devices
        2. Device Controllers
        3. Direct Memory Access
      2. Principles of I/O Software
        1. Goals of the I/O Software
        2. Interrupt Handlers
        3. Device Drivers
        4. Device-Independent I/O Software
        5. User-Space I/O Software
      3. Disks
        1. Disk Hardware
        2. Disk Arm Scheduling Algorithms
        3. Error Handling
        4. Track-at-a-Time Caching
        5. RAM Disks
      4. Clocks
        1. Clock Hardware
        2. Clock Software
      5. Terminals
        1. Terminal Hardware
        2. Memory-Mapped Terminals
        3. Input Software
        4. Output Software
      6. Summary
    6. Deadlocks
      1. Resources
      2. Deadlocks
        1. Conditions for Deadlock
        2. Deadlock Monitoring
      3. The Ostrich Algorithm
      4. Deadlock Detection and Recovery
        1. Deadlock Detection with One Resource of Each Type
        2. Deadlock Detection with Multiple Resource of Each Type
        3. Recovery from Deadlock
      5. Deadlock Avoidance
        1. Resource Trajectories
        2. Safe and Unsafe States
        3. The Banker's Algorithm for Single Resource
        4. The Banker's Algorithm for Multiple Resources
      6. Deadlock Prevention
        1. Attacking the Mutual Exclusive Condition
        2. Attacking the Hold and Wait Condition
        3. Attacking the No Preemption Condition
        4. Attacking the Circular Wait Condition
      7. Other Issues
        1. Two-Phase Locking
        2. Non-resource Deadlocks
        3. Starvation
      8. Summary
    7. Case Study 1: UNIX
      1. History of UNIX
        1. UNICS
        2. PDP-11 UNIX
        3. Portable UNIX
        4. Berkeley UNIX
        5. Standard UNIX
      2. Overview of UNIX
        1. UNIX Goals
        2. Interfaces to UNIX
        3. Logging into UNIX
        4. The UNIX Shell
        5. Files and Directories in UNIX
        6. UNIX Utility Programs
      3. Fundamental Concepts in UNIX
        1. Processes in UNIX
        2. The UNIX Memory Model
        3. The UNIX File System
        4. Input/Output in UNIX
      4. UNIX System Calls
        1. Process Management System Calls in UNIX
        2. Memory Management System Calls in UNIX
        3. File and Directory Systems Calls in UNIX
        4. Input/Output System Calls in UNIX
      5. Implementation of UNIX
        1. Implementation of Processes in UNIX
        2. Implementation of Memory Management in UNIX
        3. Implementation of the UNIX File System
        4. Implementation of Input/Output in UNIX
      6. Summary
    8. Case Study 2: MS-DOS
      1. History of MS-DOS
        1. The IBM PC
        2. MS-DOS Version 1.0
        3. MS-DOS Version 2.0
        4. MS-DOS Version 3.0
        5. MS-DOS Version 4.0
        6. MS-DOS Version 5.0
      2. Overview of MS-DOS
        1. Using MS-DOS
        2. MS-DOS Shell
        3. Configuring MS-DOS
      3. Fundamental Concepts in MS-DOS
        1. Processes in MS-DOS
        2. The MS-DOS Memory Model
        3. The MS-DOS File System
        4. Input/Output in MS-DOS
      4. MS-DOS System Calls
        1. Process Management System Calls in MS-DOS
        2. Memory Management System Calls in MS-DOS
        3. File and Directory Systems Calls in MS-DOS
        4. Input/Output System Calls in MS-DOS
      5. Implementation of MS-DOS
        1. Implementation of Processes in MS-DOS
        2. Implementation of Memory Management in MS-DOS
        3. Implementation of the MS-DOS File System
        4. Implementation of Input/Output in MS-DOS
      6. Summary
  2. Distributed Operating Systems
    1. Introduction to Distributed Systems
      1. Goals
        1. Advantages of Distributed Systems over Centralized Ones
        2. Advantages of Distributed Systems over Independent PCs
        3. Disadvantages of Distributed Systems
      2. Hardware Concepts
        1. Bus-Based Multiprocessors
        2. Switched Multiprocessors
        3. Bus-Based Multicomputers
        4. Switched Multicomputers
      3. Software Concepts
        1. Network Operating System and NFS
        2. True Distribued Systems
        3. Multiprocessor Timesharing Systems
      4. Design Issues
        1. Transparency
        2. Flexibility
        3. Reliability
        4. Performance
        5. Scalability
      5. Summary
    2. Communication in Distributed Systems
      1. Layered Protocols
        1. The Physical Layer
        2. The Data link Layer
        3. The Network Layer
        4. The Transport Layer
        5. The Session Layer
        6. Presentation Layer
        7. Application Layer
      2. The Client-Server Model
        1. Clients and Servers
        2. An Example Client and Server
        3. Addressing
        4. Blocking versus Nonblocking Primitives
        5. Buffered versus Unbuffered Primitives
        6. Reliable versus Unreliable Primitives
        7. Implementing the Client-Server Model
      3. Remote Procedure Call
        1. Basic RPC Operation
        2. Parameter Passing
        3. Dynamic Binding
        4. RPC Semantics in the Presence of Failures
        5. Implementation Issues
        6. Problem Areas
      4. Group Communication
        1. Introduction to Group Communication
        2. Design Issues
        3. Group Communication in ISIS
      5. Summary
    3. Synchronization in Distributed Systems
      1. Clock Synchronization
        1. Logical Clocks
        2. Physical Clocks
        3. Clock Synchronization Algorithms
      2. Mutual Exclusion
        1. A Centralized Algorithm
        2. A Distributed Algorithm
        3. A Token Ring Algorithm
        4. A Comparison of the Three Algorithms
      3. Election Algorithms
        1. The Bully Algorithm
        2. A Ring Algorithm
      4. Atomic Transactions
        1. Introduction to Atomic Transactions
        2. The Transaction Model
        3. Implementations
        4. Concurrency Control
      5. Deadlocks in Distributed Systems
        1. Distributed Deadlock Detection
        2. Distributed Deadlock Prevention
      6. Summary
    4. Processes and Processors in Distributed systems
      1. Threads
        1. Introduction to Threads
        2. Thread Usage
        3. Design Issues for Threads Package
        4. Implementing a Threads Package
        5. Threads and RPC
        6. An Example Threads Package
      2. System Models
        1. The Workstation Model
        2. Using Idle Workstations
        3. The Processor Model
        4. A Hybrid Model
      3. Processor Allocation
        1. Allocation Models
        2. Design Issues for Processor Allocation Allocation Algorithms
        3. Implementation Issues for processor Allocation Algorithm
        4. Example Processor Allocation Algorithm
      4. Scheduling in Distributed Systems
      5. Summary
    5. Distributed File Systems
      1. Distributed File System Design
        1. The File Service Interface
        2. The Directory Server Interface
        3. Semantics of File Sharing
      2. Distributed File System Implementation
        1. File Usage
        2. System Structure
        3. Caching
        4. Replication
        5. An Example: The Andrew File System
        6. Lessons Learned
      3. Trends in Distributed File Systems
        1. New Hardware
        2. Scalability
        3. Wide Area Networking
        4. Mobile Users
        5. Fault Tolerance
      4. Summary
    6. Case Study 3: Amoeba
      1. Introduction to Amoeba
        1. History of Amoeba
        2. Research Goals
        3. The Amoeba System Architecture
        4. The Amoeba Microkernel
        5. The Amoeba Servers
      2. Objects and Capabilities in Amoeba
        1. Capabilities
        2. Object Protection
        3. Standard Operations
      3. Process Management in Amoeba
        1. Processes
        2. Threads
      4. Memory Management in Amoeba
        1. Segments
        2. Mapped Segments
      5. Communication in Amoeba
        1. Remote Procedure Call
        2. Group Communication in Amoeba
        3. The Fast Local Internet Protocol
      6. The Amoeba Servers
        1. The Bullet Server
        2. The Directory Server
        3. The Replication Server
        4. The Run Server
        5. The Boot Server
        6. The TCP/IP Server
        7. Other Servers
      7. Summary
    7. Case Study 4: Mach
      1. Introduction to Mach
        1. History of Mach
        2. Goals of Mach
        3. The Mach Microkernel
        4. The Mach BSD UNIX Server
      2. Process Management in Mach
        1. Processes
        2. Threads
        3. Scheduling
      3. Memory Management in Mach
        1. Virtual Memory
        2. Memory Sharing
        3. External Memory Managers
        4. Distributed Shared Memory in Mach
      4. Communications in Mach
        1. Ports
        2. Sending and Receiving Messages
        3. The Network Message Server
      5. BSD UNIX Emulation in Mach
      6. Comparison of Amoeba and Mach
        1. Philosophy
        2. Objects
        3. Processes
        4. Memory Model
        5. Communication
        6. Servers
      7. Summary
    1. Reading List and Bibliography
      1. Suggestions for Further Reading
        1. Introduction and General Works
        2. processes
        3. Memory Management
        4. File Systems
        5. Input/Output
        6. Deadlocks
        7. UNIX
        8. MS-DOS
        9. Introduction to Distributed Systems
        10. Communications in Distributed Systems
        11. Synchronization in Distributed Systems
        12. Processes and Processors in Distributed Systems
        13. Distributed File Systems
        14. Amoeba
        15. Mach
      2. Alphabetical Bibliography
    2. Introduction to C
      1. Fundamentals of C
      2. Basic Data Types
      3. Constructed Data Types
      4. Statements
      5. Expressions
      6. Program Structure
      7. The C Preprocessor
      8. Idioms

Reviews

Modern Operating Systems

Reviewed by Roland Buresund

Mediocre **** (4 out of 10)

Last modified: May 21, 2007, 3:16 a.m.

Still one of the best introductions to operating systems on the market. Personally, I find it pretty boring.

Comments

There are currently no comments

New Comment

required

required (not published)

optional

required

captcha

required