CONTENTS
About the Author = xxvii
PART 1 OVERVIEW
CHAPTER 1 INTRODUCTION = 3
Outline = 4
1.1 Opening Remarks = 5
1.2 Generations of Operating Systems = 7
1.3 Early History of Operating Systems = 9
1.4 Developments of the Early 1960s = 11
1.5 The IBM System/360 Family of Computers = 12
1.6 Industry Reaction to the System/360 = 13
1.7 Timesharing Systems = 14
1.8 The emergence of a New Field : Software Engineering = 15
1.9 Unbundling of Software and Hardware = 15
1.10 Future Trends = 16
Summary = 18
CHAPTER 2 HARDWARE, SOFTWARE, FIRMWARE = 23
Outline = 25
2.1 Introduction = 27
2.2 hardware = 27
2.3 Software = 33
2.4 Firmware = 37
Summary = 44
PART 2 PROCESS MANAGEMENT
CHAPTER 3 PROCESS CONCEPTS = 53
Outline = 54
3.1 Introduction = 55
3.2 Definitions of "Process" = 55
3.3 Process States = 55
3.4 Process State Transitions = 56
3.5 The Process Control Block = 57
3.6 Operations on Processes = 58
3.7 Suspend and Resume = 60
3.8 Interrupt Processing = 62
3.9 The Nucleus of the Operating System = 67
Summary = 68
CHAPTER 4 ASYNCHRONOUS CONCURRENT PROCESSES = 73
Outline = 74
4.1 Introduction = 75
4.2 Parallel Processing = 75
4.3 A Control Structure for Indicating Parallelism : Parbegin/Parend = 75
4.4 Mutual Exclusion = 77
4.5 Critical Sections = 78
4.6 Mutual Exclusion Primitives = 78
4.7 Implementing Mutual Exclusion Primitives = 80
4.8 Dekker's Algorithm = 80
4.9 N-Process Mutual Exclusion = 87
4.10 A Hardware Solution to Mutual Exclusion : The Testandset Instruction = 87
4.11 Semaphores = 89
4.12 Process Synchronization with Semaphores = 90
4.13 The Producer-consumer Relationship = 91
4.14 Counting Semaphores = 93
4.15 Implementing Semaphores, P and V = 93
Summary = 94
CHAPTER 5 CONCURRENT PROGRAMMING : MONITORS ; THE ADA RENDEZVOUS = 101
Outline = 102
5.1 Introduction = 103
5.2 Monitors = 103
5.3 Simple Resource Allocation with Monitors = 104
5.4 Monitor Example : The Ring Buffer = 105
5.5 Monitor Example : Readers and Writers = 106
5.6 Ada : The Concurrent Programming Language for the 1980s = 109
5.7 Motivation for Ada Multitasking = 109
5.8 Correctness of Concurrent Programs = 109
5.9 The Ada Rendezvous = 110
5.10 The Accept Statement = 110
5.11 Ada Example : Producer - consumer Relationship = 111
5.12 The Select Statement = 113
5.13 Ada Example : The Ring Buffer = 113
5.14 Ada Example : Readers and Writers = 114
Summary = 117
CHAPTER 6 DEADLOCK = 125
Outline = 126
6.1 Introduction = 127
6.2 Examples of Deadlock = 127
6.3 A Related Problem : Indefinite Postponement = 130
6.4 Resource Concepts = 130
6.5 four Necessary Conditions for Deadlock = 131
6.6 Major Areas of Deadlock Research = 132
6.7 Deadlock Prevention = 132
6.8 Deadlock Avoidance and the Banker's Algorithm = 135
6.9 Deadlock Detection = 139
6.10 Deadlock Recovery = 141
6.11 Deadlock Considerations in Future Systems = 143
Summary = 144
PART 3 STORAGE MANAGEMENT
CHAPTER 7 REAL STORAGE = 153
Outline = 154
7.1 Introduction = 155
7.2 Storage Organization = 155
7.3 Storage Management = 155
7.4 Storage Hierarchy = 156
7.5 Storage Management Strategies = 157
7.6 Contiguous vs. Noncontiguous Storage Allocation = 158
7.7 Single User Contiguous Storage Allocation = 158
7.8 Fixed Partition Multiprogramming = 162
7.9 Variable Partition Multiprogramming = 165
7.10 Multiprogramming with Storage Swapping = 169
Summary = 171
CHAPTER 8 VIRTUAL STORAGE ORGANIZATION = 179
Outline = 180
8.1 Introduction = 181
8.2 Evolution of Storage Organizations = 181
8.3 Virtual Storage : Basic Concepts = 181
8.4 Multilevel Storage Organization = 183
8.5 Block Mapping = 185
8.6 Paging : Basic Concepts = 187
8.7 Segmentation = 195
8.8 Paging/Segmentation Systems = 203
Summary = 209
CHAPTER 9 VIRTUAL STORAGE MANAGEMENT = 215
Outline = 216
9.1 Introduction = 217
9.2 Virtual Storage Management Strategies = 217
9.3 Page Replacement Strategies = 217
9.4 Locality = 222
9.5 Working Sets = 224
9.6 Demand Paging = 227
9.7 Anticipatory Paging = 228
9.8 Page Release = 228
9.9 Page Size = 229
9.10 Program Behavior under Paging = 231
Summary = 233
PART 4 PROCESSOR MANAGEMENT
CHAPTER 10 JOB AND PROCESSOR SCHEDULING = 247
Outline = 248
10.1 Introduction = 249
10.2 Scheduling Levels = 249
10.3 Scheduling Objectives = 250
10.4 Scheduling Criteria = 251
10.5 Preemptive vs. Nonpreemptive Scheduling = 252
10.6 The Interval Timer or Interrupting Clock = 253
10.7 Priorities = 253
10.8 Deadline Scheduling = 254
10.9 First-In-First-Out (FIFO) Scheduling = 254
10.10 Round Robin (RR) Scheduling = 255
10.11 Quantum Size = 255
10.12 Shortest-Job-First (SJF) Scheduling =257
10.13 SHORTEST-Remaining-Time (SRT) Scheduling =257
10.14 Highest-Response-Ratio-Next (HRN) Scheduling = 258
10.15 Multilevel Feedback Queues = 259
Summary = 261
CHAPTER 11 MULTIPROCESSING = 269
Outline = 270
11.1 Introduction = 271
11.2 Reliability = 271
11.3 Exploiting Parallelism = 272
11.4 Massive Parallelism = 272
11.5 Goals of Multiprocessing Systems = 272
11.6 Automatic Detection of Parallelism = 273
11.7 The "Never Wait" Rule = 277
11.8 Multiprocessor Hardware Organization = 278
11.9 Loosely Coupled Vs. Tightly Coupled Systems = 282
11.10 Master/Slave Organization = 283
11.11 Multiprocessor Operating Systems = 283
11.12 Multiprocessor Operating Systems Organizations = 284
11.13 Multiprocessor System Performance = 286
11.14 Cost Effectiveness of Multiprocessor Systems = 287
11.15 Error Recovery = 288
11.16 Symmetrical Multiprogramming in TOPS-10 = 288
11.17 C.mmp and $$Cm^*$$ = 290
11.18 The Future of Multiprocessors = 291
Summary = 292
PART 5 AUXILIARY STORAGE MANAGEMENT
CHAPTER 12 DISK SCHEDULING = 301
Outline = 302
12.1 Introduction = 303
12.2 Operation of Moving-head Disk Storage = 303
12.3 Why Scheduling Is Necessary = 305
12.4 Desirable Characteristics of Scheduling Policies = 306
12.5 Seek Optimization = 307
12.6 Rotational Optimization = 311
12.7 Systems Considerations = 312
Summary = 315
CHAPTER 13 FILE AND DATABASE SYSTEMS = 321
Outline = 322
13.1 Introduction = 323
13.2 File System Functions = 323
13.3 The Data Hierarchy = 324
13.4 Blocking and Buffering = 325
13.5 File Organization = 326
13.6 Queued and Basic Access Methods = 327
13.7 File Characteristics = 327
13.8 The File System = 328
13.9 Allocating and Freeing Space = 329
13.10 File Descriptor = 334
13.11 Access Control Matrix = 336
13.12 Access Control by User Classes = 336
13.13 Backup and Recovery = 337
13.14 Database System = 338
13.15 Database Models = 340
Summary = 344
PART 6 PERFORMANCE
CHAPTER 14 PERFORMANCE MEASUREMENT, MONITORING, AND EVALUATION = 353
Outline = 354
14.1 Introduction = 355
14.2 Important Trends Affecting Performance Issues = 355
14.3 Why Performance Monitoring and Evaluation Are Needed = 356
14.4 Performance Measures = 357
14.5 Performance Evaluation Techniques = 359
14.6 Bottlenecks and Saturation = 364
14.7 Feedback Loops = 364
Summary = 366
CHAPTER 15 ANALYTIC MODELING = 379
Outline = 380
15.1 Introduction = 381
15.2 Queueing Theory = 381
15.3 Markov Processes = 397
Summary = 405
PART 7 NETWORKS AND SECURITY
CHAPTER 16 NETWORK OPERATING SYSTEMS = 415
Outline = 416
16.1 Introduction = 417
16.2 Elements of Computer Networks = 417
16.3 Network Categories = 419
16.4 Packet Switching = 421
16.5 Network Operating System (NOS) = 424
16.6 NOS Primitives = 425
16.7 Network Topologies = 426
16.8 Network Operating systems and Distributed Operating Systems = 428
16.9 Security, Privacy, Encryption, and Authentication = 429
16.10 Local Networking = 430
16.11 Case Study : Ethernet = 433
16.12 Case Study : DECnet = 435
Summary = 439
CHAPTER 17 OPERATING SYSTEMS SECURITY = 445
Outline = 446
17.1 Introduction = 447
17.2 Security Requirements = 448
17.3 A Total Approach to Security = 448
17.4 External Security = 449
17.5 Operational Security = 449
17.6 Surveillance = 450
17.7 Threat Monitoring = 450
17.8 Amplification = 450
17.9 Password Protection = 451
17.10 Auditing = 452
17.11 Access Controls = 452
17.12 Security Kernels = 453
17.13 Hardware Security = 453
17.14 Survivable Systems = 453
17.15 Capabilities and Object-Oriented Systems = 454
17.16 Case Study : The Object-Oriented Architecture of the IBM System/38 = 456
17.17 Cryptography = 458
17.18 Operating System Penetration = 461
17.19 Case Study : Penetrating an Operating System = 465
Summary = 466
PART 8 CASE STUDIES
CHAPTER 18 CASE STUDY : UNIX SYSTEMS = 479
Outline = 480
18.1 Introduction = 481
18.2 History = 481
18.3 Versions of UNIX Systems = 482
18.4 Design Goals = 484
18.5 Process Control = 484
18.6 Input/Output System = 489
18.7 File System = 490
18.8 Shell = 494
18.9 Performance vs. Usability = 496
18.10 XENIX : A Commercial UNIX System Standard = 500
Summary = 500
CHAPTER 19 CASE STUDY : VAX = 505
Outline = 506
19.1 Introduction = 507
19.2 VAX Design Goals = 507
19.3 PDP-11 Compatibility = 508
19.4 Instructions and Storage = 508
19.5 The VAX-11/780 = 509
19.6 Storage Management = 511
19.7 Process Scheduling = 513
19.8 VAX/VMS Input/Output = 517
19.9 Record Management Services = 523
19.10 Interprocess Communication and Synchronization = 526
Summary = 529
CHAPTER 20 CASE STUDY : CP/M = 535
Outline = 536
20.1 Introduction = 538
20.2 History = 538
20.3 PL/M = 539
20.4 The CP/M Family = 539
20.5 Structure of CP/M = 540
20.6 Memory Allocation = 541
20.7 Logical to Physical Device Mapping = 542
20.8 Console Command Processor (CCP) = 544
20.9 Basic Input/Output System (BIOS) = 546
20.10 Basic Disk Operating System (BDOS) = 546
20.11 The File System = 546
20.12 CP/M Operation = 551
20.13 MP/M = 552
20.14 CP/NET = 555
20.15 PL/I Subset G : The CP/M Applications Language = 558
20.16 Evolution in Processor Architecture = 560
20.17 CP/M-Based Software = 560
20.18 The IBM Personal Computer = 560
20.19 The Future of CP/M = 561
Summary = 561
CHAPTER 21 MVS = 567
Outline = 568
21.1 History of MVS = 569
21.2 MVS Design Objectives = 569
21.3 System/370 Hardware = 571
21.4 MVS Functions = 575
21.5 Supervisor = 576
21.6 Master Scheduler = 576
21.7 Job Entry Subsystem = 576
21.8 System Management Facility and System Activity Measurement Facility = 578
21.9 Timesharing Option = 578
21.10 Data Management = 578
21.11 Real Storage Manager = 582
21.12 Auxiliary Storage Manager = 582
21.13 Virtual Storage Manager = 583
21.14 System Resources Manager = 583
21.15 Storage Organization = 584
21.16 Resource Control = 585
21.17 Locking = 586
21.18 Enqueue = 587
21.19 Reserve = 587
21.20 Tasks and Service Requests = 587
21.21 Dispatcher = 588
21.22 Multiprocessing = 588
21.23 Performance = 590
21.24 Monitoring System Activity = 591
21.25 Conclusions = 592
Summary = 592
CHAPTER 22 VM : A VIRTUAL MACHINE OPERATING SYSTEM = 601
Outline = 602
22.1 Introduction = 603
22.2 History = 608
22.3 The Control Program (CP) = 609
22.4 The Conversational Monitor System (CMS) = 616
22.5 Remote Spooling and Communications System = 617
22.6 Strengths of VM = 619
22.7 VM Evolution = 619
22.8 Performance Considerations = 619
22.9 Reliability, Availability, and Serviceability = 621
22.10 VM : IBM's large-Scale Operating System for the 1980s? = 622
Summary = 624
Appendix = 631
Author Index = 647
Subject Index = 653