Skip to content

Modern Operating Systems

Best in textbook rentals since 2012!

ISBN-10: 0138134596

ISBN-13: 9780138134594

Edition: N/A

Authors: Andrew S. Tanenbaum

Blue ribbon 30 day, 100% satisfaction guarantee!
Out of stock
We're sorry. This item is currently unavailable.
what's this?
Rush Rewards U
Members Receive:
Carrot Coin icon
XP icon
You have reached 400 XP and carrot coins. That is the daily max!

Customers also bought

Book details

Publisher: Pearson Education
Pages: 1104
Size: 6.00" wide x 7.91" long x 1.43" tall
Weight: 0.990

Introduction
What is an Operating System?
The Operating System as an Extended Machine
The Operating System as a Resource Manager
History of Operating Systems
The First Generation
The Second Generation
The Third Generation
The Fourth Generation
Computer Hardware Review
Processors
Memory
Disks
Tapes
I/O Devices
Buses
Booting the Computer
The Operating System Zoo
Mainframe Operating Systems
Server Operating Systems
Multiprocessor Operating Systems
Personal Computer Operating Systems
Handheld Computer Operating Systems
Embedded Operating Systems
Sensor Node Operating Systems
Real-Time Operating Systems
Smart Card Operating Systems
Operating System Concepts
Processes
Address Spaces
Files
Input/Output
Protection
The Shell
Ontogeny Recapitulates Phylogeny
System Calls
System Calls for Process Management
System Calls for File Management
System Calls for Directory Management
Miscellaneous System Calls
The Windows Win32 API
Operating System Structure
Monolithic Systems
Layered Systems
Microkernels
Client-Server Model
Virtual Machines
Exokernels
The World According to C
The C Language
Header Files
Large Programming Projects
The Model of Run Time
Research on Operating Systems
Outline of the Rest of This Book
Metric Units
Summary
Processes and Threads
Processes
The Process Model
Process Creation
Process Termination
Process Hierarchies
Process States
Implementation of Processes
Modeling Multiprogramming
Threads
Thread Usage
The Classical Thread Model
POSIX Threads
Implementing Threads in User Space
Implementing Threads in the Kernel
Hybrid Implementations
Scheduler Activations
Pop-Up Threads
Making Single-Threaded Code Multithreaded
Interprocess Communication
Race Conditions
Critical Regions
Mutual Exclusion with Busy Waiting
Sleep and Wakeup
Semaphores
Mutexes
Monitors
Message Passing
Barriers
Scheduling
Introduction to Scheduling
Scheduling in Batch Systems
Scheduling in Interactive Systems
Scheduling in Real-Time Systems
Policy versus Mechanism
Thread Scheduling
Classical IPC Problems
The Dining Philosophers Problem
The Readers and Writers Problem
Research on Processes and Threads
Summary
Memory Management
No Memory Abstraction
A Memory Abstraction: Address Spaces
The Notion of an Address Space
Swapping
Managing Free Memory
Virtual Memory
Paging
Page Tables
Speeding Up Paging
Page Tables for Large Memories
Page Lacement Algorithms
The Optimal Page Replacement Algorithm
The Not Recently Used Page Replacement Algorithm
The First-In, First-Out
The Second Chance Page Replacement Algorithm
The Clock Page Replacement Algorithm
The Least Recently Used
Simulating LRU in Software
The Working Set Page Replacement Algorithm
The WSClock Page Replacement Algorithm
Summary of Page Replacement Algorithms
Design Issues For Paging Systems
Local versus Global Allocation Policies
Load Control
Page Size
Separate Instruction and Data Spaces
Shared Pages
Shared Libraries
Mapped Files
Cleaning Policy
Virtual Memory Interface
Implementation Issues
Operating System Involvement with Paging
Page Fault Handling
Instruction Backup
Locking Pages in Memory
Backing Store
Separation of Policy and Mechanism
Segmentation
Implementation of Pure Segmentation
Segmentation with Paging: MULTICS
Segmentation with Paging: The Intel Pentium
Research on Memory Management
Summary
File systems
Files
File Naming
File Structure
File Types
File Access
File Attributes
File Operations
An Example Program Using File System Calls
Directories
Single-Level Directory Systems
Hierarchical Directory Systems
Path Names
Directory Operations
File System Implementation
File System Layout
Implementing Files
Implementing Directories
Shared Files
Log-Structured File Systems
Journaling File Systems
Virtual File Systems
File System Management and Optimization
Disk Space Management
File System Backups
File System Consistency
File System Performance
Defragmenting Disks
Example File Systems
CD-ROM File Systems
The MS-DOS File System
The UNIX V7 File System
Research on File Systems
Summary
Input/Output
Principles of I/O Hardware
I/O Devices
Device Controllers
Memory-Mapped I/O
Direct Memory Access
Interrupts Revisited
Principles of I/O Software
Goals of the I/O Software
Programmed I/O
Interrupt-Driven I/O
I/O Using DMA
I/O Software Layers
Interrupt Handlers
Device Drivers
Device-Independent I/O Software
User-Space I/O Software
Disks
Disk Hardware
Disk Formatting
Disk Arm Scheduling Algorithms
Error Handling
Stable Storage
Clocks
Clock Hardware
Clock Software
Soft Timers
User Interfaces: Keyboard, Mouse, Monitor
Input Software
Output Software
Thin Clients
Power Management
Hardware Issues
Operating System Issues:
Application Program Issues
Research on Input/Output
Summary
Deadlocks
Resources
Preemptable and Nonpreemptable Resources
Resource Acquisition
Introduction to Deadlocks
Conditions for Resource Deadlocks
Deadlock Modeling
The Ostrich Algorithm
Deadlock Detection and Recovery
Deadlock Detection with One Resource of Each Type
Deadlock Detection with Multiple Resources of Each Type
Recovery from Deadlock
Deadlock Avoidance
Resource Trajectories
Safe and Unsafe States
The Banker's Algorithm for a Single Resource
The Banker's Algorithm for Multiple Resources
Deadlock Prevention
Attacking the Mutual Exclusion Condition
Attacking the Hold and Wait Condition
Attacking the No Preemption Condition
Attacking the Circular Wait Condition
Other Issues
Two-Phase Locking
Communication Deadlocks
Livelock
Starvation
Research on Deadlocks
Summary
Multimedia Operating Systems
Introduction to Multimedia
Multimedia Files
Video Encoding
Audio Encoding
Video Compression
The JPEG Standard
The MPEG Standard
Audio Compression
Multimedia Process Scheduling
Scheduling Homogeneous Processes
General Real-Time Scheduling
Rate Monotonic Scheduling
Earliest Deadline First Scheduling
Multimedia File System Parad
VCR Control Functions
Near Video on Demand
Near Video on Demand with VCR Functions
File placement
Placing a File on a Single Disk
Two Alternative File Organization Strategies
Placing Files for Near Video on Demand
Placing Multiple Files on a Single Disk
Placing Files on Multiple Disks
Caching
Block Caching
File Caching
Disk Scheduling For Multimedia
Static Disk Scheduling
Dynamic Disk Scheduling
Research on Multimedia
Summary
Multiple Processor Systems
Multiprocessors
Multiprocessor Hardware
Multiprocessor Operating System Types
Multiprocessor Synchronization
Multiprocessor Scheduling
Multicomputers
Multicomputer Hardware
Low-Level Communication Software
User-Level Communication Software
Remote Procedure Call
Distributed Shared Memory
Multicomputer Scheduling
Load Balancing
Virtualization
Requirements for Virtualization
Type 1 Hypervisors
Type 2 Hypervisors
Paravirtualization
Memory Virtualization
I/O Virtualization
Virtual Appliances
Virtual Machines on Multicore CPUs
Licensing Issues
Distributed Systems
Network Hardware
Network Services and Protocols
Document-Based Middleware
File System-Based Middleware
Object-Based Middleware
Coordination-Based Middleware
Research on Multiple Processor Systems
Summary
Security
The Security Environment
Threats
Intruders
Accidental Data Loss
Basics of Cryptography
Secret-Key Cryptography
Public-Key Cryptography
One-Way Functions
Digital Signatures
Trusted Platform Module
Protection Mechanisms
Protection Domains
Access Control Lists
Capabilities
Trusted systems
Trusted Computing Base
Formal Models of Secure Systems
Multilevel Security
Covert Channels
Authentication
Authentication Using Passwords
Authentication Using a Physical Object
Authentication Using Biometrics
Insider Attacks
Logic Bombs
Trap Doors
Login Spoofing
Exploiting Code Bugs
Buffer Overflow Attacks
Format String Attacks
Return to libc Attacks
Integer Overflow Attacks
Code Injection Attacks
Privilege Escalation Attacks
Malware
Trojan Horses
Viruses
Worms
Spyware
Rootkits
Defenses
Firewalls
Antivirus and Anti-Antivirus Techniques
Code Signing
Jailing
Model-Based Intrusion Detection
Encapsulating Mobile Code
Java Security
Research on Security
Summary
Case Study 1: Linux
History of Unix and Linux
UNICS
PDP-11 UNIX
Portable UNIX
Berkeley UNIX
Standard UNIX
MINIX
Linux
Overview of Linux
Linux Goals
Interfaces to Linux
The Shell
Linux Utility Programs
Kernel Structure
Processes in Linux
Fundamental Concepts
Process Management System Calls in Linux
Implementation of Processes and Threads in Linux
Scheduling in Linux
Booting Linux
Memory Management in Linux
Fundamental Concepts
Memory Management System Calls in Linux
Implementation of Memory Management in Linux
Paging in Linux
Input/Output in Linux
Fundamental Concepts
Networking
Input/Output System Calls in Linux
Implementation of Input/Output in Linux
Modules in Linux
The Linux File System
Fundamental Concepts
File System Calls in Linux
Implementation of the Linux File System
NFS: The Network File System
Security in Linux
Fundamental Concepts
Security System Calls in Linux
Implementation of Security in Linux
Summary
Case study 2: Windows Vista
History of Windows Vista
1980s: MS-DOS
1990s: MS-DOS-based Windows
2000s: NT-based Windows
Windows Vista
Programming Windows Vista
The Native NT Application Programming Interface
The Win32 Application Programming Interface
The Windows Registry
System Structure
Operating System Structure
Booting Windows Vista
Implementation of the Object Manager
Subsystems, DLLs, and User-mode Services
Processes and Threads in Windows Vista
Fundamental Concepts
Job, Process, Thread and Fiber Management API Calls
Implementation of Processes and Threads
Memory Management
Fundamental Concepts
Memory Management System Calls
Implementation of Memory Management
Caching in Windows Vista
Input/Output in Windows Vista
Fundamental Concepts
Input/Output API Calls
Implementation of I/O
The Windows NT File System
Fundamental Concepts
Implementation of the NT File System
Security in Windows Vista
Fundamental Concepts
Security API Calls
Implementation of Security
Summary
Case Study 3: Symbian OS
The History of Symbian OS
Symbian OS Roots: Psion and EPOC
Symbian OS Version 6
Symbian OS Version 7
Symbian OS Today
An Overview of Symbian OS
Object Orientation
Microkernel Design
The Symbian OS Nanokernel
Client/Server Resource Access
Features of a Larger Operating System
Communication and Multimedia
Processes and Threads in Symbian OS
Threads and Nanothreads
Processes
Active Objects
Interprocess Communication
Memory Management
Systems with No Virtual Memory
How Symbian OS Addresses Memory
Input and Output
Device Drivers
Kernel Extensions
Direct Memory Access
Special Case: Storage Media
Blocking I/O
Removable Media
Storage Systems
File systems for Mobile Devices
Symbian OS File systems
File system Security and Protection
Security in Symbian OS
Communication in Symbian OS
Basic Infrastructure
A Closer Look at the Infrastructure
Summary
Operating Systems Design
The Nature of the Design Problem
Goals
Why is it Hard to Design an Operating System?
Interface Design
Guiding Principles
Paradigms
The System Call Interface
Implementation
System Structure
Mechanism versus Policy
Orthogonality
Naming
Binding Time
Static versus Dynamic Structures
Top-Down versus Bottom-Up Implementation
Useful Techniques
Performance
Why Are Operating Systems Slow?
What Should Be Optimized?
Space-Time Trade-offs
Caching
Hints
Exploiting Locality
Optimize the Common Case
Project Management
The Mythical Man Month
Team Structure
The Role of Experience
No Silver Bullet
Trends in Operating System Design
Virtualization
Multicore Chips
Large Address Space Operating Systems
Networking
Parallel and Distributed Systems
Multimedia
Battery-Powered Computers
Embedded Systems
Sensor Nodes
Summary
Reading List and Bibliography
Suggestions For Further Reading
Introduction and General Works
Processes and Threads
Memory Management
Input/Output
File Systems
eadlocks
Multimedia Operating Systems
Multiple Processor Systems
ecurity
Linux
Windows Vista
The Symbian OS
Design Principles
Alphabetical Bibliography
Index