Chapter 1 Computer System Overview 1
1.1 Basic Elements 1
1.2 Processor Registers 2
1.3 Instruction Execution 5
1.4 Interrupts 8
1.5 The Memory Hierarchy 19
1.6 Cache Memory 22
1.7 I/O Communication Techniques 26
1.8 Recommended Reading and Web Sites 29
1.9 Key Terms,Review Questions,and Problems 30
Appendix 1A Performance Characteristics of Two-Level Memory 32
Appendix 1B Procedure Control 39
Chapter 2 Operating System Overview 43
2.1 Operating System Objectives and Functions 43
2.2 The Evolution of Operating Systems 47
2.3 Major Achievements 56
2.4 Developments Leading to Modern Operating Systems 69
2.5 Microsoft Windows Overview 72
2.6 Traditional UNIX Systems 82
2.7 Modern UNIX Systems 85
2.8 Linux 86
2.9 Recommended Reading and Web Sites 93
2.10 Key Terms,Review Questions,and Problems 95
Chapter 3 Process Description and Control 97
3.1 What is a Process? 97
3.2 Process States 100
3.3 Process Description 115
3.4 Process Control 124
3.5 Execution of the Operating System 129
3.6 Security Issues 132
3.7 UNIX SVR4 Process Management 136
3.8 Summary 141
3.9 Recommended Reading 142
3.10 Key Terms,Review Questions,and Problems 142
Programming Project One Developing a Shell 146
Chapter 4 Threads,SMP,and Microkernels 149
4.1 Processes and Threads 149
4.2 Symmetric Multiprocessing(SMP) 163
4.3 Microkernels 167
4.4 Windows Vista Thread and SMP Management 173
4.5 Solaris Thread and SMP Management 178
4.6 Linux Process and Thread Management 183
4.7 Summary 186
4.8 Recommended Reading 187
4.9 Key Terms,Review Questions,and Problems 188
Chapter 5 Concurrency:Mutual Exclusion and Synchronization 193
5.1 Principles of Concurrency 194
5.2 Mutual Exclusion:Hardware Support 203
5.3 Semaphores 206
5.4 Monitors 219
5.5 Message Passing 226
5.6 Readers/Writers Problem 232
5.7 Summary 236
5.8 Recommended Reading 237
5.9 Key Terms,Review Questions,and Problems 238
Chapter 6 Concurrency:Deadlock and Starvation 249
6.1 Principles of Deadlock 249
6.2 Deadlock Prevention 258
6.3 Deadlock Avoidance 259
6.4 Deadlock Detection 265
6.5 An Integrated Deadlock Strategy 267
6.6 Dining Philosophers Problem 268
6.7 UNIX Concurrency Mechanisms 272
6.8 Linux Kernel Concurrency Mechanisms 275
6.9 Solaris Thread Synchronization Primitives 281
6.10 Windows Vista Concurrency Mechanisms 284
6.11 Summary 288
6.12 Recommended Reading 288
6.13 Key Terms,Review Questions,and Problems 289
Chapter 7 Memory Management 295
7.1 Memory Management Requirements 295
7.2 Memory Partitioning 298
7.3 Paging 309
7.4 Segmentation 313
7.5 Security Issues 314
7.6 Summary 318
7.7 Recommended Reading 318
7.8 Key Terms,Review Questions,and Problems 319
Appendix 7A Loading and Linking 321
Chapter 8 Virtual Memory 328
8.1 Hardware and Control Structures 328
8.2 Operating System Software 347
8.3 UNIX and Solaris Memory Management 365
8.4 Linux Memory Management 371
8.5 Windows Vista Memory Management 373
8.6 Summary 376
8.7 Recommended Reading and Web Sites 377
8.8 Key Terms,Review Questions,and Problems 378
Appendix 8A Hash Tables 382
Chapter 9 Uniprocessor Scheduling 386
9.1 Types of Scheduling 386
9.2 Scheduling Algorithms 390
9.3 Traditional UNIX Scheduling 412
9.4 Summary 414
9.5 Recommended Reading 414
9.6 Key Terms,Review Questions,and Problems 415
Appendix 9A Response Time 418
Appendix 9B Queuing Systems 420
Programming Project Two The HOST Dispatcher Shell 427
Chapter 10 Multiprocessor and Real-Time Scheduling 432
10.1 Multiprocessor Scheduling 432
10.2 Real-Time Scheduling 445
10.3 Linux Scheduling 460
10.4 UNIX FreeBSD Scheduling 464
10.5 Windows Vista Scheduling 466
10.6 Summary 469
10.7 Recommended Reading 469
10.8 Key Terms,Review Questions,and Problems 470
Chapter 11 I/O Management and Disk Scheduling 473
11.1 I/O Devices 473
11.2 Organization of the I/O Function 474
11.3 Operating System Design Issues 478
11.4 I/O Buffering 481
11.5 Disk Scheduling 484
11.6 RAID 491
11.7 Disk Cache 500
11.8 UNIX FreeBSD I/O 503
11.9 Linux I/O 506
11.10 Windows Vista I/O 510
11.11 Summary 513
11.12 Recommended Reading 513
11.13 Key Terms,Review Questions,and Problems 515
Appendix 11A Disk Storage Devices 517
Chapter 12 File Management 528
12.1 Overview 528
12.2 File Organization and Access 534
12.3 File Directories 538
12.4 File Sharing 543
12.5 Record Blocking 544
12.6 Secondary Storage Management 546
12.7 File System Security 554
12.8 UNIX File Management 556
12.9 Linux File Management 563
12.10 Windows Vista File System 567
12.11 Summary 573
12.12 Recommended Reading 573
12.13 Key Terms,Review Questions,and Problems 574
Glossary 577
References 587