Table of Content
Chapter 0 Guide for Readers and Instructors 0.1 Outline of the Book 0.2 A Roadmap for Readers and Instructors 0.3 Internet and Web Resources PART ONE BACKGROUND Chapter 1 Computer System Overview 1.1 Basic Elements 1.2 Evolution of the Microprocessor 1.3 Instruction Execution 1.4 Interrupts 1.5 The Memory Hierarchy 1.6 Cache Memory 1.7 Direct Memory Access 1.8 Multiprocessor and Multicore Organization 1.9 Recommended Reading and Web Sites 1.10 Key Terms, Review Questions, and Problems Appendix 1A Performance Characteristics of Two-Level Memory Chapter 2 Operating System Overview 2.1 Operating System Objectives and Functions 2.2 The Evolution of Operating Systems 2.3 Major Achievements 2.4 Developments Leading to Modern Operating Systems 2.5 Virtual Machines 2.6 OS Design Considerations for Multiprocessor and Multicore 2.7 Microsoft Windows Overview 2.8 Traditional UNIX Systems 2.9 Modern UNIX Systems 2.10 Linux 2.11 Android 2.12 Recommended Reading and Web Sites 2.13 Key Terms, Review Questions, and Problems PART TWO PROCESSES Chapter 3 Process Description and Control 3.1 What Is a Process? 3.2 Process States 3.3 Process Description 3.4 Process Control 3.5 Execution of the Operating System 3.6 UNIX SVR4 Process Management 3.7 Summary 3.8 Recommended Reading and Animations 3.9 Key Terms, Review Questions, and Problems Chapter 4 Threads 4.1 Processes and Threads 4.2 Types of Threads 4.3 Multicore and Multithreading 4.4 Windows 8 Process and Thread Management 4.5 Solaris Thread and SMP Management 4.6 Linux Process and Thread Management 4.7 Android Process and Thread Management 4.8 Mac OS X Grand Central Dispatch 4.9 Summary 4.10 Recommended Reading 4.11 Key Terms, Review Questions, and Problems Chapter 5 Concurrency: Mutual Exclusion and Synchronization 5.1 Principles of Concurrency 5.2 Mutual Exclusion: Hardware Support 5.3 Semaphores 5.4 Monitors 5.5 Message Passing 5.6 Readers/Writers Problem 5.7 Summary 5.8 Recommended Reading and Animations 5.9 Key Terms, Review Questions, and Problems Chapter 6 Concurrency: Deadlock and Starvation 6.1 Principles of Deadlock 6.2 Deadlock Prevention 6.3 Deadlock Avoidance 6.4 Deadlock Detection 6.5 An Integrated Deadlock Strategy 6.6 Dining Philosophers Problem 6.7 UNIX Concurrency Mechanisms 6.8 Linux Kernel Concurrency Mechanisms 6.9 Solaris Thread Synchronization Primitives 6.10 Windows Concurrency Mechanisms 6.11 Android Interprocess Communications 6.12 Summary 6.13 Recommended Reading 6.14 Key Terms, Review Questions, and Problems PART THREE MEMORY Chapter 7 Memory Management 7.1 Memory Management Requirements 7.2 Memory Partitioning 7.3 Paging 7.4 Segmentation 7.5 Summary 7.6 Recommended Reading and Animations 7.8 Key Terms, Review Questions, and Problems Appendix 7A Loading and Linking Chapter 8 Virtual Memory 8.1 Hardware and Control Structures 8.2 Operating System Software 8.3 UNIX and Solaris Memory Management 8.4 Linux Memory Management 8.5 Windows Memory Management 8.6