Operating Systems

Design and Implementation

Andrew S. Tanenbaum

Publisher: Prentice Hall, 1987, 719 pages

ISBN: 0-13-637331-3

Keywords: Operating Systems

Last modified: May 23, 2021, 11:06 a.m.

Not Available as its an International Edition

  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 (1945-1955): Vacuum Tubes and Plugboards
      2. The Second Generation (1955-1965): Transistors and Batch Processing
      3. The Third Generation (1965-1980): ICs and Multiprogramming
      4. The Fourth Generation (1980-1990): Personal Computers
    3. Operating System Concepts
      1. Processes
      2. Files
      3. The Shell
    4. System Calls
      1. System Calls for Process Management
      2. System Calls for Signaling
      3. System Calls for File Management
      4. System Calls for Directory Management
      5. System Calls for Protection
      6. System Calls for Time Management
    5. Operating System Structure
      1. Monolithic Systems
      2. Layered Systems
      3. Virtual Machines
      4. Client-Server Model
    6. Outline of the Rest of This Book
    7. 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
    4. Process Scheduling
      1. Round Robin Scheduling
      2. Priority Scheduling
      3. Multiple Queues
      4. Shortest Job First
      5. Policy-Driven Scheduling
      6. Two-level Scheduling
    5. Overview of Processes in MINIX
      1. The Internal Structure of MINIX
      2. Process Management in MINIX
      3. Interprocess Communication in MINIX
      4. Process Scheduling in MINIX
    6. Implementation of Processes in MINIX
      1. Organization of the MINIX Source Code
      2. The Common Header Files
      3. Process Data Structures and Header Files
      4. System Initializaton
      5. Interrupt Handling in MINIX
      6. The Kernel's Assembly Code Utilities
      7. Interprocess Communication in MINIX
      8. Scheduling in MINIX
    7. Summary
  3. Input/Output
    1. Principles of I/O Hardware
      1. I/O Devices
      2. Device Controllers
    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. Deadlocks
      1. Resources
      2. Deadlock Modeling
      3. The Ostrich Algorithm
      4. Detection and Recovery
      5. Deadlock Prevention
      6. Deadlock Avoidance
    4. Overview of I/O in MINIX
      1. Interrupt Handlers in MINIX
      2. Device Drivers in MINIX
      3. Device-Independent I/O Software in MINIX
      4. User-level I/O Software in MINIX
      5. Deadlock Handling in MINIX
    5. RAM Disks
      1. RAM Disk Hardware and Software
      2. Overview of the RAM Disk Driver in MINIX
      3. Implementation of the RAM Disk Driver in MINIX
    6. Disks
      1. Disk Hardware
      2. Disk Software
      3. Overview of the Floppy Disk Driver in MINIX
      4. Implementation of the Floppy DIsk Driver in MINIX
    7. Clocks
      1. Clock Hardware
      2. Clock Software
      3. Overview of the Clock Driver in MINIX
      4. Implementation of the Clock Driver in MINIX
    8. Terminals
      1. Terminals Hardware
      2. Terminals Software
      3. Overview of the Terminal Driver in MINIX
      4. Implementation of the Terminal Driver in MINIX
    9. The System Task in MINIX
    10. Summary
  4. 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. Segmentation
    4. Page Replacement Algorithms
      1. Optimal Page Replacement
      2. Not-Recently-Used Page Replacement
      3. First-In First-Out Page Replacement
      4. Least Recently Used Page Replacement
      5. Simulating LRU in Software
    5. Design Issues for Paging Systems
      1. The Working Set Model
      2. Local versus Global Allocation Policies
      3. Page Size
      4. Implementation Issues
    6. Overview of Memory Management in MINIX
      1. Memory Layout
      2. Message Handling
      3. Memory Manager Data Structures and Algorithms
      4. The FORK, EXIT, and WAIT System Calls
      5. The EXEC System Call
      6. The BRK System Call
      7. Signal Handling
      8. Other System Calls
    7. Implementation of Memory Management in MINIX
      1. The Header Files
      2. The Main Program
      3. Implementation of FORK, EXIT, and WAIT
      4. Implementation of EXEC
      5. Implementation of BRK
      6. Implementation of Signal Handling
      7. Implementation of Other System Calls
      8. Memory Manager Utilities
    8. Summary
  5. File Systems
    1. The User View of the File System
      1. File Basics
      2. Directories
    2. File System Design
      1. Disk Space Management
      2. File Storage
      3. Directory Structure
      4. Shared Files
      5. File System Reliability
      6. File System Performance
    3. File Servers
      1. Interface Level
      2. Atomic Update
      3. Concurrency Control
      4. Transactions
      5. Replicated Files
    4. Security
      1. The Security Environment
      2. Famous Security Flaws
      3. Generic Security Attacks
      4. Design Principles for Security
      5. User Authentication
    5. Protection Mechanisms
      1. Protection Domains
      2. Access Control Lists
      3. Capabilities
      4. Protection Models
      5. Covert Channels
    6. Overview of the MINIX File System
      1. Messages
      2. File System Layout
      3. Bit Maps
      4. I-nodes
      5. The Block Cache
      6. Directories and Paths
      7. File Descriptors
      8. Pipes and Special Files
      9. An Example: The READ System Call
    7. Implementation of the MINIX File System
      1. The Header Files
      2. Table Management
      3. The Main Program
      4. Operations on Individual Files
      5. Directories and Paths
      6. Other System Calls
      7. The I/O Device Interface
      8. General Utilities
    8. Summary
  6. Reading List and Bibliography
    1. Suggestions for Further Reading
      1. Introduction and General Works
      2. Processes
      3. Input/Output
      4. Memory Management
      5. File Systems
    2. Alphabetical Bibiography
  • Appendices
    1. Introduction to C
    2. Introduction to the IBM PC
    3. MINIX Users' Guide
    4. MINIX Implementers' Guide
    5. MINIX Source Code Listing
    6. MINIX Cross Reference Listing

Reviews

Operating Systems

Reviewed by Roland Buresund

OK ***** (5 out of 10)

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

This is the classical Minix book. Interesting, but mostly of historical value, as the inspiration of Linux.

Comments

There are currently no comments

New Comment

required

required (not published)

optional

required

captcha

required