Part 1 Operating Systems Overview and Background 1
Chapter 1 Getting Started 3
1.1 Introduction 4
1.2 What Are Operating Systems All about? 5
1.3 User versus System View of an OS 6
1.4 Some OS Terms,Basic Concepts,and Illustrations 10
1.5 A Small Historical Diversion 15
1.6 Summary 17
Chapter 2 Operating System Concepts,Components,and Architectures 19
2.1 Introduction:What Does the OS Do? 20
2.2 Resources Managed by the OS and Major OS Modules 22
2.3 The Process Concept and OS Process Information 25
2.4 Functional Classes of OSs 29
2.5 Architectural Approaches to Building an OS 33
2.6 Some OS Implementation Techniques and Issues 35
2.7 Minimalist versus Maximalist Approaches to OS Functionality and Backward Compatibility 40
2.8 Summary 42
Part 2 Building Operating Systems Incrementally:A Breadth-Oriented Spiral Approach 45
Chapter 3 A Simple,Single-Process Operating System 47
3.1 Introduction:Monitors and CP/M 48
3.2 Characteristics of a Simple PC System 50
3.3 Input/Output Management 52
3.4 Disk Management and the File System 54
3.5 Process and Memory Management 58
3.6 Summary 63
Chapter 4 A Single-User Multitasking Operating System 67
4.1 Introduction:A Simple Multitasking System 69
4.2 The Palm OS Environment and System Layout 71
4.3 Process Scheduling 73
4.4 Memory Management 75
4.5 File Support 80
4.6 Basic Input and Output 82
4.7 Display Management 82
4.8 Event-Driven Programs 84
4.9 Summary 86
Chapter 5 A Single-User Multitasking/Multithreading Operating System 89
5.1 Introduction 89
5.2 The Origin of the Macintosh Computer 90
5.3 The Macintosh OS—System 1 91
5.4 System 2 96
5.5 System 3 98
5.6 System 4 98
5.7 System 5 100
5.8 System 6 101
5.9 System 7 101
5.10 System 8 105
5.11 System 9 107
5.12 Mac OS X 109
5.13 Summary 111
Chapter 6 A Multiple-User Operating System 113
6.1 Introduction 113
6.2 The Multiuser OS Environment 121
6.3 Processes and Threads 123
6.4 Summary 125
Chapter 7 Parallel and Distributed Computing,Clusters,and Grids 127
7.1 Introduction 127
7.2 Key Concepts 128
7.3 Parallel and Distributed Processing 128
7.4 Distributed System Architectures 132
7.5 How Operating System Concepts Differ in SMPs,Clusters,and Grids 138
7.6 Examples 142
7.7 Summary 147
Part 3 CPU and Memory Management 149
Chapter 8 Process Management:Concepts,Threads,and Scheduling 151
8.1 Introduction to Processes 152
8.2 Process Descriptor-Process Control Block 152
8.3 Process States and Transitions 154
8.4 Process Scheduling 156
8.5 One Good Process Deserves Another 164
8.6 Threads 166
8.7 Case Studies 173
8.7 Summary 178
Chapter 9 More Process Management:Interprocess Communication,Synchronization,and Deadlocks 181
9.1 Why Have Cooperating Processes? 182
9.2 Interprocess Communication 184
9.3 Synchronization 190
9.4 Deadlocks 197
9.5 Summary 206
Chapter 10 Basic Memory Management 209
10.1 Introduction:Why Manage Primary Memory? 209
10.2 Binding Model:Steps in Development Cycle 210
10.3 A Single Process 211
10.4 Multiple Processes with a Fixed Number of Processes 216
10.5 Multiple Processes with a Variable Number of Processes 218
10.6 Summary 223
Chapter 11 Advanced Memory Management 225
11.1 Why Do We Need Hardware Help? 225
11.2 Paging 226
11.3 Segmentation 233
11.4 Segmentation with Paging 236
11.5 Demand Paging 238
11.6 Special Memory Management Topics 248
11.7 Summary 252
Part 4 A Depth-Oriented Presentation of OS Concepts:Files Systems and Input/Output 255
Chapter 12 File Systems—Basics 257
12.1 Introduction 258
12.2 Directories 259
12.3 Access Methods 265
12.4 Free Space Tracking 269
12.5 File Allocation 273
12.6 Summary 280
Chapter 13 File Systems—Examples and More Features 283
13.1 Introduction 283
13.2 Case Studies 284
13.3 Mounting 288
13.4 Multiple File Systems and Redirection 290
13.5 Memory Mapped Files 292
13.6 File System Utilities 293
13.7 Log-Based File Systems 294
13.8 Summary 295
Chapter 14 Disk Scheduling and Input/Output Management 297
14.1 Introduction 297
14.2 Device Characteristics 298
14.3 I/O Technology 299
14.4 Physical Disk Organization 302
14.5 Logical Disk Organization 305
14.6 RAID 309
14.7 Disk Operation Scheduling 314
14.8 DMA and Disk Hardware Features 322
14.9 Summary 325
Part 5 Networks,Distributed Systems,and Security 329
Chapter 15 Introduction to Computer Networks 331
15.1 Why Do We Want to Network Computers? 332
15.2 The Basics 333
15.3 Application Layer Protocols 338
15.4 TCP/IP 341
15.5 The Data Link Layer 345
15.6 WANs 350
15.7 The Physical Layer 352
15.8 Network Management 354
15.9 Summary 356
Chapter 16 Protection and Security 359
16.1 Introduction:Problems and Threats 360
16.2 OS Protection 366
16.3 Policies,Mechanisms,and Techniques 370
16.4 Communication Security 373
16.5 Security Administration 380
16.6 Summary 381
Chapter 17 Distributed Operating Systems 385
17.1 Introduction 386
17.2 Distributed Application Models 388
17.3 Abstractions:Processes,Threads,and Machines 391
17.4 Naming 394
17.5 Other Distributed Models 396
17.6 Synchronization 400
17.7 Fault Tolerance 406
17.8 Summary 409
Part 6 Case Studies 413
Chapter 18 Windows NTTM through VistaTM 415
18.1 Introduction:Windows NT Family History 416
18.2 The User OS Environment 421
18.3 Process Scheduling 423
18.4 Memory Management 425
18.5 File Support 428
18.6 Basic Input and Output 436
18.7 GUI Programming 439
18.8 Networking 440
18.9 Symmetric Multiprocessing 441
18.10 Startup Speed of XP 441
18.11 Summary 442
Chapter 19 Linux:A Case Study 445
19.1 Introduction 446
19.2 Process Scheduling 447
19.3 Memory Management 451
19.4 File Support 452
19.5 Basic Input and Output 454
19.6 GUI Programming 458
19.7 Networking 460
19.8 Security 462
19.9 Symmetric Multiprocessing 463
19.10 Other Linux Variants 463
19.11 Summary 466
Chapter 20 Palm OS:A Class Case Study 469
20.1 Overview 469
20.2 The Multi-Process OS Environment 470
20.3 Palm Process Scheduling 471
20.4 Palm Memory Management 471
20.5 File Support 472
20.6 Input/Output Subsystems 472
20.7 GUI Programming 473
20.8 Network Programming 473
20.9 Programming Environments 475
20.10 Similar Systems and Current Developments 476
20.11 Summary 480
Appendix Overview of Computer System and Architecture ConceptsA.1 Typical Computer System Components 484
A.2 The Processor or Central Processing Unit 485
A.3 The Memory Unit and Storage Hierarchies 496
A.4 Input and Output 502
A.5 The Network 504
A.6 A More Detailed Picture 507
A.7 Summary 507