| Preface |
|
v | |
| PART ONE BACKGROUND |
|
1 | (98) |
|
Chapter 1 Computer System Overview |
|
|
3 | (42) |
|
|
|
3 | (1) |
|
|
|
4 | (3) |
|
1.3 Instruction Execution |
|
|
7 | (3) |
|
|
|
10 | (11) |
|
|
|
21 | (3) |
|
|
|
24 | (4) |
|
1.7 I/O Communication Techniques |
|
|
28 | (3) |
|
|
|
31 | (1) |
|
|
|
32 | (2) |
|
Appendix 1A Performance Characteristics of Two-Level Memory |
|
|
34 | (7) |
|
Appendix 1B Procedure Control |
|
|
41 | (4) |
|
Chapter 2 Operating System Overview |
|
|
45 | (54) |
|
2.1 Operating System Objectives and Functions |
|
|
45 | (5) |
|
2.2 The Evolution of Operating Systems |
|
|
50 | (10) |
|
|
|
60 | (11) |
|
2.4 Characteristics of Modern Operating Systems |
|
|
71 | (3) |
|
|
|
74 | (11) |
|
2.6 Traditional UNIX Systems |
|
|
85 | (3) |
|
|
|
88 | (2) |
|
2.8 Outline of the Remainder of the Book |
|
|
90 | (4) |
|
|
|
94 | (1) |
|
|
|
95 | (4) |
| PART TWO PROCESSES |
|
99 | (188) |
|
Chapter 3 Process Description And Control |
|
|
101 | (44) |
|
|
|
102 | (15) |
|
|
|
117 | (10) |
|
|
|
127 | (8) |
|
3.4 UNIX SVR4 Process Management |
|
|
135 | (5) |
|
|
|
140 | (1) |
|
|
|
141 | (1) |
|
|
|
141 | (4) |
|
Chapter 4 Threads, SMP, and Microkernels |
|
|
145 | (42) |
|
4.1 Processes and Threads |
|
|
145 | (15) |
|
4.2 Symmetric Multiprocessing (SMP) |
|
|
160 | (3) |
|
|
|
163 | (7) |
|
4.4 Solaris Thread and SMP Management |
|
|
170 | (6) |
|
4.5 Windows NT Thread and SMP Management |
|
|
176 | (6) |
|
|
|
182 | (1) |
|
|
|
183 | (1) |
|
|
|
183 | (4) |
|
Chapter 5 Concurrency: Mutual Exclusion and Synchronization |
|
|
187 | (66) |
|
5.1 Principles of Concurrency |
|
|
188 | (9) |
|
5.2 Mutual Exclusion: Software Approaches |
|
|
197 | (7) |
|
5.3 Mutual Exclusion: Hardware Support |
|
|
204 | (4) |
|
|
|
208 | (14) |
|
|
|
222 | (8) |
|
|
|
230 | (7) |
|
5.7 Readers/Writers Problem |
|
|
237 | (5) |
|
|
|
242 | (1) |
|
|
|
242 | (1) |
|
|
|
243 | (10) |
|
Chapter 6 Concurrency: Deadlock And Starvation |
|
|
253 | (34) |
|
6.1 Principles of Deadlock |
|
|
253 | (7) |
|
|
|
260 | (2) |
|
|
|
262 | (4) |
|
|
|
266 | (3) |
|
6.5 An Integrated Deadlock Strategy |
|
|
269 | (1) |
|
6.6 Dining Philosophers Problem |
|
|
270 | (1) |
|
6.7 UNIX Concurrency Mechanisms |
|
|
271 | (4) |
|
6.8 Solaris Thread Synchronization Primitives |
|
|
275 | (3) |
|
6.9 Windows NT Concurrency Mechanisms |
|
|
278 | (1) |
|
|
|
279 | (2) |
|
|
|
281 | (1) |
|
|
|
281 | (6) |
| PART THREE MEMORY |
|
287 | (90) |
|
Chapter 7 Memory Management |
|
|
289 | (30) |
|
7.1 Memory Management Requirements |
|
|
289 | (3) |
|
|
|
292 | (12) |
|
|
|
304 | (3) |
|
|
|
307 | (2) |
|
|
|
309 | (1) |
|
|
|
309 | (1) |
|
|
|
310 | (1) |
|
Appendix 7A Loading and Linking |
|
|
311 | (8) |
|
|
|
319 | (58) |
|
8.1 Hardware and Control Structures |
|
|
320 | (19) |
|
8.2 Operating System Software |
|
|
339 | (21) |
|
8.3 UNIX and Solaris Memory Management |
|
|
360 | (5) |
|
8.4 Windows NT Memory Management |
|
|
365 | (3) |
|
|
|
368 | (1) |
|
|
|
369 | (1) |
|
|
|
369 | (3) |
|
|
|
372 | (5) |
| PART FOUR SCHEDULING |
|
377 | (72) |
|
Chapter 9 Uniprocessor Scheduling |
|
|
379 | (38) |
|
|
|
380 | (4) |
|
9.2 Scheduling Algorithms |
|
|
384 | (22) |
|
9.3 Traditional UNIX Scheduling |
|
|
406 | (2) |
|
|
|
408 | (1) |
|
|
|
409 | (1) |
|
|
|
409 | (4) |
|
Appendix 9A Response Time |
|
|
413 | (4) |
|
Chapter 10 Multiprocessor and Real-Time Scheduling |
|
|
417 | (32) |
|
10.1 Multiprocessor Scheduling |
|
|
417 | (12) |
|
10.2 Real-Time Scheduling |
|
|
429 | (13) |
|
10.3 UNIX SVR4 Scheduling |
|
|
442 | (2) |
|
10.4 Windows NT Scheduling |
|
|
444 | (2) |
|
|
|
446 | (1) |
|
|
|
447 | (1) |
|
|
|
447 | (2) |
| PART FIVE INPUT/OUTPUT AND FILES |
|
449 | (90) |
|
Chapter 11 I/O Management and Disk Scheduling |
|
|
451 | (50) |
|
|
|
451 | (2) |
|
11.2 Organization of the I/O Function |
|
|
453 | (3) |
|
11.3 Operating System Design Issues |
|
|
456 | (4) |
|
|
|
460 | (3) |
|
|
|
463 | (8) |
|
|
|
471 | (8) |
|
|
|
479 | (3) |
|
|
|
482 | (4) |
|
|
|
486 | (2) |
|
|
|
488 | (1) |
|
11.11 Recommended Reading |
|
|
489 | (1) |
|
|
|
490 | (2) |
|
Appendix 11A Disk Storage Devices |
|
|
492 | (9) |
|
Chapter 12 File Management |
|
|
501 | (38) |
|
|
|
501 | (6) |
|
|
|
507 | (5) |
|
|
|
512 | (3) |
|
|
|
515 | (3) |
|
|
|
518 | (61) |
|
12.6 Secondary Storage Management |
|
|
579 | |
|
12.7 UNIX File Management |
|
|
527 | (2) |
|
12.8 Windows NT File System |
|
|
529 | (6) |
|
|
|
535 | (1) |
|
12.10 Recommended Reading |
|
|
535 | (4) |
|
|
|
539 | (1) |
| PART SIX DISTRIBUTED SYSTEMS |
|
539 | (84) |
|
Chapter 13 Distributed Processing, Client/Server, and Clusters |
|
|
543 | (42) |
|
13.1 The Need for a Protocol Architecture |
|
|
544 | (1) |
|
13.2 The TCP/IP Protocol Suite |
|
|
545 | (8) |
|
13.3 The OSI Protocol Architecture |
|
|
553 | (1) |
|
13.4 Client/Server Computing |
|
|
553 | (12) |
|
13.5 Distributed Message Passing |
|
|
565 | (4) |
|
13.6 Remote Procedure Calls |
|
|
569 | (4) |
|
|
|
573 | (4) |
|
|
|
577 | (2) |
|
|
|
579 | (3) |
|
|
|
582 | (1) |
|
13.11 Recommended Reading |
|
|
583 | (1) |
|
|
|
583 | (2) |
|
Chapter 14 Distributed Process Management |
|
|
585 | (38) |
|
|
|
585 | (7) |
|
14.2 Distributed Global States |
|
|
592 | (5) |
|
14.3 Distributed Mutual Exclusion |
|
|
597 | (10) |
|
14.4 Distributed Deadlock |
|
|
607 | (13) |
|
|
|
620 | (1) |
|
|
|
620 | (1) |
|
|
|
621 | (2) |
| PART SEVEN SECURITY |
|
623 | (60) |
|
|
|
625 | (58) |
|
|
|
626 | (6) |
|
|
|
632 | (4) |
|
|
|
636 | (14) |
|
15.4 Viruses and Related Threats |
|
|
650 | (8) |
|
|
|
658 | (2) |
|
|
|
660 | (8) |
|
|
|
668 | (6) |
|
|
|
674 | (1) |
|
|
|
675 | (1) |
|
|
|
675 | (2) |
|
|
|
677 | (6) |
|
|
|
683 | (60) |
|
Appendix A Queuing Analysis |
|
|
683 | (26) |
|
A.1 Why Queuing Analysis? |
|
|
684 | (2) |
|
|
|
686 | (5) |
|
|
|
691 | (3) |
|
|
|
694 | (1) |
|
|
|
695 | (4) |
|
|
|
699 | (3) |
|
|
|
702 | (1) |
|
|
|
702 | (1) |
|
Annex A Just Enough Probability and Statistics |
|
|
703 | (6) |
|
Appendix B Object-Oriented Design |
|
|
709 | (10) |
|
|
|
709 | (1) |
|
B.2 Object-Oriented Concepts |
|
|
709 | (5) |
|
B.3 Benefits of Object-Oriented Design |
|
|
714 | (1) |
|
|
|
715 | (2) |
|
|
|
717 | (2) |
|
Appendix C Programming and Operating System Projects |
|
|
719 | (4) |
|
C.1 Projects for Teaching Operating Systems |
|
|
719 | (1) |
|
|
|
720 | (1) |
|
|
|
721 | (1) |
|
C.4 Reading/Report Assignments |
|
|
722 | (1) |
|
Appendix D OSP: An Environment for Operating System Projects |
|
|
723 | (8) |
|
|
|
723 | (3) |
|
D.2 Innovative Aspects of OSP |
|
|
726 | (2) |
|
D.3 Comparison with Other Operating System Courseware |
|
|
728 | (1) |
|
D.4 The OSP Software Distribution |
|
|
729 | (1) |
|
|
|
729 | (1) |
|
|
|
730 | (1) |
|
Appendix E BACI: The Ben-Ari Concurrent Programming System |
|
|
731 | (12) |
|
|
|
731 | (1) |
|
|
|
732 | (3) |
|
E.3 Examples of BACI Programs |
|
|
735 | (4) |
|
|
|
739 | (3) |
|
E.5 Enhancements to the BACI System |
|
|
742 | (1) |
| Glossary |
|
743 | (10) |
| References |
|
753 | (17) |
| Index |
|
770 | |