TY - BOOK AU - Nutt, Gary TI - Operating systems SN - 9788131723593 (pb) U1 - 005.43 PY - 2004/// CY - Delhi PB - Pearson KW - System Programme N1 - Chapter 1 Introduction 1. 1 Computers and Software General System Software Resource Abstraction Example: An Abstraction of a Disk Drive Resource Sharing Abstract Machines and Transparent Resomce Sharing Explicit Resource Sharing 1.2 Operating System Strategies Batch Systems The User's Perspective Batch Processing Technology Example: Batch Files Timesharing Systems The User's Perspective Timesharing Technology Example: The UNDC Timesharing System Personal Computers and Workstations The User's Perspective OS Technology Contributions to Modem OS Technology Example: The Microsoft Windows OS Family Embedded Systems The User's Perspective OS Technology Contributions to Modem OS Technology Example: VxWorks Small, Communicating Computers The User's Persepective OS Technology Example: Windows CE (Pocket PC) Networks The Genesis of Modem Operating Systems 1.3 SUMMARY 1.4 Exercises Operating System Architecture 2.1 Basic Functions Device Management Process, Thread, and Resource Management Memory Management File Management 2.2 GENERAL IMPi-EMENTATlON CONSIDERATIONS Performance Exclusive Use of Resources Processor Modes Kernels Requesting Services from the Operating System Software Modularization 2.3 Contemporary OS Kernels UNDC Kernels Btampte: Linux The Windows NT Executive and Kernel 2.4 SUMMARY 2.5 EXERCISES Lab Exercise 2.1 Observing OS Behavior Background Attacking the Problem Processes and Threads, The Task at hand The Abstract Machine for Classic Processes Supporting Modem Processes and Threads Resources The Process Address Space OS Families Process Manager Responsibilities 3.2 The Hardware Process 3. 3 The Abstract machine interface 3.4 The Thread Management Advantages of Using Threads Thread Control Block (TCB) Thread State Diagram Operations on Therads Thread Synchronization Thread Levels 3. 5 The Process Abstraction Bffampte: Linux Process Descriptor Example: Windows NT/2000/XP Process Descriptors 3.6 THE Thread Abstraction Example: Linux Thread Descriptor Example: Windows NT/2000/XP Thread Descriptors 3.7 STATE Diagrams Example: UNDC State Diagram 3.7 Resource managers 3. 8 Generalizing Process Wanagewent policies Refming the Process Manager Specializing Resource Allocation Strategies 3.9 SUMMARY 3.10 Exercises Lab Btercise 3.1 Kernel Timers Background Attacking the Problem Lab Exercise 3.2 Manipulating Kernel Objects 115 Part A PartB Part C Background Attacking the Problem Scheduling Overview 4.2 SCHEDULING MECHANISMS The Process Scheduler Organiaation Saving the Context Voluntary CPU Sharing Involuntary CPU Sharing Performance 4.3 STRATEGY SELECTION Scheduler Characteristics A Model to Study Scheduling Emmpte: Partitioning a Process into Small Processes Example: Approximating System Load 4.4 Nonpreemptive Strategies First-come-first-served Example: Predicting Wait Times for FCFS Shortest Job Next Priority Scheduling Deadline Scheduling 4.5 PREEMPTIVE STRATEGIES Round Robin Multiple-Level Queues 4.6 IMPLEMENTING THE SCHEDULER Example: The Linux Scheduling Mechanism Example: BSD UNIX Scheduling Policy Example: Windows NT/2000/XP Thread Scheduling 4'7 Summary 4.8 Exercises Lah Exercise Analyzing the Round Robin SCHEDULING Background Attacking the Problem Chapter 5 Basic Synchronization Principles 5. 1 COOPERATING PROCESSES Critical Sections _ . Deadlock Resource Sharing 5.2 EVOl-VING FROM THE CLASSIC SOLUTION 5.3 Semaphores; The Basis of modern Solutions Principles of Operation Example: Using Semaphores Practical Considerations 5.4 Synchronization in Shared Memory Multiprocessors 5.5 Summary 5.6 Exercises Lab Exercise 5,1 Bounded Buffer Problem Background Attacking the Problem Chafer 6 High-level Synchronization and Interprocess Communication 6.1 ALTERNATIVE SYNCHRONIZATION PRIMITIVES AND Synchronization Example: Using and Synchronization to Solve the Dining Philosophers Problem Events Example: Using Generic Events Example: Windows NT/2000/XP Dispatcher Objects 6.2 Monitors Principles of Operation Condition Variable's Example: Using^Monitors Some Practical Aspects of Using Monitors 6.3 INTERPROCESS COMMUNICATION The Pipe Model Message Passing Mechanisms Mailboxes Message Protocols Using the send() and receive () Operations Example: Synchronized IPG Deferred Message Copying 6.4. SUMMARY 6.5 EXERCISES Lab Beercise 6.1 Using Pipes Background Attacking the Problem Lab Beercise 6.2 Refining the Shell Part A PartB PartC PartD Background Attacking the Problem DEADLOCK BACKOROUNP Prevention Avoidance Detection and Recovery Manual Deadlock Management 7.2 A System Deadlock Model Example: Single Resource Type 7.3 PREVENTION Hold and Wait Circular Wait Allowing Preemption 7.4 Avoidance The Banker's Algorithm Exahple: Using the Banker's Algorithm 7.5 Detection and Recovery Serially Reusable Resources Example: Serially Reusable Resource Graphs ' Consumable Resources General Resource Systems Recovery 7.6 SUMMARY 7.7 EXERCISES BASIC MEMORY MANAGEMENT The basics 8. 2 The Address Space Abstraction Managing the Address Space Example: Static Address Binding Dynamic Memory for Data Structures Modem Memory Binding 8.3 MEivioRY Allocation Fixed-Partition Memory Strategies Variable-Partition Memory Strategies Example: The Cost of Moving Programs Contemporary Allocation Strategies 8.4. DYNAMIC ADDRESS SPACE BINDING Runtime Boimd Checking: The Isolation Mechanism 8.5 MODERN MEMORY MANAGER STRATEGIES Swapping Virtual Memory Example: Using Cache Memory Shared-Memory Multiprocessors 8.6 SUMMARY 8.7 EXERCISES Uh Exercise 8.1 Using Shared memory Backgroimd Attacking the Problem Chapter 9 Basic Virtual Memory 9.1 THE Task AT Hand 9.2 ADDRESS Translation Address Space Mapping Segmentation and Paging 10.1 9. 3 Paging Paging Virtual Address Translation Example: Contemporary Page Table Implementations 9.4 STATIC PAGING Ai-GORITHMS The Fetch Policy Demand Paging Algorithms Stack Algorithms Implementing LRU Paging Performance 9.5 DYNAMIC PAGING ALGORITHMS The Working Set Algorithm Example: Working Set Algorithm Implementing the Working Set Algorithm Example: Taking Advantage of Paging with IPG Example: Windows NT/2000/XP Virtual Memory Example: Linux Virtual Memory 9.6 SEGMENTATION Address Translation Implementation Example: The Multics Segmentation System 9.7 Memory-Mapped Files 9.8 SUMMARY 9.9 exercises UB Exercise 9.1 Memory-Mapped Files Backgroimd Attacking the Problem DEVICE MANAGEMENT THE I/O SYSTEM Device Manager Abstraction I/O-Processor Overlap within an Application I/O-Processor Overlap across Threads 10.2 I/O STRATEGIES Direct I/O with Polling Interrupt-Driven I/O Polling Versus Interrupt-Driven I/O Performance 10.3 DEVICE MANAGER DESIGN Device-dependent Driver Infrastructure Framework Servicing Interrupts Example: Linux Device I/O 10.4 BUFFERING 10.5 DEVICE CLASS CHARACTERISTICS Communication Devices Example: Asynchronous Serial Devices Sequentially Accessed Storage Devices Example: Traditional Magnetic Tape Randomly Accessed Storage Devices Example: Magnetic Disk Example: Optimizing Access on Magnetic Disks Example: CD-ROM and DVD 10.6 SUMMARY 10.7 EXERCISES Lab Exercise 10.1 A Floppy Disk Driver Part A PartB Part C Backgroimd Attacking the Problem Chapter 11 File Management 11.1 THE Task at Hand 11.2 Files Low-level Files Structured Files Database Management Systems Multimedia Storage 11.3 L.OW-LEVEL FILE IMPLEMENTATIONS „ The 0PEN() and close () Operations Example: UNIX Open and Close Block Management Example: UNIX File Structure Grampte: The DOS FAT File System Reading and Writing the Byte Stream 1 1.4 SUPPORTING HiGH-LEVEL Fii-E ABSTRACTIONS Structured Sequential Files Indexed Sequential Files Database Management Systems Multimedia Documents 11.5 DIRECTORIES Directory Stinctures Example: Some Directory Approaches 11.6 Implementing Directories Directory Entries Opening a File 11.7 File Systems Example: The ISO 9660 File System Mounting File Systems Heterogeneous File Systems 11.8 SUMMARY 1 1 .9 EXERCISES Lab Bcercise 11.1 A Simple File Manager Part A PartB PartC Backgroimd Attacking the Problem PROTECTION AND SECURITY 12.1 The Problem The Goal- Policy and Mechanism Context for Protection and Security The Cost of Protection Mechanisms 12.2 Authentication External User Authentication Example: Windows NT/2000/XP User Authentication Internal Thread/Process Authentication Authentication in the Network Software Authentication 12.3 AUTHORIZATION U\J y Ad Hoc Authorization Mechanisms A General Model for Authorization Implementing Security Policies Implementing General Authorization Mechanisms Protection Domains Implementing the Access Matrix 12.4 CRYPTOGRAPHY The Big Picture Private Key Encryption Public Key Encryption Example: PGP Encryption Internet Content Delivery 12.5 SUMMARY 12.6 Exercises Networks From Computer Cowiviunications TO NETWORKS Switched Networks Network Hardware Requirements Network Software Requirements 13.2 THE ISO OSI NETWORK ARCHITECTURE MODEL The Evolution of Network Protocols The ISO OSI Model 13.3 media access Control (MAC) PROTOCOLS The Physical Layer Example: Fast Physical Layers The Data Link Layer Contemporary Networks 13.4 THE Network layer : Internet Addresses Routing Using the Network Layer Example: Latency in the Internet 13.5 The Transport L.AYER Communication Ports Data Types Reliable Communication Example: Datagrams and Virtual Circuits Performance 13.6 USING THE TRANSPORT LAYER Naming and Addresses Example: The Domain Name Service The Client-Server Model 13.7 NETWORK SECURITY Transport Layer Security: Firewalls Network Layer Security: IPSEC 13.8 SUMMARY 13.9 Exercises : ImB Exercise 13.1 Using TCP/IP Background Example: The WinSock Package Attacking the Problem H Distributed System Overview 14.1 DISTRIBUTED OS MECHANISMS 14.2 DISTRIBUTED PRIMARY MEMORY Remote Memory Example: The Linda Programming Language Distributed Shared Memory 14.3 remote.Procedure call How Does RPC Work? Implementing RPC 14.4 REMOTE OBJECTS The Emerald System CORBA Java Remote Objects 14.5 Distributing Process Management General Process Management Process and Thread Creation Scheduling Migration and Load Balancing Distributed Synchronization 14.6 SUMMARY 14.7 EXERCISES LaB Exercise 74.1 Using Remote Procedure CALL Background Attacking the Problem 15 DISTRIBUTED FILE SYSTEMS 15.1 SHARING INFORMATION ACROSS THE NETWORK Explicit File Copying Systems , A Seamless File System Interface Distributing the Work 15.2 REMOTE File Systems The General Architecture Block Caching Crash Recovery 15.3 file-level CACHING The Andrew File System The LOCUS File System 15.4 directory Systems AND THEIR IMPLEWENTATIONS Filenames Opening a File 15.5 SUMMARY 15.6 EXERCISES DISTRIBUTED PROGRAMMING RUNTIME SYSTEMS 16.1 supporting Distributed Software WITH middleware 16.2 CUASSIC DISTRIBUTED APPLICATION PROGRAMS 16.3 MIDDLEWARE SUPPORT FOR CLASSIC DISTRIBUTED PROGRAMMING PVM The Beowulf Cluster Environment The OSF Distributed Computing Environment 16.4 DISTRIBUTED PROGRAMMING ON THE WEB 16.5 MlDDl-EWARE SUPPORT FOR MOBII-E CODE Java and the Java Virtual Machine The ECMA-33S Common Language Infrastructure 16.6 Summary 16.7 Exercises DESIGN Strategies 17.1 DESIGN CONSIDERATIONS Performance, Performance, Performance Trusted Software Modularization Portability 17.2 MONOLITHIC KERNELS Example: MS-DOS Example: The UNIX Kernel 17.3 Modular Organization . £)Mi»p/e; Choices: An Object-Oriented OS 17.4 EXTENSIBLE NUCLEUS, OR MICROKERNEL. Organization EMmple: The MACH Operating System 17.B Layered Organizations 17.6 Operating Systems for Distributed Systems Network Operating Systems Example: BSD UNIX Distributed Operating Systems Example: The CHORUS Operating System 17.7 Summary 17.8 Exercises 18 The Linux Kernel 18.1 The Linux kernei. 18.2 Kernel Organization Using Kernel Services Daemons Starting the Kernel Control In the Machine ' 18.3 MODUi-ES AND DEVICE MANAGEMENT ' Module Organization Module Installation and Removal 18.4 PROCESS AND RESOURCE MANAGEMENT Running the Process Manager Creating a New Task IPC and Synchronization The Scheduler 18.5 MEMORY Manager THe Virtual Address Space The Page Fault Handler 18.6 File Management 18.7 SUMMARY THE WINDOWS NT/2000/XP KERNEL 19.1 INTRODUCTION 19.2 The NT KERNEU Objects Threads Multifirocess Synchronization Traps, Interrupts, and Exceptions 19.3 the NT EXECUTIVE Object Manager Process and Thread Manager Virtual Memory Manager I/O Manager The Cache ManagerChapter 1 Introduction 1. 1 Computers and Software General System Software Resource Abstraction Example: An Abstraction of a Disk Drive Resource Sharing Abstract Machines and Transparent Resomce Sharing Explicit Resource Sharing 1.2 Operating System Strategies Batch Systems The User's Perspective Batch Processing Technology Example: Batch Files Timesharing Systems The User's Perspective Timesharing Technology Example: The UNDC Timesharing System Personal Computers and Workstations The User's Perspective OS Technology Contributions to Modem OS Technology Example: The Microsoft Windows OS Family Embedded Systems The User's Perspective OS Technology Contributions to Modem OS Technology Example: VxWorks Small, Communicating Computers The User's Persepective OS Technology Example: Windows CE (Pocket PC) Networks The Genesis of Modem Operating Systems 1.3 SUMMARY 1.4 Exercises Operating System Architecture 2.1 Basic Functions Device Management Process, Thread, and Resource Management Memory Management File Management 2.2 GENERAL IMPi-EMENTATlON CONSIDERATIONS Performance Exclusive Use of Resources Processor Modes Kernels Requesting Services from the Operating System Software Modularization 2.3 Contemporary OS Kernels UNDC Kernels Btampte: Linux The Windows NT Executive and Kernel 2.4 SUMMARY 2.5 EXERCISES Lab Exercise 2.1 Observing OS Behavior Background Attacking the Problem Processes and Threads, The Task at hand The Abstract Machine for Classic Processes Supporting Modem Processes and Threads Resources The Process Address Space OS Families Process Manager Responsibilities 3.2 The Hardware Process 3. 3 The Abstract machine interface 3.4 The Thread Management Advantages of Using Threads Thread Control Block (TCB) Thread State Diagram Operations on Therads Thread Synchronization Thread Levels 3. 5 The Process Abstraction Bffampte: Linux Process Descriptor Example: Windows NT/2000/XP Process Descriptors 3.6 THE Thread Abstraction Example: Linux Thread Descriptor Example: Windows NT/2000/XP Thread Descriptors 3.7 STATE Diagrams Example: UNDC State Diagram 3.7 Resource managers 3. 8 Generalizing Process Wanagewent policies Refming the Process Manager Specializing Resource Allocation Strategies 3.9 SUMMARY 3.10 Exercises Lab Btercise 3.1 Kernel Timers Background Attacking the Problem Lab Exercise 3.2 Manipulating Kernel Objects 115 Part A PartB Part C Background Attacking the Problem Scheduling Overview 4.2 SCHEDULING MECHANISMS The Process Scheduler Organiaation Saving the Context Voluntary CPU Sharing Involuntary CPU Sharing Performance 4.3 STRATEGY SELECTION Scheduler Characteristics A Model to Study Scheduling Emmpte: Partitioning a Process into Small Processes Example: Approximating System Load 4.4 Nonpreemptive Strategies First-come-first-served Example: Predicting Wait Times for FCFS Shortest Job Next Priority Scheduling Deadline Scheduling 4.5 PREEMPTIVE STRATEGIES Round Robin Multiple-Level Queues 4.6 IMPLEMENTING THE SCHEDULER Example: The Linux Scheduling Mechanism Example: BSD UNIX Scheduling Policy Example: Windows NT/2000/XP Thread Scheduling 4'7 Summary 4.8 Exercises Lah Exercise Analyzing the Round Robin SCHEDULING Background Attacking the Problem Chapter 5 Basic Synchronization Principles 5. 1 COOPERATING PROCESSES Critical Sections _ . Deadlock Resource Sharing 5.2 EVOl-VING FROM THE CLASSIC SOLUTION 5.3 Semaphores; The Basis of modern Solutions Principles of Operation Example: Using Semaphores Practical Considerations 5.4 Synchronization in Shared Memory Multiprocessors 5.5 Summary 5.6 Exercises Lab Exercise 5,1 Bounded Buffer Problem Background Attacking the Problem Chafer 6 High-level Synchronization and Interprocess Communication 6.1 ALTERNATIVE SYNCHRONIZATION PRIMITIVES AND Synchronization Example: Using and Synchronization to Solve the Dining Philosophers Problem Events Example: Using Generic Events Example: Windows NT/2000/XP Dispatcher Objects 6.2 Monitors Principles of Operation Condition Variable's Example: Using^Monitors Some Practical Aspects of Using Monitors 6.3 INTERPROCESS COMMUNICATION The Pipe Model Message Passing Mechanisms Mailboxes Message Protocols Using the send() and receive () Operations Example: Synchronized IPG Deferred Message Copying 6.4. SUMMARY 6.5 EXERCISES Lab Beercise 6.1 Using Pipes Background Attacking the Problem Lab Beercise 6.2 Refining the Shell Part A PartB PartC PartD Background Attacking the Problem DEADLOCK BACKOROUNP Prevention Avoidance Detection and Recovery Manual Deadlock Management 7.2 A System Deadlock Model Example: Single Resource Type 7.3 PREVENTION Hold and Wait Circular Wait Allowing Preemption 7.4 Avoidance The Banker's Algorithm Exahple: Using the Banker's Algorithm 7.5 Detection and Recovery Serially Reusable Resources Example: Serially Reusable Resource Graphs ' Consumable Resources General Resource Systems Recovery 7.6 SUMMARY 7.7 EXERCISES BASIC MEMORY MANAGEMENT The basics 8. 2 The Address Space Abstraction Managing the Address Space Example: Static Address Binding Dynamic Memory for Data Structures Modem Memory Binding 8.3 MEivioRY Allocation Fixed-Partition Memory Strategies Variable-Partition Memory Strategies Example: The Cost of Moving Programs Contemporary Allocation Strategies 8.4. DYNAMIC ADDRESS SPACE BINDING Runtime Boimd Checking: The Isolation Mechanism 8.5 MODERN MEMORY MANAGER STRATEGIES Swapping Virtual Memory Example: Using Cache Memory Shared-Memory Multiprocessors 8.6 SUMMARY 8.7 EXERCISES Uh Exercise 8.1 Using Shared memory Backgroimd Attacking the Problem Chapter 9 Basic Virtual Memory 9.1 THE Task AT Hand 9.2 ADDRESS Translation Address Space Mapping Segmentation and Paging 10.1 9. 3 Paging Paging Virtual Address Translation Example: Contemporary Page Table Implementations 9.4 STATIC PAGING Ai-GORITHMS The Fetch Policy Demand Paging Algorithms Stack Algorithms Implementing LRU Paging Performance 9.5 DYNAMIC PAGING ALGORITHMS The Working Set Algorithm Example: Working Set Algorithm Implementing the Working Set Algorithm Example: Taking Advantage of Paging with IPG Example: Windows NT/2000/XP Virtual Memory Example: Linux Virtual Memory 9.6 SEGMENTATION Address Translation Implementation Example: The Multics Segmentation System 9.7 Memory-Mapped Files 9.8 SUMMARY 9.9 exercises UB Exercise 9.1 Memory-Mapped Files Backgroimd Attacking the Problem DEVICE MANAGEMENT THE I/O SYSTEM Device Manager Abstraction I/O-Processor Overlap within an Application I/O-Processor Overlap across Threads 10.2 I/O STRATEGIES Direct I/O with Polling Interrupt-Driven I/O Polling Versus Interrupt-Driven I/O Performance 10.3 DEVICE MANAGER DESIGN Device-dependent Driver Infrastructure Framework Servicing Interrupts Example: Linux Device I/O 10.4 BUFFERING 10.5 DEVICE CLASS CHARACTERISTICS Communication Devices Example: Asynchronous Serial Devices Sequentially Accessed Storage Devices Example: Traditional Magnetic Tape Randomly Accessed Storage Devices Example: Magnetic Disk Example: Optimizing Access on Magnetic Disks Example: CD-ROM and DVD 10.6 SUMMARY 10.7 EXERCISES Lab Exercise 10.1 A Floppy Disk Driver Part A PartB Part C Backgroimd Attacking the Problem Chapter 11 File Management 11.1 THE Task at Hand 11.2 Files Low-level Files Structured Files Database Management Systems Multimedia Storage 11.3 L.OW-LEVEL FILE IMPLEMENTATIONS „ The 0PEN() and close () Operations Example: UNIX Open and Close Block Management Example: UNIX File Structure Grampte: The DOS FAT File System Reading and Writing the Byte Stream 1 1.4 SUPPORTING HiGH-LEVEL Fii-E ABSTRACTIONS Structured Sequential Files Indexed Sequential Files Database Management Systems Multimedia Documents 11.5 DIRECTORIES Directory Stinctures Example: Some Directory Approaches 11.6 Implementing Directories Directory Entries Opening a File 11.7 File Systems Example: The ISO 9660 File System Mounting File Systems Heterogeneous File Systems 11.8 SUMMARY 1 1 .9 EXERCISES Lab Bcercise 11.1 A Simple File Manager Part A PartB PartC Backgroimd Attacking the Problem PROTECTION AND SECURITY 12.1 The Problem The Goal- Policy and Mechanism Context for Protection and Security The Cost of Protection Mechanisms 12.2 Authentication External User Authentication Example: Windows NT/2000/XP User Authentication Internal Thread/Process Authentication Authentication in the Network Software Authentication 12.3 AUTHORIZATION U\J y Ad Hoc Authorization Mechanisms A General Model for Authorization Implementing Security Policies Implementing General Authorization Mechanisms Protection Domains Implementing the Access Matrix 12.4 CRYPTOGRAPHY The Big Picture Private Key Encryption Public Key Encryption Example: PGP Encryption Internet Content Delivery 12.5 SUMMARY 12.6 Exercises Networks From Computer Cowiviunications TO NETWORKS Switched Networks Network Hardware Requirements Network Software Requirements 13.2 THE ISO OSI NETWORK ARCHITECTURE MODEL The Evolution of Network Protocols The ISO OSI Model 13.3 media access Control (MAC) PROTOCOLS The Physical Layer Example: Fast Physical Layers The Data Link Layer Contemporary Networks 13.4 THE Network layer : Internet Addresses Routing Using the Network Layer Example: Latency in the Internet 13.5 The Transport L.AYER Communication Ports Data Types Reliable Communication Example: Datagrams and Virtual Circuits Performance 13.6 USING THE TRANSPORT LAYER Naming and Addresses Example: The Domain Name Service The Client-Server Model 13.7 NETWORK SECURITY Transport Layer Security: Firewalls Network Layer Security: IPSEC 13.8 SUMMARY 13.9 Exercises : ImB Exercise 13.1 Using TCP/IP Background Example: The WinSock Package Attacking the Problem H Distributed System Overview 14.1 DISTRIBUTED OS MECHANISMS 14.2 DISTRIBUTED PRIMARY MEMORY Remote Memory Example: The Linda Programming Language Distributed Shared Memory 14.3 remote.Procedure call How Does RPC Work? Implementing RPC 14.4 REMOTE OBJECTS The Emerald System CORBA Java Remote Objects 14.5 Distributing Process Management General Process Management Process and Thread Creation Scheduling Migration and Load Balancing Distributed Synchronization 14.6 SUMMARY 14.7 EXERCISES LaB Exercise 74.1 Using Remote Procedure CALL Background Attacking the Problem 15 DISTRIBUTED FILE SYSTEMS 15.1 SHARING INFORMATION ACROSS THE NETWORK Explicit File Copying Systems , A Seamless File System Interface Distributing the Work 15.2 REMOTE File Systems The General Architecture Block Caching Crash Recovery 15.3 file-level CACHING The Andrew File System The LOCUS File System 15.4 directory Systems AND THEIR IMPLEWENTATIONS Filenames Opening a File 15.5 SUMMARY 15.6 EXERCISES DISTRIBUTED PROGRAMMING RUNTIME SYSTEMS 16.1 supporting Distributed Software WITH middleware 16.2 CUASSIC DISTRIBUTED APPLICATION PROGRAMS 16.3 MIDDLEWARE SUPPORT FOR CLASSIC DISTRIBUTED PROGRAMMING PVM The Beowulf Cluster Environment The OSF Distributed Computing Environment 16.4 DISTRIBUTED PROGRAMMING ON THE WEB 16.5 MlDDl-EWARE SUPPORT FOR MOBII-E CODE Java and the Java Virtual Machine The ECMA-33S Common Language Infrastructure 16.6 Summary 16.7 Exercises DESIGN Strategies 17.1 DESIGN CONSIDERATIONS Performance, Performance, Performance Trusted Software Modularization Portability 17.2 MONOLITHIC KERNELS Example: MS-DOS Example: The UNIX Kernel 17.3 Modular Organization . £)Mi»p/e; Choices: An Object-Oriented OS 17.4 EXTENSIBLE NUCLEUS, OR MICROKERNEL. Organization EMmple: The MACH Operating System 17.B Layered Organizations 17.6 Operating Systems for Distributed Systems Network Operating Systems Example: BSD UNIX Distributed Operating Systems Example: The CHORUS Operating System 17.7 Summary 17.8 Exercises 18 The Linux Kernel 18.1 The Linux kernei. 18.2 Kernel Organization Using Kernel Services Daemons Starting the Kernel Control In the Machine ' 18.3 MODUi-ES AND DEVICE MANAGEMENT ' Module Organization Module Installation and Removal 18.4 PROCESS AND RESOURCE MANAGEMENT Running the Process Manager Creating a New Task IPC and Synchronization The Scheduler 18.5 MEMORY Manager THe Virtual Address Space The Page Fault Handler 18.6 File Management 18.7 SUMMARY THE WINDOWS NT/2000/XP KERNEL 19.1 INTRODUCTION 19.2 The NT KERNEU Objects Threads Multifirocess Synchronization Traps, Interrupts, and Exceptions 19.3 the NT EXECUTIVE Object Manager Process and Thread Manager Virtual Memory Manager I/O Manager The Cache Manager ER -