search for books and compare prices
Tables of Contents for Operating Systems
Chapter/Section Title
Page #
Page Count
Preface
v
 
To the Student
v
 
To the Instructor
x
 
Introduction
1
28
Computers and Software
2
6
General System Softward
2
2
Resource Abstraction
4
1
A Disk Device Abstraction
5
1
Resource Sharing
6
1
Computers Without System Software
7
1
Operating System Strategies
8
17
Multiprogramming Systems
10
1
Batch Systems
10
3
Batch Files
13
1
Timesharing Systems
14
2
Personal Computers and Workstations
16
2
Process Control and Real-time Systems
18
1
Networks
19
1
The Genesis of Modern Operating Systems
20
1
The Evolution of Linux
21
2
The Microsoft Windows Family of Operating Systems
23
2
Summary
25
1
Exercises
26
3
Using the Operating System
29
42
The Abstract Model of Computing
30
1
Resources
30
7
Files
30
1
POSIX Files
31
2
Windows Files
33
3
Other Resources
36
1
Processes
37
9
Creating Processes
39
1
Using FORK, JOIN, and QUIT
40
1
Creating Processes in UNIX
41
3
Creating Processes in Windows
44
2
Threads
46
3
C Threads
48
1
Objects
49
1
Summary
50
1
Exercises
50
21
A Shell Program
53
1
Background
53
5
Attacking the Problem
58
3
A Multithreaded Windows Console Application
61
1
Background
61
4
Attacking the Problem
65
6
Operating System Organization
71
14
Factors in OS Design
72
4
Performance
72
1
Protection and Security
73
1
Correctness
74
1
Maintainability
74
1
Commercial Influence on Operating Systems
74
1
Standards and Open Systems
75
1
Basic Functions
76
4
Device Management
77
1
Process and Resource Management
77
1
Memory Management
78
1
File Management
78
1
Functional Organization
79
1
Basic Implementation Considerations
80
3
Processor Modes
80
1
Kernels
81
1
Requesting Services from the Operating Systems
82
1
Summary
83
1
Exercises
84
1
Computer Organization
85
34
The von Neumann Architecture
86
2
The Central Processing Unit
88
3
The Arithmetical-Logical Unit
88
1
The Control Unit
89
2
Memory
91
4
Speeding up the Machine
92
2
Parallel Processors
94
1
Devices
95
5
General Device Characteristics
96
1
Device Controllers
97
1
Asynchronous Serial Devices
98
1
Device Drivers
99
1
Interrupts
100
3
The Mode Bit Revisited: The Trap Instruction
103
1
Summary
104
1
Exercises
105
14
Kernel Timers
109
1
Background
109
4
Attacking the Problem
113
6
Device Management
119
42
Device Management Approaches
120
10
I/O System Organization
120
1
Direct I/O with Polling
121
2
Interrupt-driven I/O
123
3
Interrupts Versus Polling
126
1
Memory-mapped I/O
127
1
Direct Memory Access
128
1
I/O-Processor Overlap
129
1
Buffering
130
4
Device Drivers
134
4
The Device Driver Interface
134
3
CPU-device Interactions
137
1
I/O Optimization
138
1
Some Device Management Scenarios
138
11
Serial Communications
138
1
UNIX Device Drivers
139
2
Sequentially Accessed Storage Devices
141
1
Randomly Accessed Devices
142
2
Optimizing Access on Rotating Devices
144
5
Summary
149
1
Exercises
150
11
A Floppy Disk Driver
153
1
Background
154
4
Attacking the Problem
158
3
Process Management
161
28
The System View of Processes and Resources
162
3
Implementing the Process Model
163
1
Implementing the Resource Model
164
1
Initializing the Operating System
165
1
Process Address Spaces
166
4
Creating the Address Space
167
1
Loading the Program
168
1
Maintaining Consistency in the Address Space
168
2
The Process Abstraction
170
3
Process Descriptors
170
2
Process State Diagram
172
1
The Resource Abstraction
173
1
Process Hierarchy
174
4
Refining the Process Manager
176
1
Specializing Resource Allocation Strategies
177
1
Summary
178
1
Exercises
179
10
Observing OS Behavior
181
1
Background
182
5
Attacking the Problem
187
2
Scheduling
189
28
Scheduling Mechanisms
190
6
The Process Scheduler Organization
190
2
Saving the Process Context
192
1
Voluntary CPU Sharing
192
2
Involuntary CPU Sharing
194
1
Performance
195
1
Strategy Selection
196
4
Partitioning a Process into Small Processes
199
1
Nonpreemptive Strategies
200
7
First-Come-First-Served
200
1
Approximating System Load
201
1
Shortest Job Next
202
1
Predicting Wait Times for FCFS
203
1
Priority Scheduling
204
2
Deadline Scheduling
206
1
Preemptive Strategies
207
5
Round Robin
207
3
Multiple-level Queues
210
2
Summary
212
1
Exercises
213
4
Basic Synchronization Principles
217
40
Interacting Processes
218
8
Solving a System of Linear Equations
219
1
Critical Sections
220
4
Deadlock
224
2
Coordinating Processes
226
2
Semaphores
228
13
Principles of Operation
229
2
Examples Using Semaphore
231
6
Practical Considerations
237
4
Shared Memory Multiprocessors
241
1
Summary
242
1
Exercises
242
15
Bounded Buffer Problem
249
1
Background
249
6
Attacking the Problem
255
2
High-Level Synchronization
257
34
Alternative Synchronization Primitives
258
6
AND Synchronization
258
1
Events
259
1
Using Events
260
1
UNIX Signals
261
2
Windows 2000 Dispatcher Objects
263
1
Monitors
264
9
Principles of Operation
264
2
Condition Variables
266
3
Examples Using Monitors
269
4
Some Practical Aspects of Using Monitors
273
1
Interprocess Communication
273
6
Mailboxes
274
2
Message Protocols
276
1
Using the send and receive Operations
276
2
Synchronized IPC
278
1
Deferred Message Copying
278
1
Explicitly Ordering Event Execution
279
2
Summary
281
1
Exercises
281
10
Refining the Shell
285
1
Background
285
5
Attacking the Problem
290
1
Deadlock
291
34
Background
292
4
Prevention
294
1
Avoidance
295
1
Detection and Recovery
295
1
Manual Deadlock Management
295
1
A System Deadlock Model
296
3
Single Resource Type
297
2
Prevention
299
5
Hold and Wait
299
2
Circular Wait
301
2
Allowing Preemption
303
1
Avoidance
304
5
The Banker's Algorithm
306
1
Using the Banker's Algorithm
307
2
Detection and Recovery
309
12
Serially Reusable Resources
310
6
Consumable Resources
316
4
General Resource Systems
320
1
Recovery
321
1
Summary
321
1
Exercises
322
3
Memory Management
325
36
The Basics
326
9
Requirements on Primary Memory
326
1
Mapping the Address Space to Primary Memory
327
1
Using Memory Hierarchies to Reduce Access Time
328
2
The Address Binding Procedure
330
3
Dynamic Memory for Data Structures
333
2
Memory Allocation
335
7
Fixed-partition Memory Strategies
336
1
Variable-partition Memory Strategies
337
3
Contemporary Allocation Strategies
340
1
The Cost of Moving Programs
341
1
Dynamic Address Relocation
342
6
Runtime Bound Checking
346
1
Expanding Small Address Spaces
347
1
Memory Manager Strategies
348
9
Swapping
348
4
Virtual Memory
352
1
Shared-memory Multiprocessors
352
1
Using Cache Memory
353
4
Summary
357
1
Exercises
357
4
Virtual Memory
361
44
Address Translation
362
3
Address Space Mapping
362
2
Segmentation and Paging
364
1
Paging
365
6
Virtual Address Translation
367
3
Page Table Implementations
370
1
Static Paging Algorithms
371
10
The Fetch Policy
372
1
Demand Paging Algorithms
372
4
Stack Algorithms
376
2
Implementing LRU
378
1
Paging Performance
379
2
Dynamic Paging Algorithms
381
12
The Working Set Algorithms
381
2
Working Set Algorithm Example
383
2
Implementing the Working Set Algorithm
385
2
Taking Advantage of Pages with IPC
387
1
Windows 2000 Virtual Memory
388
4
Linux Virtual Memory
392
1
Segmentation
393
8
Address Translation
394
2
Implementation
396
3
The Multics Segmentation System
399
2
Summary
401
1
Exercises
402
3
File Management
405
48
Files
406
13
Low-level Files
408
4
Structured Files
412
6
Database Management Systems
418
1
Multimedia Storage
418
1
Low-Level File Implementations
419
12
Open and Close Operations
420
1
UNIX open and close
420
2
Block Management
422
3
UNIX File Structure
425
5
Reading and Writing the Byte Stream
430
1
Supporting Other Storage Abstractions
431
2
Structured Sequential Files
431
1
Indexed Sequential Files
431
1
Database Management Systems
432
1
Multimedia Documents
432
1
Memory-mapped Files
433
2
Memory-mapped Files in Windows 2000
434
1
Directories
435
4
Directory Structures
436
1
Some Directory Examples
437
2
Directory Implementation
439
3
Device Directories
439
1
File Directories
439
1
Opening a File in a Hierarchical Directory
440
1
Mounting Removable File Systems
441
1
Summary
442
1
Exercises
442
11
A Simple File Manager
445
1
Background
446
3
Attacking the Problem
449
4
Protection and Security
453
28
Fundamentals
454
4
Policy and Mechanism
454
2
Implementing Policy and Mechanism
456
1
Authentication Mechanisms
456
1
Authorization Mechanisms
457
1
Encryption
458
1
Authentication
458
5
User Authentication
459
1
Authentication in Networks
459
2
Kerberos Network Authentication
461
2
Internal Access Authorization
463
6
A Model for Resource Protection
464
2
Changing the Protection State
466
2
The Cost of Protection Mechanisms
468
1
Implementing Internal Authorization
469
7
Protection Domains
469
2
Implementing the Access Matrix
471
5
Cryptography
476
1
Summary
477
1
Exercises
478
3
Networks
481
44
From Computer Communications to Networks
482
3
Communication Subnetworks
483
1
Network Communication Protocols
484
1
The ISO OSI Network Architecture Model
485
5
The Evolution of Network Protocols
485
2
The ISO OSI Model
487
3
Low-level Protocols
490
6
The Physical Layer
491
1
Fast Physical Layers
492
1
The Data Link Layer
493
1
Contemporary Networks
494
2
The Network Layer
496
6
Addressing
498
1
Routing
499
2
Using the Network Layer
501
1
The Transport Layer
502
4
Communication Ports
502
1
Data Types
503
1
Reliable Communication
504
1
Datagrams and Virtual Circuits
505
1
Using the Transport Layer
506
5
Naming
506
2
The Domain Name System
508
1
The Client-server Model
509
2
Summary
511
1
Exercises
512
13
Using TCP/IP
515
1
Background
515
8
Attacking the Problem
523
2
Remote Files
525
34
Sharing Information Across the Network
526
7
Explicit File Copying Systems
527
1
Implicit File Sharing
528
2
The Remote Storage Interface
530
1
Distributing the Work
531
2
Remote Disk Systems
533
6
The Remote Disk Operation
534
1
Performance Considerations
535
1
Reliability
536
3
The Future of Remote Disks
539
1
Remote File Systems
539
9
The General Architecture
540
2
Block Caching
542
2
Crash Recovery
544
4
File-level Caching
548
3
The Andrew File System
548
1
The LOCUS File System
549
2
Directory Systems and Their Implementations
551
4
Filenames
552
2
Opening a File
554
1
Summary
555
1
Exercises
556
3
Distributed Computing
559
32
Distributing Process Management
560
8
Partitioning the Work
560
2
Supporting Partitioned Computation
562
1
General Process Management
563
1
Scheduling
563
1
Process Migration and Load Balancing
564
1
Coordinating Processes
565
3
Message Passing
568
5
Message-passing Interfaces
570
2
Computing Paradigms
572
1
Remote Procedure Call
573
6
How Does RPC Work?
573
2
Implementing RPC
575
4
Distributed-memory Management
579
10
Remote Memory
583
1
Examples of Distributed Memory
583
3
Distributed Virtual Memory
586
2
Distributed Objects
588
1
Summary
589
1
Exercises
589
2
Strategies and Examples
591
56
OS Components and Relationships
592
1
General Organizational Issues
593
8
Software Organization
594
5
Managing Distributed Hardware
599
2
The Traditional UNIX Kernel
601
3
The Kernel
602
1
The Monolithic Organization
603
1
Conclusion
604
1
The Linux Kernel
604
14
Kernel Organization
604
5
Process and Resource Management
609
6
Memory Manager
615
1
File Management
616
2
Choices: An Object-oriented OS
618
3
Frameworks
618
1
Using a Framework for the Memory Manager
618
2
Conclusion
620
1
Microsoft Windows NT
621
11
General Architecture
621
3
The Hardware Abstraction Layer (HAL)
624
1
The NT Kernel
624
2
The NT Executive
626
5
NT Subsystems
631
1
The Mach Operating System
632
8
Process Management
633
2
Message Passing
635
3
Memory Management
638
2
Conclusion
640
1
The CHORUS Operating System
640
4
Process Management
642
1
Interprocess Communication
643
1
Memory Management
643
1
Conclusion
644
1
Summary
644
1
Exercises
644
3
Glossary
647
12
Bibliography
659
4
Index
663