| Preface |
|
xi | |
| Chapter 0 Reader's Guide |
|
1 | (5) |
|
|
|
2 | (1) |
|
|
|
3 | (1) |
|
0.3 Internet and Web Resources |
|
|
4 | (2) |
| PART ONE BACKGROUND |
|
6 | (100) |
|
Chapter 1 Computer System Overview |
|
|
8 | (43) |
|
|
|
9 | (1) |
|
|
|
10 | (3) |
|
1.3 Instruction Execution |
|
|
13 | (3) |
|
|
|
16 | (11) |
|
|
|
27 | (3) |
|
|
|
30 | (4) |
|
1.7 I/O Communication Techniques |
|
|
34 | (3) |
|
1.8 Recommended Readings and Web Sites |
|
|
37 | (1) |
|
1.9 Key Terms, Review Questions, and Problems |
|
|
38 | (2) |
|
Appendix 1A Performance Characteristics of Two-Level Memories |
|
|
40 | (6) |
|
Appendix 1B Procedure Control |
|
|
46 | (5) |
|
Chapter 2 Operating System Overview |
|
|
51 | (55) |
|
2.1 Operating System Objectives and Functions |
|
|
52 | (4) |
|
2.2 The Evolution of Operating Systems |
|
|
56 | (10) |
|
|
|
66 | (12) |
|
2.4 Developments Leading to Modern Operating Systems |
|
|
78 | (3) |
|
2.5 Microsoft Windows Overview |
|
|
81 | (10) |
|
2.6 Traditional UNIX Systems |
|
|
91 | (3) |
|
|
|
94 | (1) |
|
|
|
95 | (6) |
|
2.9 Recommended Readings and Web Sites |
|
|
101 | (2) |
|
2.10 Key Terms, Review Questions, and Problems |
|
|
103 | (3) |
| PART TWO PROCESSES |
|
106 | (194) |
|
Chapter 3 Process Description and Control |
|
|
108 | (49) |
|
|
|
109 | (3) |
|
|
|
112 | (14) |
|
|
|
126 | (9) |
|
|
|
135 | (9) |
|
3.5 UNIX SVR4 Process Management |
|
|
144 | (4) |
|
|
|
148 | (1) |
|
|
|
149 | (1) |
|
3.8 Key Terms, Review Questions, and Problems |
|
|
149 | (8) |
|
Programming Project One: Developing a Shell |
|
|
153 | (4) |
|
Chapter 4 Threads, SMP, and Microkernels |
|
|
157 | (44) |
|
4.1 Processes and Threads |
|
|
158 | (14) |
|
4.2 Symmetric Multiprocessing |
|
|
172 | (4) |
|
|
|
176 | (6) |
|
4.4 Windows Thread and SMP Management |
|
|
182 | (6) |
|
4.5 Solaris Thread and SMP Management |
|
|
188 | (6) |
|
4.6 Linux Process and Thread Management |
|
|
194 | (2) |
|
|
|
196 | (1) |
|
|
|
197 | (1) |
|
4.9 Key Terms, Review Questions, and Problems |
|
|
198 | (3) |
|
Chapter 5 Concurrency: Mutual Exclusion and Synchronization |
|
|
201 | (54) |
|
5.1 Principles of Concurrency |
|
|
203 | (9) |
|
5.2 Mutual Exclusion: Hardware Support |
|
|
212 | (3) |
|
|
|
215 | (12) |
|
|
|
227 | (8) |
|
|
|
235 | (6) |
|
5.6 Readers/Writers Problem |
|
|
241 | (4) |
|
|
|
245 | (1) |
|
|
|
246 | (1) |
|
5.9 Key Terms, Review Questions, and Problems |
|
|
247 | (8) |
|
Chapter 6 Concurrency: Deadlock and Starvation |
|
|
255 | (45) |
|
6.1 Principles of Deadlock |
|
|
256 | (9) |
|
|
|
265 | (1) |
|
|
|
266 | (5) |
|
|
|
271 | (3) |
|
6.5 An Integrated Deadlock Strategy |
|
|
274 | (1) |
|
6.6 Dining Philosophers Problem |
|
|
275 | (4) |
|
6.7 UNIX Concurrency Mechanisms |
|
|
279 | (2) |
|
6.8 Linux Kernel Concurrency Mechanisms |
|
|
281 | (7) |
|
6.9 Solaris Thread Synchronization Primitives |
|
|
288 | (3) |
|
6.10 Windows Concurrency Mechanisms |
|
|
291 | (2) |
|
|
|
293 | (1) |
|
6.12 Recommended Readings |
|
|
294 | (1) |
|
6.13 Key Terms, Review Questions, and Problems |
|
|
294 | (6) |
| PART THREE MEMORY |
|
300 | (90) |
|
Chapter 7 Memory Management |
|
|
302 | (30) |
|
7.1 Memory Management Requirements |
|
|
303 | (3) |
|
|
|
306 | (11) |
|
|
|
317 | (3) |
|
|
|
320 | (2) |
|
|
|
322 | (1) |
|
|
|
322 | (1) |
|
7.7 Key Terms, Review Questions, and Problems |
|
|
323 | (3) |
|
Appendix 7A Loading and Linking |
|
|
326 | (6) |
|
|
|
332 | (58) |
|
8.1 Hardware and Control Structures |
|
|
333 | (19) |
|
8.2 Operating System Software |
|
|
352 | (19) |
|
8.3 UNIX and Solaris Memory Management |
|
|
371 | (5) |
|
8.4 Linux Memory Management |
|
|
376 | (3) |
|
8.5 Windows Memory Management |
|
|
379 | (2) |
|
|
|
381 | (1) |
|
8.7 Recommended Readings and Web Sites |
|
|
381 | (1) |
|
8.8 Key Terms, Review Questions, and Problems |
|
|
382 | (4) |
|
|
|
386 | (4) |
| PART FOUR SCHEDULING |
|
390 | (91) |
|
Chapter 9 Uniprocessor Scheduling |
|
|
392 | (49) |
|
9.1 Types of Processor Scheduling |
|
|
393 | (4) |
|
9.2 Scheduling Algorithms |
|
|
397 | (23) |
|
9.3 Traditional UNIX Scheduling |
|
|
420 | (2) |
|
|
|
422 | (1) |
|
|
|
422 | (1) |
|
9.6 Key Terms, Review Questions, and Problems |
|
|
423 | (3) |
|
Appendix 9A Response Time |
|
|
426 | (2) |
|
Appendix 9B Queuing Systems |
|
|
428 | (13) |
|
Programming Project Two: The HOST Dispatcher Shell |
|
|
434 | (7) |
|
Chapter 10 Multiprocessor and Real-Time Scheduling |
|
|
441 | (40) |
|
10.1 Multiprocessor Scheduling |
|
|
442 | (11) |
|
10.2 Real-Time Scheduling |
|
|
453 | (15) |
|
|
|
468 | (3) |
|
10.4 UNIX SVR4 Scheduling |
|
|
471 | (2) |
|
|
|
473 | (3) |
|
|
|
476 | (1) |
|
10.7 Recommended Readings |
|
|
476 | (1) |
|
10.8 Key Terms, Review Questions, and Problems |
|
|
477 | (4) |
| PART FIVE INPUT/OUTPUT AND FILES |
|
|
Chapter 11 I/O Management and Disk Scheduling |
|
|
481 | (54) |
|
|
|
482 | (1) |
|
11.2 Organization of the I/O Function |
|
|
483 | (3) |
|
11.3 Operating System Design Issues |
|
|
486 | (4) |
|
|
|
490 | (3) |
|
|
|
493 | (8) |
|
|
|
501 | (8) |
|
|
|
509 | (4) |
|
|
|
513 | (3) |
|
|
|
516 | (3) |
|
|
|
519 | (3) |
|
|
|
522 | (1) |
|
11.12 Recommended Readings and Web Sites |
|
|
522 | (2) |
|
11.13 Key Terms, Review Questions, and Problems |
|
|
524 | (2) |
|
Appendix 11A Disk Storage Devices |
|
|
526 | (9) |
|
Chapter 12 File Management |
|
|
535 | (43) |
|
|
|
536 | (5) |
|
12.2 File Organization and Access |
|
|
541 | (5) |
|
|
|
546 | (4) |
|
|
|
550 | (2) |
|
|
|
552 | (2) |
|
12.6 Secondary Storage Management |
|
|
554 | (8) |
|
12.7 UNIX File Management |
|
|
562 | (3) |
|
12.8 Linux Virtual File System |
|
|
565 | (5) |
|
|
|
570 | (4) |
|
|
|
574 | (1) |
|
12.11 Recommended Readings |
|
|
575 | (1) |
|
12.12 Key Terms, Review Questions, and Problems |
|
|
576 | (2) |
| PART SIX DISTRIBUTED SYSTEMS AND SECURITY |
|
578 | (151) |
|
|
|
582 | (25) |
|
13.1 The Need for a Protocol Architecture |
|
|
584 | (2) |
|
13.2 The TCP/IP Protocol Architecture |
|
|
586 | (7) |
|
|
|
593 | (3) |
|
|
|
596 | (3) |
|
|
|
599 | (1) |
|
13.6 Recommended Readings and Web Sites |
|
|
599 | (1) |
|
13.7 Key Terms, Review Questions, and Problems |
|
|
600 | (2) |
|
Appendix 13A The Trivial File Transfer Protocol |
|
|
602 | (5) |
|
Chapter 14 Distributed Processing, Client/Server, and Clusters |
|
|
607 | (34) |
|
14.1 Client/Server Computing |
|
|
608 | (11) |
|
14.2 Distributed Message Passing |
|
|
619 | (2) |
|
14.3 Remote Procedure Calls |
|
|
621 | (4) |
|
|
|
625 | (6) |
|
14.5 Windows Cluster Server |
|
|
631 | (1) |
|
|
|
632 | (3) |
|
14.7 Beowulf and Linux Clusters |
|
|
635 | (2) |
|
|
|
637 | (1) |
|
14.9 Recommended Readings and Web Sites |
|
|
638 | (1) |
|
14.10 Key Terms, Review Questions, and Problems |
|
|
639 | (2) |
|
Chapter 15 Distributed Process Management |
|
|
641 | (36) |
|
|
|
642 | (7) |
|
15.2 Distributed Global States |
|
|
649 | (4) |
|
15.3 Distributed Mutual Exclusion |
|
|
653 | (10) |
|
15.4 Distributed Deadlock |
|
|
663 | (11) |
|
|
|
674 | (1) |
|
15.6 Recommended Readings |
|
|
674 | (1) |
|
15.7 Key Terms, Review Questions, and Problems |
|
|
675 | (2) |
|
|
|
677 | (52) |
|
|
|
678 | (5) |
|
|
|
683 | (6) |
|
|
|
689 | (12) |
|
|
|
701 | (10) |
|
|
|
711 | (4) |
|
|
|
715 | (4) |
|
|
|
719 | (1) |
|
16.8 Recommended Readings and Web Sites |
|
|
720 | (1) |
|
16.9 Key Terms, Review Questions, and Problems |
|
|
721 | (3) |
|
|
|
724 | (5) |
| APPENDICES |
|
|
Appendix A Topics in Concurrency |
|
|
729 | (22) |
|
A.1 Mutual Exclusion: Software Approaches |
|
|
730 | (4) |
|
A.2 Race Conditions and Semaphores |
|
|
734 | (9) |
|
|
|
743 | (4) |
|
|
|
747 | (4) |
|
Appendix B Object-Oriented Design |
|
|
751 | (12) |
|
|
|
752 | (1) |
|
B.2 Object-Oriented Concepts |
|
|
753 | (4) |
|
B.3 Benefits of Object-Oriented Design |
|
|
757 | (1) |
|
|
|
758 | (4) |
|
B.5 Recommended Readings and Web Sites |
|
|
762 | (1) |
|
Appendix C Programming and Operating System Projects |
|
|
763 | (5) |
|
C.1 Projects for Teaching Operating Systems |
|
|
764 | (1) |
|
|
|
765 | (1) |
|
|
|
766 | (1) |
|
|
|
766 | (1) |
|
C.5 Reading/Report Assignments |
|
|
767 | (1) |
|
Appendix D OSP: An Environment for Operating Systems Projects |
|
|
768 | (5) |
|
|
|
769 | (1) |
|
D.2 Innovative Aspects of OSP |
|
|
770 | (2) |
|
D.3 Comparison with Other Operating System Courseware |
|
|
772 | (1) |
|
Appendix E BACI: The Ben-Ari Concurrent Programming System |
|
|
773 | (12) |
|
|
|
774 | (1) |
|
|
|
774 | (3) |
|
E.3 Examples of BACI Programs |
|
|
777 | (5) |
|
|
|
782 | (2) |
|
E.5 Enhancements to the BACK System |
|
|
784 | (1) |
| Glossary |
|
785 | (9) |
| References |
|
794 | (14) |
| Index |
|
808 | |