PART ONE OVERVIEW 3
Chapter 1 Introduction 3
1.1 What Operating Systems Do 3
1.2 Computer-System Organization 6
1.3 Computer-System Architecture 12
1.4 Operating-System Structure 15
1.5 Operating-System Operations 17
1.6 Process Management 20
1.7 Memory Management 21
1.8 Storage Management 22
1.9 Protection and Security 26
1.10 Distributed Systems 28
1.11 Special-Purpose Systems 29
1.12 Computing Environments 31
1.13 Summary 34
Exercises 36
Bibliographical Notes 38
Chapter 2 Operating-System Structures 39
2.1 Operating-System Services 39
2.2 User Operating-System Interface 41
2.3 System Calls 43
2.4 Types of System Calls 47
2.5 System Programs 55
2.6 Operating-System Design and Implementation 56
2.7 Operating-System Structure 58
2.8 Virtual Machines 64
2.9 Java 67
2.10 Operating-System Generation 73
2.11 System Boot 74
2.12 Summary 75
Exercises 76
Bibliographical Notes 81
PART TWO PROCESS MANAGEMENT 85
Chapter 3 Processes 85
3.1 Process Concept 85
3.2 Process Scheduling 89
3.3 Operations on Processes 94
3.4 Interprocess Communication 101
3.5 Examples of IPC Systems 110
3.6 Communication in Client-Server Systems 113
3.7 Summary 124
Exercises 125
Bibliographical Notes 130
Chapter 4 Threads 133
4.1 Overview 133
4.2 Multithreading Models 135
4.3 Thread Libraries 137
4.4 Java Threads 140
4.5 Threading Issues 147
4.6 Operating-System Examples 156
4.7 Summary 159
Exercises 159
Bibliographical Notes 165
Chapter 5 CPU Scheduling 167
5.1 Basic Concepts 167
5.2 Scheduling Criteria 171
5.3 Scheduling Algorithms 172
5.4 Multiple-Processor Scheduling 183
5.5 Thread Scheduling 186
5.6 Operating System Examples 187
5.7 Java Scheduling 195
5.8 Algorithm Evaluation 199
5.9 Summary 203
Exercises 204
Bibliographical Notes 207
Chapter 6 Process Synchronization 209
6.1 Background 209
6.2 The Critical-Section Problem 211
6.3 Peterson’s Solution 213
6.4 Synchronization Hardware 214
6.5 Semaphores 217
6.6 Classic Problems of Synchronization 222
6.7 Monitors 231
6.8 Java Synchronization 236
6.9 Synchronization Examples 250
6.10 Atomic Transactions 255
6.11 Summary 263
Exercises 264
Bibliographical Notes 271
Chapter 7 Deadlocks 273
7.1 System Model 273
7.2 Deadlock Characterization 275
7.3 Methods for Handling Deadlocks 280
7.4 Deadlock Prevention 284
7.5 Deadlock Avoidance 287
7.6 Deadlock Detection 293
7.7 Recovery from Deadlock 296
7.8 Summary 298
Exercises 299
Bibliographical Notes 303
PART THREE MEMORY MANAGEMENT 307
Chapter 8 Main Memory 307
8.1 Background 307
8.2 Swapping 314
8.3 Contiguous Memory Allocation 316
8.4 Paging 320
8.5 Structure of the Page Table 329
8.6 Segmentation 334
8.7 Example:The Intel Pentium 337
8.8 Summary 341
Exercises 342
Bibliographical Notes 344
Chapter 9 Virtual Memory 347
9.1 Background 347
9.2 Demand Paging 351
9.3 Copy-on-Write 357
9.4 Page Replacement 359
9.5 Allocation of Frames 372
9.6 Thrashing 375
9.7 Memory-Mapped Files 379
9.8 Allocating Kernel Memory 384
9.9 Other Considerations 387
9.10 Operating-System Examples 393
9.11 Summary 396
Exercises 397
Bibliographical Notes 401
PART FOUR STORAGE MANAGEMENT 405
Chapter 10 File-System Interface 405
10.1 The Concept of a File 405
10.2 Access Methods 413
10.3 Directory Structure 417
10.4 File-System Mounting 427
10.5 File Sharing 429
10.6 Protection 434
10.7 Summary 439
Exercises 440
Bibliographical Notes 441
Chapter 11 File-System Implementation 443
11.1 File-System Structure 443
11.2 File-System Implementation 445
11.3 Directory Implementation 451
11.4 Allocation Methods 453
11.5 Free-Space Management 461
11.6 Efficiency and Performance 463
11.7 Recovery 467
11.8 Log-Structured File Systems 469
11.9 NFS 470
11.10 Example:The WAFL File System 476
11.11 Summary 478
Exercises 479
Bibliographical Notes 487
Chapter 12 Mass-Storage Structure 489
12.1 Overview of Mass-Storage Structure 489
12.2 Disk Structure 492
12.3 Disk Attachment 493
12.4 Disk Scheduling 494
12.5 Disk Management 500
12.6 Swap-Space Management 504
12.7 RAID Structure 506
12.8 Stable-Storage Implementation 515
12.9 Tertiary-Storage Structure 516
12.10 Summary 526
Exercises 527
Bibliographical Notes 533
Chapter 13 I/O Systems 535
13.1 Overview 535
13.2 I/O Hardware 536
13.3 Application I/O Interface 545
13.4 Kernel I/O Subsystem 551
13.5 Transforming I/O Requests to Hardware Operations 558
13.6 STREAMS 560
13.7 performance 562
13.8 Summary 565
Exercises 566
Bibliographical Notes 567
PART FIVE PROTECTION AND SECURITY 571
Chapter 14 Protection 571
14.1 Goals of Protection 571
14.2 Principles of Protection 572
14.3 Domain of Protection 573
14.4 Access Matrix 578
14.5 Implementation of Access Matrix 582
14.6 Access Control 585
14.7 Revocation of Access Rights 586
14.8 Capability-Based Systems 587
14.9 Language-Based Protection 590
14.10 Summary 595
Exercises 596
Bibliographical Notes 597
Chapter 15 Security 599
15.1 The Security Problem 599
15.2 Program Threats 603
15.3 System and Network Threats 611
15.4 Cryptography as a Security Tool 617
15.5 User Authentication 628
15.6 Implementing Security Defenses 632
15.7 Firewalling to Protect Systems and Networks 639
15.8 Computer-Security Classifications 641
15.9 An Example:Windows XP 642
15.10 Summary 644
Exercises 645
Bibliographical Notes 646
PART SIX DISTRIBUTED SYSTEMS 651
Chapter 16 Distributed System Structures 651
16.1 Motivation 651
16.2 Types of Network-based Operating Systems 653
16.3 Network Structure 657
16.4 Network Topology 660
16.5 Communication Structure 662
16.6 Communication Protocols 668
16.7 Robustness 671
16.8 Design Issues 673
16.9 An Example:Networking 676
16.10 Summary 677
Exercises 678
Bibliographical Notes 684
Chapter 17 Distributed File Systems 685
17.1 Background 685
17.2 Naming and Transparency 687
17.3 Remote File Access 690
17.4 Stateful Versus Stateless Service 695
17.5 File Replication 696
17.6 An Example:AFS 698
17.7 Summary 703
Exercises 704
Bibliographical Notes 705
Chapter 18 Distributed Coordination 707
18.1 Event Ordering 707
18.2 Mutual Exclusion 710
18.3 Atomicity 713
18.4 Concurrency Control 716
18.5 Deadlock Handling 720
18.6 Election Algorithms 727
18.7 Reaching Agreement 730
18.8 Summary 732
Exercises 733
Bibliographical Notes 734
PART SEVEN SPECIAL PURPOSE SYSTEMS 739
Chapter 19 Real-Time Systems 739
19.1 Overview 739
19.2 System Characteristics 740
19.3 Features of Real-Time Kernels 742
19.4 Implementing Real-Time Operating Systems 744
19.5 Real-Time CPU Scheduling 748
19.6 VxWorks 5.x 754
19.7 Summary 756
Exercises 757
Bibliographical Notes 757
Chapter 20 Multimedia Systems 759
20.1 What Is Multimedia? 759
20.2 Compression 762
20.3 Requirements of Multimedia Kernels 764
20.4 CPU Scheduling 766
20.5 Disk Scheduling 767
20.6 Network Management 769
20.7 An Example:CineBlitz 772
20.8 Summary 774
Exercises 775
Bibliographical Notes 777
PART EIGHT CASE STUDIES 781
Chapter 21 The Linux System 781
21.1 Linux History 781
21.2 Design Principles 786
21.3 Kernel Modules 789
21.4 Process Management 792
21.5 Scheduling 795
21.6 Memory Management 800
21.7 File Systems 808
21.8 Input and Output 814
21.9 Interprocess Communication 817
21.10 Network Structure 818
21.11 Security 821
21.12 Summary 823
Exercises 824
Bibliographical Notes 825
Chapter 22 Windows XP 827
22.1 History 827
22.2 Design Principles 829
22.3 System Components 831
22.4 Environmental Subsystems 855
22.5 File System 858
22.6 Networking 866
22.7 Programmer Interface 873
22.8 Summary 880
Exercises 880
Bibliographical Notes 881
Chapter 23 Influential Operating Systems 883
23.1 Early Systems 883
23.2 Atlas 889
23.3 XDS-940 890
23.4 THE 891
23.5 RC 4000 892
23.6 CTSS 893
23.7 MULTICS 893
23.8 IBM OS/360 894
23.9 Mach 895
23.10 Other Systems 897
Exercises 897
PART EIGHT APPENDICES 899
Appendix A BSD UNIX(contents online) 899
A.1 UNIX History 899
A.2 Design Principles 904
A.3 Programmer Interface 906
A.4 User Interface 913
A.5 Process Management 916
A.6 Memory Management 920
A.7 File System 922
A.8 I/O System 930
A.9 Interprocess Communication 933
A.10 Summary 938
Exercises 939
Bibliographical Notes 940
Appendix B The Mach System(contents online) 941
B.1 History of the Mach System 941
B.2 Design Principles 943
B.3 System Components 944
B.4 Process Management 947
B.5 Interprocess Communication 953
B.6 Memory Management 958
B.7 Programmer Interface 963
B.8 Summary 964
Exercises 965
Bibliographical Notes 966
Credits 967
Appendix C Windows 2000(contents online) 969
C.1 History 969
C.2 Design Principles 970
C.3 System Components 971
C.4 Environmental Subsystems 987
C.5 File System 989
C.6 Networking 996
C.7 Programmer Interface 1001
C.8 Summary 1008
Exercises 1008
Bibliographical Notes 1009
Appendix D Distributed Communication(contents online) 1011
D.1 Sockets 1011
D.2 UDP Sockets 1018
D.3 Remote Method Invocation 1022
D.4 Other Aspects of Distributed Communication 1027
D.5 Web Services 1029
D.6 Summary 1033
Exercises 1034
Bibliographical Notes 1035
Appendix E Java Primer(contents online) 1037
E.1 Basics 1037
E.2 Inheritance 1046
E.3 Interfaces and Abstract Classes 1048
E.4 Exception Handling 1052
E.5 Applications and Applets 1053
E.6 Summary 1055
Bibliographical Notes 1055
Bibliography 899
Credits 929
Index 931