PART ONE ■ OVERVIEW 3
Chapter1 Introduction 3
1.1 What Is an Operating System? 3
1.2 Batch Systems 6
1.3 Time-Sharing Systems 8
1.4 Personal-Computer Systems 10
1.5 Parallel Systems 11
1.6 Real-Time Systems 14
1.7 Distributed Systems 15
1.8 Summary 16
Exercises 17
Bibliographical Notes 18
Chapter2 Computer-System Structures 19
2.1 Computer-System Operation 19
2.2 I/O Structure 22
2.3 Storage Structure 26
2.4 Storage Hierarchy 30
2.5 Hardware Protection 33
2.6 General System Architecture 39
2.7 Summary 40
Exercises 41
Bibliographical Notes 43
Chapter3 Operating-System Structures 45
3.1 System Components 45
3.2 Operating-System Services 51
3.3 System Calls 53
3.4 System Programs 62
3.5 System Structure 64
3.6 Virtual Machines 70
3.7 Java 74
3.8 System Design and Implementation 77
3.9 System Generation 80
3.10 Summary 81
Exercises 82
Bibliographical Notes 84
PART TWO ■ PROCESS MANAGEMENT 87
Chapter4 Processes 87
4.1 Process Concept 87
4.2 Process Scheduling 91
4.3 Operations on Processes 95
4.4 Cooperating Processes 99
4.5 Interprocess Communication 101
4.6 Summary 112
Exercises 113
Bibliographical Notes 114
Chapter5 Threads 115
5.1 Overview 115
5.2 Benefits 116
5.3 User and Kernel Threads 117
5.4 Multithreading Models 118
5.5 Solaris 2 Threads 120
5.6 Java Threads 122
5.7 Summary 130
Exercises 132
Bibliographical Notes 133
Chapter6 CPU Scheduling 135
6.1 Basic Concepts 135
6.2 Scheduling Criteria 139
6.3 Scheduling Algorithms 141
6.4 Multiple-Processor Scheduling 153
6.5 Real-Time Scheduling 153
6.6 Thread Scheduling 156
6.7 Java Thread Scheduling 158
6.8 Algorithm Evaluation 162
6.9 Summary 167
Exercises 168
Bibliographical Notes 171
Chapter7 Process Synchronization 173
7.1 Background 173
7.2 Critical-Section Problem 175
7.3 Two-Tasks Solutions 177
7.4 Synchronization Hardware 181
7.5 Semaphores 184
7.6 Classical Synchronization Problems 191
7.7 Monitors 199
7.8 Java Synchronization 205
7.9 OSSynchronization 220
7.10 Summary 222
Exercises 222
Bibliographical Notes 225
8.1 System Model 227
Chapter8 Deadlocks 227
8.2 Deadlock Characterization 229
8.3 Methods for Handling Deadlocks 233
8.4 Deadlock Prevention 237
8.5 Deadlock Avoidance 241
8.6 Deadlock Detection 244
8.7 Recovery from Deadlock 245
8.8 Summary 247
Exercises 248
Bibliographical Notes 250
PART THREE ■ STORAGE MANAGEMENT 255
Chapter9 Memory Management 255
9.1 Background 255
9.2 Swapping 262
9.3 Contiguous Memory Allocation 265
9.4 Paging 269
9.5 Segmentation 284
9.6 Segmentation with Paging 290
9.7 Summary 292
Exercises 294
Bibliographical Notes 296
Chapter10 Virtual Memory 297
10.1 Background 297
10.2 Demand Paging 299
10.3 Page Replacement 308
10.4 Allocation of Frames 321
10.5 Thrashing 325
10.6 Operating-System Examples 330
10.7 Other Considerations 331
10.8 Summary 338
Exercises 339
Bibliographical Notes 344
11.1 File Concept 345
Chapter11 File Systems 345
11.2 Access Methods 355
11.3 Directory Structure 357
11.4 Protection 368
11.5 File System Structure 372
11.6 Allocation Methods 377
11.7 Free-Space Management 386
11.8 Directory Implementation 388
11.9 Efficiency and Performance 390
11.10 Recovery 392
11.11 Summary 394
Exercises 396
Bibliographical Notes 399
Chapter12 I/O Systems 401
12.1 Overview 401
12.2 I/O Hardware 402
12.3 Application I/O Interface 412
12.4 Kernel I/O Subsystem 418
12.5 I/O Requests Handling 424
12.6 Performance 427
12.7 Summary 431
Exercises 431
Bibliographical Notes 433
Chapter13 Mass-Storage Structure 435
13.1 Disk Structure 435
13.2 Disk Scheduling 436
13.3 Disk Management 442
13.4 Swap-Space Management 446
13.5 Disk Reliability 448
13.6 Stable-Storage Implementation 450
13.7 Tertiary-Storage Structure 451
13.8 Summary 456
Exercises 458
Bibliographical Notes 464
PART FOUR ■ DISTRIBUTED SYSTEMS 469
Chapter14 Network Structures 469
14.1 Background 469
14.2 Network Types 477
14.3 Communication 480
14.4 Communication Protocols 487
14.5 Robustness 490
14.6 Design Issues 493
14.7 Networking Example 495
14.8 Summary 497
Exercises 498
Bibliographical Notes 500
Chapter15 Distributed Communication 501
15.1 Sockets 501
15.2 Remote Procedure Calls 506
15.3 Remote Method Invocation 507
15.4 CORBA 515
15.5 Object Registration 516
15.6 Summary 517
Exercises 518
Bibliographical Notes 519
Chapter16 Distributed Coordination 521
16.1 Event Ordering 521
16.2 Mutual Exclusion 524
16.3 Deadlock Handling 527
16.4 Election Algorithms 535
16.5 Summary 538
Exercises 538
Bibliographical Notes 539
Chapter17 Distributed File Systems 541
17.1 Background 541
17.2 Naming and Transparency 543
17.3 Remote File Access 547
17.4 Stateful Versus Stateless Service 551
17.5 File Replication 553
17.6 Example System:NFS 554
17.7 Summary 561
Exercises 562
Bibliographical Notes 563
PART FIVE ■ PROTECTION AND SECURITY 567
Chapter18 Protection 567
18.1 Goals of Protection 567
18.2 Domain of Protection 569
18.3 Access Matrix 574
18.4 Implementation of Access Matrix 578
18.5 Revocation of Access Rights 582
18.6 Language-Based Protection 584
18.7 Summary 587
Exercises 588
Bibliographical Notes 589
19.1 The Security Problem 591
Chapter19 Security 591
19.2 Authentication 593
19.3 Program Threats 597
19.4 System Threats 598
19.5 Threat Monitoring 603
19.6 Encryption 605
19.7 Computer-Security Classifications 607
19.8 An Example Security Model:Windows NT 609
19.9 Java Security 611
19.10 Summary 615
Exercises 615
Bibliographical Notes 616
Chapter20 The UNIX System 621
20.1 History 621
PART SIX ■ CASE STUDIES 621
20.2 Design Principles 623
20.3 Programmer Interface 626
20.4 User Interface 634
20.5 Process Management 638
20.6 Memory Management 642
20.7 File System 646
20.8 I/O System 654
20.9 Interprocess Communication 658
20.10 Summary 664
Exercises 665
Bibliographical Notes 666
Chapter21 The Linux System 669
21.1 History 669
21.2 Design Principles 674
21.3 Kernel Modules 677
21.4 Process Management 681
21.5 Scheduling 685
21.6 Memory Management 690
21.7 File Systems 698
21.8 Input and Output 703
21.9 Interprocess Communication 706
21.10 Network Structure 708
21.11 Security 711
21.12 Summary 713
Exercises 714
Bibliographical Notes 715
Chapter22 Windows NT 717
22.1 History 717
22.2 Design Principles 718
22.3 System Components 719
22.4 Executive 725
22.5 Environmental Subsystems 735
22.6 File System 738
22.7 Networking 745
22.8 Programmer Interface 751
22.9 Summary 758
Exercises 759
Bibliographical Notes 759
Appendix A Java Primer 761
A.1 Basics 761
A.2 Exception Handling 770
A.3 Inheritance 772
A.4 Interfaces and Abstract Classes 775
A.5 Applications and Applets 779
A.6 Summary 781
Bibliographical Notes 781
Bibliography 783
Credits 807
Index 809