Operating Systems Design and Implementation 3rd Edition by Andrew Tanenbaum, Albert Woodhull – Ebook PDF Instant Download/Delivery. 0131429388, 9780131429383
Full download Operating Systems Design and Implementation 3rd Edition after payment
Product details:
ISBN 10: 0131429388
ISBN 13: 9780131429383
Author: Andrew S. Tanenbaum; Albert S. Woodhull
This is the eBook of the printed book and may not include any media, website access codes, or print supplements that may come packaged with the bound book. Operating Systems Design and Implementation, 3e, is ideal for introductory courses on computer operating systems. Written by the creator of Minux, professional programmers will now have the most up-to-date tutorial and reference available today. Revised to address the latest version of MINIX (MINIX 3), this streamlined, simplified new edition remains the only operating systems text to first explain relevant principles, then demonstrate their applications using a Unix-like operating system as a detailed example. It has been especially designed for high reliability, for use in embedded systems, and for ease of teaching.
Operating Systems Design and Implementation 3rd Table of contents:
1 INTRODUCTION
1.1 WHAT IS AN OPERATING SYSTEM?
1.1.1 The Operating System as an Extended Machine
1.1.2 The Operating System as a Resource Manager
1.2 HISTORY OF OPERATING SYSTEMS
1.2.1 The First Generation (1945–55) Vacuum Tubes and Plugboards
1.2.2 The Second Generation (1955–65) Transistors and Batch Systems
1.2.3 The Third Generation (1965–1980) ICs and Multiprogramming
1.2.4 The Fourth Generation (1980–Present) Personal Computers
1.2.5 History of MINIX 3
1.3 OPERATING SYSTEM CONCEPTS
1.3.1 Processes
1.3.2 Files
1.3.3 The Shell
1.4 SYSTEM CALLS
1.4.1 System Calls for Process Management
1.4.2 System Calls for Signaling
1.4.3 System Calls for File Management
1.4.4 System Calls for Directory Management
1.4.5 System Calls for Protection
1.4.6 System Calls for Time Management
1.5 OPERATING SYSTEM STRUCTURE
1.5.1 Monolithic Systems
1.5.2 Layered Systems
1.5.3 Virtual Machines
1.5.4 Exokernels
1.5.5 Client-Server Model
1.6 OUTLINE OF THE REST OF THIS BOOK
1.7 SUMMARY
2 PROCESSES
2.1 INTRODUCTION TO PROCESSES
2.1.1 The Process Model
2.1.2 Process Creation
2.1.3 Process Termination
2.1.4 Process Hierarchies
2.1.5 Process States
2.1.6 Implementation of Processes
2.1.7 Threads
2.2 INTERPROCESS COMMUNICATION
2.2.1 Race Conditions
2.2.2 Critical Sections
2.2.3 Mutual Exclusion with Busy Waiting
2.2.4 Sleep and Wakeup
2.2.5 Semaphores
2.2.6 Mutexes
2.2.7 Monitors
2.2.8 Message Passing
2.3 CLASSICAL IPC PROBLEMS
2.3.1 The Dining Philosophers Problem
2.3.2 The Readers and Writers Problem
2.4 SCHEDULING
2.4.1 Introduction to Scheduling
2.4.2 Scheduling in Batch Systems
2.4.3 Scheduling in Interactive Systems
2.4.4 Scheduling in Real-Time Systems
2.4.5 Policy versus Mechanism
2.4.6 Thread Scheduling
2.5 OVERVIEW OF PROCESSES IN MINIX 3
2.5.1 The Internal Structure of MINIX 3
2.5.2 Process Management in MINIX 3
2.5.3 Interprocess Communication in MINIX 3
2.5.4 Process Scheduling in MINIX 3
2.6 IMPLEMENTATION OF PROCESSES IN MINIX 3
2.6.1 Organization of the MINIX 3 Source Code
2.6.2 Compiling and Runniing MINIX 3
2.6.3 The Common Header Files
2.6.4 The MINIX 3 Header Files
2.6.5 Process Data Structures and Header Files
2.6.6 Bootstrapping MINIX 3
2.6.7 System Initialization
2.6.8 Interrupt Handling in MINIX 3
2.6.9 Interprocess Communication in MINIX 3
2.6.10 Scheduling in MINIX 3
2.6.11 Hardware-Dependent Kernel Support
2.6.12 Utilities and the Kernel Library
2.7 THE SYSTEM TASK IN MINIX 3
2.7.1 Overview of the System Task
2.7.2 Implementation of the System Task
2.7.3 Implementation of the System Libarary
2.8 THE CLOCK TASK IN MINIX 3
2.8.1 Clock Hardware
2.8.2 Clock Software
2.8.3 Overview of the Clock Driver in MINIX 3
2.8.4 Implementation of the Clock Driver in MINIX 3
2.9 SUMMARY
3 INPUT/OUTPUT
3.1 PRINCIPLES OF I/O HARDWARE
3.1.1 I/O Devices
3.1.2 Device Controllers
3.1.3 Memory-Mapped I/O
3.1.4 Interrupts
3.1.5 Direct Memory Access
3.2 PRINCIPLES OF I/O SOFTWARE
3.2.1 Goals of the I/O Software
3.2.2 Interrupt Handlers
3.2.3 Device Drivers
3.2.4 Device-Independent I/O Software
3.2.5 User-Space I/O Software
3.3 DEADLOCKS
3.3.1 Resources
3.3.2 Principles of Deadlock
3.3.3 The Ostrich Algorithm
3.3.4 Detection and Recovery
3.3.5 Deadlock Prevention
3.3.6 Deadlock Avoidance
3.4 OVERVIEW OF I/O IN MINIX 3
3.4.1 Interrupt Handlers in MINIX 3
3.4.2 Device Drivers in MINIX 3
3.4.3 Device-Independent I/O Software in MINIX 3
3.4.4 User-level I/O Software in MINIX 3
3.4.5 Deadlock Handling in MINIX 3
3.5 BLOCK DEVICES IN MINIX3
3.5.1 Overview of Block Device Drivers in MINIX 3
3.5.2 Common Block Device Driver Software
3.5.3 The Driver Library
3.6 RAM DISKS
3.6.1 RAM Disk Hardware and Software
3.6.2 Overview of the RAM Disk Driver in MINIX 3
3.6.3 Implementation of the RAM Disk Driver in MINIX 3
3.7 DISKS
3.7.1 Disk Hardware
3.7.2 RAID
3.7.3 Disk Software
3.7.4 Overview of the Hard Disk Driver in MINIX 3
3.7.5 Implementation of the Hard Disk Driver in MINIX 3
3.7.6 Floppy Disk Handling
3.8 TERMINALS
3.8.1 Terminal Hardware
3.8.2 Terminal Software
3.8.3 Overview of the Terminal Driver in MINIX 3
3.8.4 Implementation of the Device-Independent Terminal Driver
3.8.5 Implementation of the Keyboard Driver
3.8.6 Implementation of the Display Driver
3.9 SUMMARY
4 MEMORY MANAGEMENT
4.1 BASIC MEMORY MANAGEMENT
4.1.1 Monoprogramming without Swapping or Paging
4.1.2 Multiprogramming with Fixed Partitions
4.1.3 Relocation and Protection
4.2 SWAPPING
4.2.1 Memory Management with Bitmaps
4.2.2 Memory Management with Linked Lists
4.3 VIRTUAL MEMORY
4.3.1 Paging
4.3.2 Page Tables
4.3.3 TLBs—Translation Lookaside Buffers
4.3.4 Inverted Page Tables
4.4 PAGE REPLACEMENT ALGORITHMS
4.4.1 The Optimal Page Replacement Algorithm
4.4.2 The Not Recently Used Page Replacement Algorithm
4.4.3 The First-In, First-Out (FIFO) Page Replacement Algorithm
4.4.4 The Second Chance Page Replacement Algorithm
4.4.5 The Clock Page Replacement Algorithm
4.4.6 The Least Recently Used (LRU) Page Replacement Algorithm
4.4.7 Simulating LRU in Software
4.5 DESIGN ISSUES FOR PAGING SYSTEMS
4.5.1 The Working Set Model
4.5.2 Local versus Global Allocation Policies
4.5.3 Page Size
4.5.4 Virtual Memory Interface
4.6 SEGMENTATION
4.6.1 Implementation of Pure Segmentation
4.6.2 Segmentation with Paging: The Intel Pentium
4.7 OVERVIEW OF THE MINIX 3 PROCESS MANAGER
4.7.1 Memory Layout
4.7.2 Message Handling
4.7.3 Process Manager Data Structures and Algorithms
4.7.4 The FORK, EXIT, and WAIT System Calls
4.7.5 The EXEC System Call
4.7.6 The BRK System Call
4.7.7 Signal Handling
4.7.8 Other System Calls
4.8 IMPLEMENTATION OF THE MINIX 3 PROCESS MANAGER
4.8.1 The Header Files and Data Structures
4.8.2 The Main Program
4.8.3 Implementation of FORK, EXIT, and WAIT
4.8.4 Implementation of EXEC
4.8.5 Implementation of BRK
4.8.6 Implementation of Signal Handling
4.8.7 Implementation of Other System Calls
4.8.8 Memory Management Utilities
4.9 SUMMARY
5 FILE SYSTEMS
5.1 FILES
5.1.1 File Naming
5.1.2 File Structure
5.1.3 File Types
5.1.4 File Access
5.1.5 File Attributes
5.1.6 File Operations
5.2 DIRECTORIES
5.2.1 Simple Directories
5.2.2 Hierarchical Directory Systems
5.2.3 Path Names
5.2.4 Directory Operations
5.3 FILE SYSTEM IMPLEMENTATION
5.3.1 File System Layout
5.3.2 Implementing Files
5.3.3 Implementing Directories
5.3.4 Disk Space Management
5.3.5 File System Reliability
5.3.6 File System Performance
5.3.7 Log-Structured File Systems
5.4 SECURITY
5.4.1 The Security Environment
5.4.2 Generic Security Attacks
5.4.3 Design Principles for Security
5.4.4 User Authentication
5.5 PROTECTION MECHANISMS
5.5.1 Protection Domains
5.5.2 Access Control Lists
5.5.3 Capabilities
5.5.4 Covert Channels
5.6 OVERVIEW OF THE MINIX 3 FILE SYSTEM
5.6.1 Messages
5.6.2 File System Layout
5.6.3 Bitmaps
5.6.4 I-Nodes
5.6.5 The Block Cache
5.6.6 Directories and Paths
5.6.7 File Descriptors
5.6.8 File Locking
5.6.9 Pipes and Special Files
5.6.10 An Example: The READ System Call
5.7 IMPLEMENTATION OF THE MINIX 3 FILE SYSTEM
5.7.1 Header Files and Global Data Structures
5.7.2 Table Management
5.7.3 The Main Program
5.7.4 Operations on Individual Files
5.7.5 Directories and Paths
5.7.6 Other System Calls
5.7.7 The I/O Device Interface
5.7.8 Additional System Call Support
5.7.9 File System Utilities
5.7.10 Other MINIX 3 Components
SUMMARY
6 READING LIST AND BIBLIOGRAPHY
6.1 SUGGESTIONS FOR FURTHER READING
6.1.1 Introduction and General Works
6.1.2 Processes
6.1.3 Input/Output
6.1.4 Memory Management
6.1.5 File Systems
6.2 ALPHABETICAL BIBLIOGRAPHY
APPENDICES
A: INSTALLING MINIX 3
B: MINIX 3 SOURCE CODE LISTING
C: INDEX TO FILES
People also search for Operating Systems Design and Implementation 3rd:
operating systems design and implementation
operating systems design rutgers
operating systems design and implementation 3/e
operating system design