Note: Supplemental materials are not guaranteed with Rental or Used book purchases.
Purchase Benefits
What is included with this book?
Gary J. Nutt is a Professor of Computer Science at the University of Colorado. He has also worked as researcher at Xerox PARC and Bell Labs, and as a corporate Vice President and manager of the Boulder office of Interactive Systems. His research interests are in operating systems, distributed systems, performance, and collaboration technology. He teaches in these areas as well as object-oriented software and networks.
Introduction | |
Computers and Software | |
General Systems Software | |
Resource Abstraction | |
Resource Sharing | |
Computers without System Software | |
Operating System Strategies | |
Batch Systems | |
Timesharing Systems | |
Personal Computers and Workstations | |
Process Control and Real-time Systems | |
Networks | |
The Genesis of Modern Operating Systems | |
Summary | |
Exercises | |
Using the Operating System | |
The Computational Model | |
File Resources | |
Other Resources | |
Processes | |
Initializing the Computational Environment | |
Executing Computations | |
Summary | |
Exercises | |
Programming Practice | |
Operating Systems Organization | |
Factors in Operating System Design | |
Performance | |
Protection and Security | |
Correctness | |
Maintainability | |
Commercial Influence on Operating Systems | |
Standards and Open Systems | |
Basic Functions | |
Device Management | |
Process and Resource Management | |
Memory Management | |
File Management | |
Functional Organization | |
Basic Implementation Considerations | |
Supervisor and User Modes | |
Kernels | |
System Call Versus Message Passing | |
Summary | |
Exercises | |
Computer Organization | |
The von Neumann Architecture | |
The Central Processing Unit | |
The Arithmetical-Logical Unit | |
The Control Unit | |
Memory | |
Devices | |
General Device Characteristics | |
Device Controllers | |
Device Drivers | |
Interrupts | |
The Mode Bit Revisited: The Trap Instruction | |
Summary | |
Exercises | |
Programming Practice | |
Device Management | |
Device Management Approaches | |
I/O System Organization | |
Direct I/O with Polling | |
Interrupt-Driven I/O | |
Memory Mapped I/O | |
Direct Memory Access | |
Buffering | |
Device Drivers | |
The Device Driver Interface | |
CPU-Device Interactions | |
I/O Optimization | |
Some Device Management Scenarios | |
Serial Communications | |
Sequentially Accessed Storage Devices | |
Randomly Accessed Devices | |
Summary | |
Exercises | |
Programming Practice | |
Process Management | |
The Operating System View of a Process | |
Process Descriptors | |
Execution Monitoring and Control | |
Managing Resources | |
The Address Space | |
Generating the Address Space | |
Executing the Program | |
Maintaining Consistency in the Address Space | |
Managing Resources | |
Process State Diagram | |
The Resource Manager | |
Creating Processes | |
Threads Revisited | |
Process Structuring | |
Refining the Process Manager | |
Specializing Resource Allocation Strategies | |
Summary | |
Exercises | |
Exploring Linux | |
Programming Practice | |
Scheduling | |
Scheduling Mechanisms | |
The Process Scheduler Organization | |
Voluntary CPU Sharing | |
Involuntary CPU Sharing | |
Strategy Selection | |
Nonpreemptive Strategies | |
First-Come-First-Served (FCFS) | |
Shortest Job Next (SJN) | |
Priority Scheduling | |
Deadline Scheduling | |
Preemptive Strategies | |
Round Robin (RR) | |
Multiple-Level Queues | |
Summary | |
Exercises | |
Exploring Linux | |
Programming Practice | |
Basic Synchronization Principles | |
Interacting Processes | |
Critical Sections | |
Deadlock | |
Coordinating Processes | |
Semaphores | |
Principles of Operation | |
Practical Considerations | |
Shared Memory Multiprocessors | |
Summary | |
Exercises | |
Programming Practice | |
High-Level Synchronization | |
Alternative Synchronization Primitives | |
AND Synchronization | |
Events | |
Monitors | |
Principles of Operation | |
Condition Variables | |
Interprocess Communication | |
Mailboxes | |
Message Protocols | |
Send and Receive Operations | |
Explicitly Ordering Event Execution | |
Summary | |
Exercises | |
Programming Practice | |
Deadlock | |
Background | |
Prevention | |
Avoidance | |
Detection and Recovery | |
Manual Deadlock Management | |
A System Deadlock Model | |
Prevention | |
Hold and Wait | |
Circular Wait | |
Allowing Preemption | |
Avoidance | |
The Banker's Algorithm | |
Detection and Recovery | |
Serially Reusable Resources | |
Consumable Resources | |
General Resource Systems | |
Recovery | |
Summary | |
Exercises | |
Memory Management | |
The Basics | |
Requirements on the Primary Memory | |
Mapping the Address Space to the Primary Memory | |
Dynamic Memory for Data Structures | |
Memory Allocation | |
Fixed Partition Memory Strategies | |
Variable Partition Memory Strategies | |
Contemporary Allocation Strategies | |
Dynamic Address Relocation | |
Run Time Bound Checking | |
Memory Manager Strategies | |
Swapping | |
Virtual Memory | |
Shared Memory Multiprocessors | |
Summary | |
Exercises | |
Programming Practice | |
Virtual Memory | |
Address Translation | |
Address Space Mapping | |
Segmentation and Paging | |
Paging | |
Virtual Address Translation | |
Static Paging Algorithms | |
Demand Paging Algorithms | |
Stack Algorithms | |
Implementation | |
Dynamic Paging Algorithms | |
The Working Set Algorithm | |
Implementation | |
Segmentation | |
Address Translation | |
Implementation | |
Summary | |
Exercises | |
File Management | |
Files | |
Low-Level Files | |
Structured Files | |
Database Management Systems | |
Multimedia Storage | |
Low-Level File Implementations | |
Open and Close | |
Block Management | |
Reading and Writing the Byte Stream | |
Supporting Other Storage Abstractions | |
Structured Sequential Files | |
Indexed Sequential Files | |
Database Management Systems | |
Multimedia Documents | |
Directories | |
Directory Structures | |
Directory Implementation | |
Opening a File in a Hierarchical Directory | |
Mounting Removable File Systems | |
Summary | |
Exercises | |
Protection and Security | |
Fundamentals | |
Policy and Mechanism | |
Implementing Policy and Mechanism | |
Authentication | |
Authorization | |
Encryption | |
Authentication | |
User Authentication | |
Authentication in Networks | |
Internal Access Authorization | |
The Basic Model | |
Changing the Protection State | |
Implementing Internal Authorization | |
Protection Domains | |
Implementing the Access Matrix | |
Access Control Lists | |
Capabilities | |
Cryptography | |
Summary | |
Exercises | |
Networks | |
From Computer Communications to Networks | |
Communication Subnetworks | |
Network Communication Protocols | |
The ISO OSI Network Architecture Model | |
The Evolution of Network Protocols | |
The Model | |
Low Level Protocols | |
The Physical Layer | |
The Data Link Layer | |
Contemporary Networks | |
The Network Layer | |
Addressing | |
Routing | |
Using the Network Layer | |
The Transport Layer | |
Communication Ports | |
Data Types | |
Reliable Communication | |
Using the Transport Layer | |
Naming | |
The Client-Server Model | |
Summary | |
Exercises | |
Remote Files | |
Sharing Information Across the Network | |
Explicit File Copying Systems | |
Implicit File Sharing | |
The Remote Storage Interface | |
Distributing the Work | |
Remote Disk Systems | |
The Remote Disk Operation | |
Reliability | |
The Future for Remote Disks | |
Remote File Systems | |
The General Architecture | |
Block Caching | |
Crash Recovery | |
File Level Caching | |
Directories and Their Implementations | |
File Names | |
Opening a File | |
Summary | |
Exercises | |
Distributed Systems | |
Distributing Process Management | |
Partitioning the Work | |
Supporting Partitioned Computation | |
General Process Management | |
Scheduling | |
Coordinating Processes | |
Message Passing | |
Message Passing Interfaces | |
Computing Paradigms | |
Remote Procedure Call | |
How Does it Work? | |
Implementing RPC | |
Distributed Memory Management | |
Remote Memory | |
Distributed Virtual Memory | |
Distributed Objects | |
Summary | |
Exercises | |
Strategies and Examples | |
General Organizational Issues | |
Software Organization | |
Managing Distributed Hardware | |
The Traditional UNIX Kernel | |
The Kernel | |
The Monolithic Organization | |
Conclusion | |
The LOCUS Operating System | |
The File System | |
Conclusion | |
Choices: An Object-Oriented Operating System | |
Frameworks | |
Using a Framework for the Memory Manager | |
Conclusion | |
The RC 4000 Nucleus | |
The Nucleus | |
Interprocess Communication | |
Conclusion | |
Microsoft Windows NT | |
The Microkernel | |
The Executive | |
Subsystems | |
Conclusion | |
The Mach Operating System | |
Process Management | |
Message Passing | |
Memory Management | |
Conclusion | |
The CHORUS Operating System | |
Process Management | |
Interprocess Communication | |
Memory Management | |
Conclusion | |
Summary | |
Exercises | |
Exploring Linux | |
Glossary | |
Bibliography | |
Index | |
Table of Contents provided by Publisher. All Rights Reserved. |
The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.
The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.