Modern Operating Systems
Subtitle: Forth Edition
Publisher: Pearson
Published: 2015
Language: eng
Number of pages: 1136
ISBN-13: 9780133591620
Table of contents: title: Preface
pagenum: xxiii; label: Chapter 1
title: Introduction
pagenum: 1; label: 1.1
title: What Is an Operating System?
pagenum: 3; label: 1.1.1
title: The Operating System as an Extended Machine
pagenum: 4; label: 1.1.2
title: The Operating System as a Resource Manager
pagenum: 5; label: 1.2
title: History of Operating Systems
pagenum: 6; label: 1.2.1
title: The First Generation (1945–55): Vacuum Tubes
pagenum: 7; label: 1.2.2
title: The Second Generation (1955–65): Transistors and Batch Systems
pagenum: 8; label: 1.2.3
title: The Third Generation (1965–1980): ICs and Multiprogramming
pagenum: 9; label: 1.2.4
title: The Fourth Generation (1980–Present): Personal Computers
pagenum: 14; label: 1.2.5
title: The Fifth Generation (1990–Present): Mobile Computers
pagenum: 19; label: 1.3
title: Computer Hardware Review
pagenum: 20; label: 1.3.1
title: Processors
pagenum: 21; label: 1.3.2
title: Memory
pagenum: 24; label: 1.3.3
title: Disks
pagenum: 27; label: 1.3.4
title: I/O Devices
pagenum: 28; label: 1.3.5
title: Buses
pagenum: 31; label: 1.3.6
title: Booting the Computer
pagenum: 34; label: 1.4
title: The Operating System Zoo
pagenum: 35; label: 1.4.1
title: Mainframe Operating Systems
pagenum: 35; label: 1.4.2
title: Server Operating Systems
pagenum: 35; label: 1.4.3
title: Multiprocessor Operating Systems
pagenum: 36; label: 1.4.4
title: Personal Computer Operating Systems
pagenum: 36; label: 1.4.5
title: Handheld Computer Operating Systems
pagenum: 36; label: 1.4.6
title: Embedded Operating Systems
pagenum: 36; label: 1.4.7
title: Sensor-Node Operating Systems
pagenum: 37; label: 1.4.8
title: Real-Time Operating Systems
pagenum: 37; label: 1.4.9
title: Smart Card Operating Systems
pagenum: 38; label: 1.5
title: Operating System Concepts
pagenum: 38; label: 1.5.1
title: Processes
pagenum: 39; label: 1.5.2
title: Address Spaces
pagenum: 41; label: 1.5.3
title: Files
pagenum: 41; label: 1.5.4
title: Input/Output
pagenum: 45; label: 1.5.5
title: Protection
pagenum: 45; label: 1.5.6
title: The Shell
pagenum: 45; label: 1.5.7
title: Ontogeny Recapitulates Phylogeny
pagenum: 46; label: 1.6
title: System Calls
pagenum: 50; label: 1.6.1
title: System Calls for Process Management
pagenum: 53; label: 1.6.2
title: System Calls for File Management
pagenum: 56; label: 1.6.3
title: System Calls for Directory Management
pagenum: 57; label: 1.6.4
title: Miscellaneous System Calls
pagenum: 59; label: 1.6.5
title: The Windows Win32 API
pagenum: 60; label: 1.7
title: Operating System Structure
pagenum: 62; label: 1.7.1
title: Monolithic Systems
pagenum: 62; label: 1.7.2
title: Layered Systems
pagenum: 63; label: 1.7.3
title: Microkernels
pagenum: 65; label: 1.7.4
title: Client-Server Model
pagenum: 68; label: 1.7.5
title: Virtual Machines
pagenum: 68; label: 1.7.6
title: Exokernels
pagenum: 72; label: 1.8
title: The World According to C
pagenum: 73; label: 1.8.1
title: The C Language
pagenum: 73; label: 1.8.2
title: Header Files
pagenum: 74; label: 1.8.3
title: Large Programming Projects
pagenum: 75; label: 1.8.4
title: The Model of Run Time
pagenum: 76; label: 1.9
title: Research on Operating Systems
pagenum: 77; label: 1.10
title: Outline of the Rest of This Book
pagenum: 78; label: 1.11
title: Metric Units
pagenum: 79; label: 1.12
title: Summary
pagenum: 80; label: Chapter 2
title: Processes and Threads
pagenum: 85; label: 2.1
title: Processes
pagenum: 85; label: 2.1.1
title: The Process Model
pagenum: 86; label: 2.1.2
title: Process Creation
pagenum: 88; label: 2.1.3
title: Process Termination
pagenum: 90; label: 2.1.4
title: Process Hierarchies
pagenum: 91; label: 2.1.5
title: Process States
pagenum: 92; label: 2.1.6
title: Implementation of Processes
pagenum: 94; label: 2.1.7
title: Modeling Multiprogramming
pagenum: 95; label: 2.2
title: Threads
pagenum: 97; label: 2.2.1
title: Thread Usage
pagenum: 97; label: 2.2.2
title: The Classical Thread Model
pagenum: 102; label: 2.2.3
title: POSIX Threads
pagenum: 106; label: 2.2.4
title: Implementing Threads in User Space
pagenum: 108; label: 2.2.5
title: Implementing Threads in the Kernel
pagenum: 111; label: 2.2.6
title: Hybrid Implementations
pagenum: 112; label: 2.2.7
title: Scheduler Activations
pagenum: 113; label: 2.2.8
title: Pop-Up Threads
pagenum: 114; label: 2.2.9
title: Making Single-Threaded Code Multithreaded
pagenum: 115; label: 2.3
title: Interprocess Communication
pagenum: 119; label: 2.3.1
title: Race Conditions
pagenum: 119; label: 2.3.2
title: Critical Regions
pagenum: 121; label: 2.3.3
title: Mutual Exclusion with Busy Waiting
pagenum: 121; label: 2.3.4
title: Sleep and Wakeup
pagenum: 127; label: 2.3.5
title: Semaphores
pagenum: 130; label: 2.3.6
title: Mutexes
pagenum: 132; label: 2.3.7
title: Monitors
pagenum: 137; label: 2.3.8
title: Message Passing
pagenum: 144; label: 2.3.9
title: Barriers
pagenum: 146; label: 2.3.10
title: Avoiding Locks: Read-Copy-Update
pagenum: 148; label: 2.4
title: Scheduling
pagenum: 148; label: 2.4.1
title: Introduction to Scheduling
pagenum: 149; label: 2.4.2
title: Scheduling in Batch Systems
pagenum: 156; label: 2.4.3
title: Scheduling in Interactive Systems
pagenum: 158; label: 2.4.4
title: Scheduling in Real-Time Systems
pagenum: 164; label: 2.4.5
title: Policy Versus Mechanism
pagenum: 165; label: 2.4.6
title: Thread Scheduling
pagenum: 165; label: 2.5
title: Classical IPC Problems
pagenum: 167; label: 2.5.1
title: The Dining Philosophers Problem
pagenum: 167; label: 2.5.2
title: The Readers and Writers Problem
pagenum: 169; label: 2.6
title: Research on Processes and Threads
pagenum: 172; label: 2.7
title: Summary
pagenum: 173; label: Chapter 3
title: Memory Management
pagenum: 181; label: 3.1
title: No Memory Abstraction
pagenum: 182; label: 3.2
title: A Memory Abstraction: Address Spaces
pagenum: 185; label: 3.2.1
title: The Notion of an Address Space
pagenum: 185; label: 3.2.2
title: Swapping
pagenum: 187; label: 3.2.3
title: Managing Free Memory
pagenum: 190; label: 3.3
title: Virtual Memory
pagenum: 194; label: 3.3.1
title: Paging
pagenum: 195; label: 3.3.2
title: Page Tables
pagenum: 198; label: 3.3.3
title: Speeding Up Paging
pagenum: 201; label: 3.3.4
title: Page Tables for Large Memories
pagenum: 205; label: 3.4
title: Page Replacement Algorithms
pagenum: 209; label: 3.4.1
title: The Optimal Page Replacement Algorithm
pagenum: 209; label: 3.4.2
title: The Not Recently Used Page Replacement Algorithm
pagenum: 210; label: 3.4.3
title: The First-In, First-Out (FIFO) Page Replacement Algorithm
pagenum: 211; label: 3.4.4
title: The Second-Chance Page Replacement Algorithm
pagenum: 211; label: 3.4.5
title: The Clock Page Replacement Algorithm
pagenum: 212; label: 3.4.6
title: The Least Recently Used (LRU) Page Replacement Algorithm
pagenum: 213; label: 3.4.7
title: Simulating LRU in Software
pagenum: 214; label: 3.4.8
title: The Working Set Page Replacement Algorithm
pagenum: 215; label: 3.4.9
title: The WSClock Page Replacement Algorithm
pagenum: 219; label: 3.4.10
title: Summary of Page Replacement Algorithms
pagenum: 221; label: 3.5
title: Design Issues for Paging Systems
pagenum: 222; label: 3.5.1
title: Local Versus Global Allocation Policies
pagenum: 222; label: 3.5.2
title: Load Control
pagenum: 225; label: 3.5.3
title: Page Size
pagenum: 225; label: 3.5.4
title: Separate Instruction and Data Spaces
pagenum: 227; label: 3.5.5
title: Shared Pages
pagenum: 228; label: 3.5.6
title: Shared Libraries
pagenum: 229; label: 3.5.7
title: Mapped Files
pagenum: 231; label: 3.5.8
title: Cleaning Policy
pagenum: 232; label: 3.5.9
title: Virtual Memory Interface
pagenum: 232; label: 3.6
title: Implementation Issues
pagenum: 233; label: 3.6.1
title: Operating System Involvement with Paging
pagenum: 233; label: 3.6.2
title: Page Fault Handling
pagenum: 234; label: 3.6.3
title: Instruction Backup
pagenum: 235; label: 3.6.4
title: Locking Pages in Memory
pagenum: 236; label: 3.6.5
title: Backing Store
pagenum: 237; label: 3.6.6
title: Separation of Policy and Mechanism
pagenum: 239; label: 3.7
title: Segmentation
pagenum: 240; label: 3.7.1
title: Implementation of Pure Segmentation
pagenum: 243; label: 3.7.2
title: Segmentation with Paging: MULTICS
pagenum: 243; label: 3.7.3
title: Segmentation with Paging: The Intel x86
pagenum: 247; label: 3.8
title: Research on Memory Management
pagenum: 252; label: 3.9
title: Summary
pagenum: 253; label: Chapter 4
title: File Systems
pagenum: 263; label: 4.1
title: Files
pagenum: 265; label: 4.1.1
title: File Naming
pagenum: 265; label: 4.1.2
title: File Structure
pagenum: 267; label: 4.1.3
title: File Types
pagenum: 268; label: 4.1.4
title: File Access
pagenum: 269; label: 4.1.5
title: File Attributes
pagenum: 271; label: 4.1.6
title: File Operations
pagenum: 271; label: 4.1.7
title: An Example Program Using File-System Calls
pagenum: 273; label: 4.2
title: Directories
pagenum: 276; label: 4.2.1
title: Single-Level Directory Systems
pagenum: 276; label: 4.2.2
title: Hierarchical Directory Systems
pagenum: 276; label: 4.2.3
title: Path Names
pagenum: 277; label: 4.2.4
title: Directory Operations
pagenum: 280; label: 4.3
title: File-System Implementation
pagenum: 281; label: 4.3.1
title: File-System Layout
pagenum: 281; label: 4.3.2
title: Implementing Files
pagenum: 282; label: 4.3.3
title: Implementing Directories
pagenum: 287; label: 4.3.4
title: Shared Files
pagenum: 290; label: 4.3.5
title: Log-Structured File Systems
pagenum: 293; label: 4.3.6
title: Journaling File Systems
pagenum: 294; label: 4.3.7
title: Virtual File Systems
pagenum: 296; label: 4.4
title: File-System Management and Optimization
pagenum: 299; label: 4.4.1
title: Disk-Space Management
pagenum: 299; label: 4.4.2
title: File-System Backups
pagenum: 306; label: 4.4.3
title: File-System Consistency
pagenum: 312; label: 4.4.4
title: File-System Performance
pagenum: 314; label: 4.4.5
title: Defragmenting Disks
pagenum: 319; label: 4.5
title: Example File Systems
pagenum: 320; label: 4.5.1
title: The MS-DOS File System
pagenum: 320; label: 4.5.2
title: The UNIX V7 File System
pagenum: 323; label: 4.5.3
title: CD-ROM File Systems
pagenum: 325; label: 4.6
title: Research on File Systems
pagenum: 331; label: 4.7
title: Summary
pagenum: 332; label: Chapter 5
title: Input/Output
pagenum: 337; label: 5.1
title: Principles of I/O Hardware
pagenum: 337; label: 5.1.1
title: I/O Devices
pagenum: 338; label: 5.1.2
title: Device Controllers
pagenum: 339; label: 5.1.3
title: Memory-Mapped I/O
pagenum: 340; label: 5.1.4
title: Direct Memory Access
pagenum: 344; label: 5.1.5
title: Interrupts Revisited
pagenum: 347; label: 5.2
title: Principles of I/O Software
pagenum: 351; label: 5.2.1
title: Goals of the I/O Software
pagenum: 351; label: 5.2.2
title: Programmed I/O
pagenum: 352; label: 5.2.3
title: Interrupt-Driven I/O
pagenum: 354; label: 5.2.4
title: I/O Using DMA
pagenum: 355; label: 5.3
title: I/O Software Layers
pagenum: 356; label: 5.3.1
title: Interrupt Handlers
pagenum: 356; label: 5.3.2
title: Device Drivers
pagenum: 357; label: 5.3.3
title: Device-Independent I/O Software
pagenum: 361; label: 5.3.4
title: User-Space I/O Software
pagenum: 367; label: 5.4
title: Disks
pagenum: 369; label: 5.4.1
title: Disk Hardware
pagenum: 369; label: 5.4.2
title: Disk Formatting
pagenum: 375; label: 5.4.3
title: Disk Arm Scheduling Algorithms
pagenum: 379; label: 5.4.4
title: Error Handling
pagenum: 382; label: 5.4.5
title: Stable Storage
pagenum: 385; label: 5.5
title: Clocks
pagenum: 388; label: 5.5.1
title: Clock Hardware
pagenum: 388; label: 5.5.2
title: Clock Software
pagenum: 389; label: 5.5.3
title: Soft Timers
pagenum: 392; label: 5.6
title: User Interfaces: Keyboard, Mouse, Monitor
pagenum: 394; label: 5.6.1
title: Input Software
pagenum: 394; label: 5.6.2
title: Output Software
pagenum: 399; label: 5.7
title: Thin Clients
pagenum: 416; label: 5.8
title: Power Management
pagenum: 417; label: 5.8.1
title: Hardware Issues
pagenum: 418; label: 5.8.2
title: Operating System Issues
pagenum: 419; label: 5.8.3
title: Application Program Issues
pagenum: 425; label: 5.9
title: Research on Input/Output
pagenum: 426; label: 5.10
title: Summary
pagenum: 428; label: Chapter 6
title: Deadlocks
pagenum: 435; label: 6.1
title: Resources
pagenum: 436; label: 6.1.1
title: Preemptable and Nonpreemptable Resources
pagenum: 436; label: 6.1.2
title: Resource Acquisition
pagenum: 437; label: 6.2
title: Introduction to Deadlocks
pagenum: 438; label: 6.2.1
title: Conditions for Resource Deadlocks
pagenum: 439; label: 6.2.2
title: Deadlock Modeling
pagenum: 440; label: 6.3
title: The Ostrich Algorithm
pagenum: 443; label: 6.4
title: Deadlock Detection and Recovery
pagenum: 443; label: 6.4.1
title: Deadlock Detection with One Resource of Each Type
pagenum: 444; label: 6.4.2
title: Deadlock Detection with Multiple Resources of Each Type
pagenum: 446; label: 6.4.3
title: Recovery from Deadlock
pagenum: 448; label: 6.5
title: Deadlock Avoidance
pagenum: 450; label: 6.5.1
title: Resource Trajectories
pagenum: 450; label: 6.5.2
title: Safe and Unsafe States
pagenum: 452; label: 6.5.3
title: The Banker's Algorithm for a Single Resource
pagenum: 453; label: 6.5.4
title: The Banker's Algorithm for Multiple Resources
pagenum: 454; label: 6.6
title: Deadlock Prevention
pagenum: 456; label: 6.6.1
title: Attacking the Mutual-Exclusion Condition
pagenum: 456; label: 6.6.2
title: Attacking the Hold-and-Wait Condition
pagenum: 456; label: 6.6.3
title: Attacking the No-Preemption Condition
pagenum: 457; label: 6.6.4
title: Attacking the Circular Wait Condition
pagenum: 457; label: 6.7
title: Other Issues
pagenum: 458; label: 6.7.1
title: Two-Phase Locking
pagenum: 458; label: 6.7.2
title: Communication Deadlocks
pagenum: 459; label: 6.7.3
title: Livelock
pagenum: 461; label: 6.7.4
title: Starvation
pagenum: 463; label: 6.8
title: Research on Deadlocks
pagenum: 464; label: 6.9
title: Summary
pagenum: 464; label: Chapter 7
title: Virtualization and the Cloud
pagenum: 471; label: 7.1
title: History
pagenum: 473; label: 7.2
title: Requirements for Virtualization
pagenum: 474; label: 7.3
title: Type 1 and Type 2 Hypervisors
pagenum: 477; label: 7.4
title: Techniques for Efficient Virtualization
pagenum: 478; label: 7.4.1
title: Virtualizing the Unvirtualizable
pagenum: 479; label: 7.4.2
title: The Cost of Virtualization
pagenum: 482; label: 7.5
title: Are Hypervisors Microkernels Done Right?
pagenum: 483; label: 7.6
title: Memory Virtualization
pagenum: 486; label: 7.7
title: I/O Virtualization
pagenum: 490; label: 7.8
title: Virtual Appliances
pagenum: 493; label: 7.9
title: Virtual Machines on Multicore CPUs
pagenum: 494; label: 7.10
title: Licensing Issues
pagenum: 494; label: 7.11
title: Clouds
pagenum: 495; label: 7.11.1
title: Clouds as a Service
pagenum: 496; label: 7.11.2
title: Virtual Machine Migration
pagenum: 496; label: 7.11.3
title: Checkpointing
pagenum: 497; label: 7.12
title: Case Study: VMware
pagenum: 498; label: 7.12.1
title: The Early History of VMware
pagenum: 498; label: 7.12.2
title: VMware Workstation
pagenum: 499; label: 7.12.3
title: Challenges in Bringing Virtualization to the x86
pagenum: 500; label: 7.12.4
title: VMware Workstation: Solution Overview
pagenum: 502; label: 7.12.5
title: The Evolution of VMware Workstation
pagenum: 511; label: 7.12.6
title: ESX Server: VMware's Type 1 Hypervisor
pagenum: 512; label: 7.13
title: Research on Virtualization and the Cloud
pagenum: 514; label: Chapter 8
title: Multiple Processor Systems
pagenum: 517; label: 8.1
title: Multiprocessors
pagenum: 520; label: 8.1.1
title: Multiprocessor Hardware
pagenum: 520; label: 8.1.2
title: Multiprocessor Operating System Types
pagenum: 530; label: 8.1.3
title: Multiprocessor Synchronization
pagenum: 534; label: 8.1.4
title: Multiprocessor Scheduling
pagenum: 539; label: 8.2
title: Multicomputers
pagenum: 544; label: 8.2.1
title: Multicomputer Hardware
pagenum: 545; label: 8.2.2
title: Low-Level Communication Software
pagenum: 550; label: 8.2.3
title: User-Level Communication Software
pagenum: 552; label: 8.2.4
title: Remote Procedure Call
pagenum: 556; label: 8.2.5
title: Distributed Shared Memory
pagenum: 558; label: 8.2.6
title: Multicomputer Scheduling
pagenum: 563; label: 8.2.7
title: Load Balancing
pagenum: 563; label: 8.3
title: Distributed Systems
pagenum: 566; label: 8.3.1
title: Network Hardware
pagenum: 568; label: 8.3.2
title: Network Services and Protocols
pagenum: 571; label: 8.3.3
title: Document-Based Middleware
pagenum: 576; label: 8.3.4
title: File-System-Based Middleware
pagenum: 577; label: 8.3.5
title: Object-Based Middleware
pagenum: 582; label: 8.3.6
title: Coordination-Based Middleware
pagenum: 584; label: 8.4
title: Research on Multiple-Processor Systems
pagenum: 587; label: 8.5
title: Summary
pagenum: 588; label: Chapter 9
title: Security
pagenum: 593; label: 9.1
title: The Security Environment
pagenum: 595; label: 9.1.1
title: Threats
pagenum: 596; label: 9.1.2
title: Attackers
pagenum: 598; label: 9.2
title: Operating Systems Security
pagenum: 599; label: 9.2.1
title: Can We Build Secure Systems?
pagenum: 600; label: 9.2.2
title: Trusted Computing Base
pagenum: 601; label: 9.3
title: Controlling Access to Resources
pagenum: 602; label: 9.3.1
title: Protection Domains
pagenum: 602; label: 9.3.2
title: Access Control Lists
pagenum: 605; label: 9.3.3
title: Capabilities
pagenum: 608; label: 9.4
title: Formal Models of Secure Systems
pagenum: 611; label: 9.4.1
title: Multilevel Security
pagenum: 612; label: 9.4.2
title: Covert Channels
pagenum: 615; label: 9.5
title: Basics of Cryptography
pagenum: 619; label: 9.5.1
title: Secret-Key Cryptography
pagenum: 620; label: 9.5.2
title: Public-Key Cryptography
pagenum: 621; label: 9.5.3
title: One-Way Functions
pagenum: 622; label: 9.5.4
title: Digital Signatures
pagenum: 622; label: 9.5.5
title: Trusted Platform Modules
pagenum: 624; label: 9.6
title: Authentication
pagenum: 626; label: 9.6.1
title: Authentication Using a Physical Object
pagenum: 633; label: 9.6.2
title: Authentication Using Biometrics
pagenum: 636; label: 9.7
title: Exploiting Software
pagenum: 639; label: 9.7.1
title: Buffer Overflow Attacks
pagenum: 640; label: 9.7.2
title: Format String Attacks
pagenum: 649; label: 9.7.3
title: Dangling Pointers
pagenum: 652; label: 9.7.4
title: Null Pointer Dereference Attacks
pagenum: 653; label: 9.7.5
title: Integer Overflow Attacks
pagenum: 654; label: 9.7.6
title: Command Injection Attacks
pagenum: 655; label: 9.7.7
title: Time of Check to Time of Use Attacks
pagenum: 656; label: 9.8
title: Insider Attacks
pagenum: 657; label: 9.8.1
title: Logic Bombs
pagenum: 657; label: 9.8.2
title: Back Doors
pagenum: 658; label: 9.8.3
title: Login Spoofing
pagenum: 659; label: 9.9
title: Malware
pagenum: 660; label: 9.9.1
title: Trojan Horses
pagenum: 662; label: 9.9.2
title: Viruses
pagenum: 664; label: 9.9.3
title: Worms
pagenum: 674; label: 9.9.4
title: Spyware
pagenum: 676; label: 9.9.5
title: Rootkits
pagenum: 680; label: 9.10
title: Defenses
pagenum: 684; label: 9.10.1
title: Firewalls
pagenum: 685; label: 9.10.2
title: Antivirus and Anti-Antivirus Techniques
pagenum: 687; label: 9.10.3
title: Code Signing
pagenum: 693; label: 9.10.4
title: Jailing
pagenum: 694; label: 9.10.5
title: Model-Based Intrusion Detection
pagenum: 695; label: 9.10.6
title: Encapsulating Mobile Code
pagenum: 697; label: 9.10.7
title: Java Security
pagenum: 701; label: 9.11
title: Research on Security
pagenum: 703; label: 9.12
title: Summary
pagenum: 704; label: Chapter 10
title: Case Study 1: UNIX, Linux, and Android
pagenum: 713; label: 10.1
title: History of UNIX and Linux
pagenum: 714; label: 10.1.1
title: UNICS
pagenum: 714; label: 10.1.2
title: PDP-11 UNIX
pagenum: 715; label: 10.1.3
title: Portable UNIX
pagenum: 716; label: 10.1.4
title: Berkeley UNIX
pagenum: 717; label: 10.1.5
title: Standard UNIX
pagenum: 718; label: 10.1.6
title: MINIX
pagenum: 719; label: 10.1.7
title: Linux
pagenum: 720; label: 10.2
title: Overview of Linux
pagenum: 723; label: 10.2.1
title: Linux Goals
pagenum: 723; label: 10.2.2
title: Interfaces to Linux
pagenum: 724; label: 10.2.3
title: The Shell
pagenum: 725; label: 10.2.4
title: Linux Utility Programs
pagenum: 728; label: 10.2.5
title: Kernel Structure
pagenum: 730; label: 10.3
title: Processes in Linux
pagenum: 733; label: 10.3.1
title: Fundamental Concepts
pagenum: 733; label: 10.3.2
title: Process-Management System Calls in Linux
pagenum: 735; label: 10.3.3
title: Implementation of Processes and Threads in Linux
pagenum: 739; label: 10.3.4
title: Scheduling in Linux
pagenum: 746; label: 10.3.5
title: Booting Linux
pagenum: 751; label: 10.4
title: Memory Management in Linux
pagenum: 753; label: 10.4.1
title: Fundamental Concepts
pagenum: 753; label: 10.4.2
title: Memory-Management System Calls in Linux
pagenum: 756; label: 10.4.3
title: Implementation of Memory Management in Linux
pagenum: 758; label: 10.4.4
title: Paging in Linux
pagenum: 764; label: 10.5
title: Input/Output in Linux
pagenum: 767; label: 10.5.1
title: Fundamental Concepts
pagenum: 767; label: 10.5.2
title: Networking
pagenum: 769; label: 10.5.3
title: Input/Output System Calls in Linux
pagenum: 770; label: 10.5.4
title: Implementation of Input/Output in Linux
pagenum: 771; label: 10.5.5
title: Modules in Linux
pagenum: 774; label: 10.6
title: The Linux File System
pagenum: 775; label: 10.6.1
title: Fundamental Concepts
pagenum: 775; label: 10.6.2
title: File-System Calls in Linux
pagenum: 780; label: 10.6.3
title: Implementation of the Linux File System
pagenum: 783; label: 10.6.4
title: NFS: The Network File System
pagenum: 792; label: 10.7
title: Security in Linux
pagenum: 798; label: 10.7.1
title: Fundamental Concepts
pagenum: 798; label: 10.7.2
title: Security System Calls in Linux
pagenum: 800; label: 10.7.3
title: Implementation of Security in Linux
pagenum: 801; label: 10.8
title: Android
pagenum: 802; label: 10.8.1
title: Android and Google
pagenum: 803; label: 10.8.2
title: History of Android
pagenum: 803; label: 10.8.3
title: Design Goals
pagenum: 807; label: 10.8.4
title: Android Architecture
pagenum: 809; label: 10.8.5
title: Linux Extensions
pagenum: 810; label: 10.8.6
title: Dalvik
pagenum: 814; label: 10.8.7
title: Binder IPC
pagenum: 815; label: 10.8.8
title: Android Applications
pagenum: 824; label: 10.8.9
title: Intents
pagenum: 836; label: 10.8.10
title: Application Sandboxes
pagenum: 837; label: 10.8.11
title: Security
pagenum: 838; label: 10.8.12
title: Process Model
pagenum: 844; label: 10.9
title: Summary
pagenum: 848; label: Chapter 11
title: Case Study 2: Windows 8
pagenum: 857; label: 11.1
title: History of Windows through Windows 8.1
pagenum: 857; label: 11.1.1
title: 1980s: MS-DOS
pagenum: 857; label: 11.1.2
title: 1990s: MS-DOS–Based Windows
pagenum: 859; label: 11.1.3
title: 2000s: NT-Based Windows
pagenum: 859; label: 11.1.4
title: Windows Vista
pagenum: 862; label: 11.1.5
title: 2010s: Modern Windows
pagenum: 863; label: 11.2
title: Programming Windows
pagenum: 864; label: 11.2.1
title: The Native NT Application Programming Interface
pagenum: 867; label: 11.2.2
title: The Win32 Application Programming Interface
pagenum: 871; label: 11.2.3
title: The Windows Registry
pagenum: 875; label: 11.3
title: System Structure
pagenum: 877; label: 11.3.1
title: Operating System Structure
pagenum: 877; label: 11.3.2
title: Booting Windows
pagenum: 893; label: 11.3.3
title: Implementation of the Object Manager
pagenum: 894; label: 11.3.4
title: Subsystems, DLLs, and User-Mode Services
pagenum: 905; label: 11.4
title: Processes and Threads in Windows
pagenum: 908; label: 11.4.1
title: Fundamental Concepts
pagenum: 908; label: 11.4.2
title: Job, Process, Thread, and Fiber Management API Calls
pagenum: 914; label: 11.4.3
title: Implementation of Processes and Threads
pagenum: 919; label: 11.5
title: Memory Management
pagenum: 927; label: 11.5.1
title: Fundamental Concepts
pagenum: 927; label: 11.5.2
title: Memory-Management System Calls
pagenum: 931; label: 11.5.3
title: Implementation of Memory Management
pagenum: 932; label: 11.6
title: Caching in Windows
pagenum: 942; label: 11.7
title: Input/Output in Windows
pagenum: 943; label: 11.7.1
title: Fundamental Concepts
pagenum: 944; label: 11.7.2
title: Input/Output API Calls
pagenum: 945; label: 11.7.3
title: Implementation of I/O
pagenum: 948; label: 11.8
title: The Windows NT File System
pagenum: 952; label: 11.8.1
title: Fundamental Concepts
pagenum: 953; label: 11.8.2
title: Implementation of the NT File System
pagenum: 954; label: 11.9
title: Windows Power Management
pagenum: 964; label: 11.10
title: Security in Windows 8
pagenum: 966; label: 11.10.1
title: Fundamental Concepts
pagenum: 967; label: 11.10.2
title: Security API Calls
pagenum: 969; label: 11.10.3
title: Implementation of Security
pagenum: 970; label: 11.10.4
title: Security Mitigations
pagenum: 972; label: 11.11
title: Summary
pagenum: 975; label: Chapter 12
title: Operating System Design
pagenum: 981; label: 12.1
title: The Nature of the Design Problem
pagenum: 982; label: 12.1.1
title: Goals
pagenum: 982; label: 12.1.2
title: Why Is It Hard to Design an Operating System?
pagenum: 983; label: 12.2
title: Interface Design
pagenum: 985; label: 12.2.1
title: Guiding Principles
pagenum: 985; label: 12.2.2
title: Paradigms
pagenum: 987; label: 12.2.3
title: The System-Call Interface
pagenum: 991; label: 12.3
title: Implementation
pagenum: 993; label: 12.3.1
title: System Structure
pagenum: 993; label: 12.3.2
title: Mechanism vs. Policy
pagenum: 997; label: 12.3.3
title: Orthogonality
pagenum: 998; label: 12.3.4
title: Naming
pagenum: 999; label: 12.3.5
title: Binding Time
pagenum: 1001; label: 12.3.6
title: Static vs. Dynamic Structures
pagenum: 1001; label: 12.3.7
title: Top-Down vs. Bottom-Up Implementation
pagenum: 1003; label: 12.3.8
title: Synchronous vs. Asynchronous Communication
pagenum: 1004; label: 12.3.9
title: Useful Techniques
pagenum: 1005; label: 12.4
title: Performance
pagenum: 1010; label: 12.4.1
title: Why Are Operating Systems Slow?
pagenum: 1010; label: 12.4.2
title: What Should Be Optimized?
pagenum: 1011; label: 12.4.3
title: Space-Time Trade-Offs
pagenum: 1012; label: 12.4.4
title: Caching
pagenum: 1015; label: 12.4.5
title: Hints
pagenum: 1016; label: 12.4.6
title: Exploiting Locality
pagenum: 1016; label: 12.4.7
title: Optimize the Common Case
pagenum: 1017; label: 12.5
title: Project Management
pagenum: 1018; label: 12.5.1
title: The Mythical Man Month
pagenum: 1018; label: 12.5.2
title: Team Structure
pagenum: 1019; label: 12.5.3
title: The Role of Experience
pagenum: 1021; label: 12.5.4
title: No Silver Bullet
pagenum: 1021; label: 12.6
title: Trends in Operating System Design
pagenum: 1022; label: 12.6.1
title: Virtualization and the Cloud
pagenum: 1023; label: 12.6.2
title: Manycore Chips
pagenum: 1023; label: 12.6.3
title: Large-Address-Space Operating Systems
pagenum: 1024; label: 12.6.4
title: Seamless Data Access
pagenum: 1025; label: 12.6.5
title: Battery-Powered Computers
pagenum: 1025; label: 12.6.6
title: Embedded Systems
pagenum: 1026; label: 12.7
title: Summary
pagenum: 1027; label: Chapter 13
title: Reading List and Bibliography
pagenum: 1031; label: 13.1
title: Suggestions for Further Reading
pagenum: 1031; label: 13.1.1
title: Introduction
pagenum: 1031; label: 13.1.2
title: Processes and Threads
pagenum: 1032; label: 13.1.3
title: Memory Management
pagenum: 1033; label: 13.1.4
title: File Systems
pagenum: 1033; label: 13.1.5
title: Input/Output
pagenum: 1034; label: 13.1.6
title: Deadlocks
pagenum: 1035; label: 13.1.7
title: Virtualization and the Cloud
pagenum: 1035; label: 13.1.8
title: Multiple-Processor Systems
pagenum: 1036; label: 13.1.9
title: Security
pagenum: 1037; label: 13.1.10
title: Case Study 1: UNIX, Linux, and Android
pagenum: 1039; label: 13.1.11
title: Case Study 2: Windows 8
pagenum: 1040; label: 13.1.12
title: Operating System Design
pagenum: 1040; label: 13.2
title: Alphabetical Bibliography
pagenum: 1041; title: Index
pagenum: 1071