1 INTRODUCTION 1.1. WHAT IS AN OPERATING SYSTEM? 1.2. HISTORY OF OPERATING SYSTEMS 1.3. THE OPERATING SYSTEM ZOO 1.4. COMPUTER HARDWARE REVIEW 1.5. OPERATING SYSTEM CONCEPTS 1.6. SYSTEM CALLS 1.7. OPERATING SYSTEM STRUCTURE 1.8. RESEARCH ON OPERATING SYSTEMS 1.9. OUTLINE OF THE REST OF THIS BOOK 1.1O. METRIC UNITS 1.11. SUMMARY 2 PROCESSES AND THREADS 2.1. PROCESSES 2.2. THREADS 2.3. INTERPROCESS COMMUNICATION 2.4. CLASSICAL IPC PROBLEMS 2.5. SCHEDULING 2.6. RESEARCH ON PROCESSES AND THREADS 2.7. SUMMARY 3 DEADLOCKS 3.1. RESOURCES 3.2. INTRODUCTION TO DEADLOCKS 3.3. THE OSTRICH ALGORITHM 3.4. DEADLOCK DETECTION AND RECOVERY 3.5. DEADLOCK AVOIDANCE 3.6. DEADLOCK PREVENTION 3.7. OTHER ISSUES 3.8. RESEARCH ON DEADLOCKS 3.9. SUMMARY 4 MEMORY MANAGEMENT 4.1. BASIC MEMORY MANAGEMENT 4.2. SWAPPINO 4.3. VIRTUAL MEMORY 4.4. PAGE REPLACEMENT ALGORITHMS 4.5. MODELING PAGE REPLACEMENT ALGORITHMS 4.6. DESIGN ISSUES FOR PAGING SYSTEMS 4.7. IMPLEMENTATION ISSUES 4.8. SEGMENTATION 4.9. RESEARCH ON MEMORY MANAGEMENT 4.1O. SUMMARY 5 INPUTIOUTPUT 5.1. PRINCIPLES OF UO HARDWARE 5.2. PRINCIPLES OF UO SOFfWARE 5.3. UO SOFfWARE LAYERS 5.4. DlSKS 5.5. CLOCKS 5.6. CHARACTER-ORIENTED TERMINALS 5.7. GRAPHICAL USER INTERFACES 5.8. NETWORK TERMINALS 5.9. POWER MANAGEMENT 5.1O. RESEARCH ON INPUT/OUTPUT 5.11. SUMMARY 6 FILE SYSTEMS 6.1. FILES 6.2. DIRECTORIES 6.3. FILE SYSTEM IMPLEMENTATION 6.4. EXAMPLE FILE SYSTEMS 6.5. RESEARCH ON nLE SYSTEMS 6.6. SUMMARY 7 MULTIMEDIA OPERATING SYSTEMS 7.1. INTRODUCTION TO MULTIMEDIA 7.2. MULTIMEDIA FILES 7.3. VIDEO COMPRESSION 7.4. MULTIMEDIA PROCESS SCFIEDULING 7.5. MULTIMEDIA FILE SYSTEM PARADIGMS 7.6. FILE PLACEMENT 7.7. CACHING 7.8. DISK SCHEDULING FOR MULTIMEDIA 7.9. RESEARCH ON MULTIMEDIA 7.1O. SUMMARY 8 MULTIPLE PROCESSOR SYSTEMS 8.1. MULTIPROCESSORS 8.2. MULTICOMPUTERS 8.3. DISTRIBUTED SYSTEMS 8.4. RESEARCH ON MULTIPLE PROCESSOR SYSTEMS 8.5. SUMMARY 9 SECURITY 9.1. THE SECURITY ENVIRONMENT 9.2. BASICS OF CRYPTOGRAPHY 9.3. USER AUTHENTICATION 9.4. ATTACKS FROM INSIDE THE SYSTEM 9.5. ATTACKS FROM OUTSIDE THE SYSTEM 9.6. PROTECTION MECHANISMS 9.7. TRUSTED SYSTEMS 9.8. RESEARCH ON SECURITY 9.9. SUMMARY 10 CASE STUDY 1: UNIX AND LINUX l0.1. HISTORY OF UNIX 1O.2. OVERVIEW OF UNIX 1O.3. PROCESSES IN UNIX 1O.4. MEMORY MANAGEMENT IN UNIX 1O.5. INPUT/OUTPUT IN UNIX 1O.6. THE UNIX FILE SYSTEM 1O.7. SECURITY IN UNIX 1O.8. SUMMARY 11 CASE STUDY 2: WINDOWS 2000 11.1. HISTORY OF WINDOWS 2000 11.2. PROGRAMMING WINDOWS 2000 11.3. SYSTEM STRUCTURE 11.4. PROCESSES AND THREADS IN WINDOWS 2000 11.5. MEMORY MANAGEMENT 11.6. INPUT/OUTPUT IN WINDOWS 2000 11.7. THE WINDOWS 2000 FILE SYSTEM 11.8. SECURITY IN WINDOWS 2000 11.9. CACHING IN WINDOWS 2000 11.1O. SUMMARY 12 OPERATING SYSTEM DESIGN 12.1. THE NATURE OF THE DESIGN PROBLEM 12.2. INTERFACE DESIGN 12.3. IMPLEMENTATION 12.4. PERFORMANCE 12.5. PROJECT MANAGEMENT 12.6. TRENDS IN OPERATING SYSTEM DESIGN 12.7. SUMMARY 13 READING LIST AND BIBLIOGRAPHY 13.1. SUGGESTIONS FOR FURTHER READING 13.2. ALPHABETICAL BIBLIOGRAPHY INDEX