PREFACE CHAPTER l GENERAL OVERVIEW OF THE SYSTEM l.l History 1.2 System Structure l.3 User Perspective l.4 Operating System Services l.5 Assumptions About Hardware l.6 Summary CHAPTER 2 INTRODUCTION TO THE KERNEL 2.1 ArchiteCture of the UNIX Operating System 2.2 Introduction to System Concepts 2'3 Kernel Data Structures 2.4 System Administration 2.5 Summary and Preview 2.6 Exercises CHAPTER 3 THE BUFFER CACHE 3.l Budsr Headers 3.2 Structure of the Buffer Pool 3.3 Scenarios for Retrieval of a Buffer 3.4 Reeding and Writing Disk Blocks 3.5 Advantages and Desadvantages of the Buffer Cache 3.6 Summary 3.7 Exercises CHAPTER 4 INTERNAL REPRESENTATION OF FILES 4.l Inodes 4.2 Structure of a Regular File 4.3 Directories 4.4 Conversion of a Path Name to an Inode 4.5 Super Block 4.6 Inode Assignment to a New File 4.7 Allocation of Disk Blocks 4.8 Other File Types 4.9 Summary 4.l0 Exercises CHAPTER 5 SYSTEM CALLS FOR THE FlLS SYSTEM 5.l Open 5.2 Read 5.3 Write 5.4 File and Record Locking 5.5 Adjusting the Position of File I/O--LSEEK 5.6 Close 5.7 File Creation 5.8 Creation of Speial Files 5.9 Change Directory and Change Root 5.l0 Change Owner and Change Mode 5.ll STAT and FSTAT 5.l2 Pipes 5.l3 Dup 5.l4 Mounting and Unmounting File Systms 5.l5 Link 5.l6 Unlink 5.l7 File System Abstractions 5.l8 File System Maintenance 5.l9 Summary 5.20 Exercises CHAPTER 6 THE STRUCTURE OF PROCESSES 6. l Process States and Transitions 6.2 Layout of System Memory 6.3 The Context of a Process 6.4 Saving the bot of a Propss 6.5 Manipufation of the ProceSs Address Space. 6.6 Sleep 6.7 Summary 6.8 Exereises CHAPTER 7 PROCESS CONTROL 7.l Proess Creation 7.2 Signals 7.3 Process Termination 7.4 Awaiting Process Termination 7.5 Invoking Other Programs 7.6 The User ID of a Process 7.7 Changing the Size of a Process 7.8 The Shell 7.9 System Boot and the INIT Process 7.10 Summary 7.11 Exercises CHAPTER 8 PROCESS SCHEDULING AND TIME 8.1 Process Scheduling 8.2 System Cails For Time 8.3 Clock 8.4 Summary 8.5 Exercises CHAPTER 9 MEMORY MANAGEMENT POLICIES 9.l Swapping 9.2 Demand Paging 9.3 A Hybrid System With Swapping and Demand Peging 9.4 Summary 9.5 Exercises CHAPTER 10 THE I/O SUBSYSTEM 10.1 Driver Interfaces 10.2 Disk Drivers 10.3 Terminal Drivers 10.4 Streams 10.5 Summary 10.6 Exercises CHAPTER l l INTERPROCESS COMMUNICATION 11.1 Process Tracing 11.2 System V IPC 11.3 Network Communications 11.4 Sockets 11.5 Summary 11.6 Exercises CHAPTER 12 MULTIPROCESSOR SYSTEMS 12.1 Problem of Multiprocessor Systms 12.2 Solution With Master and Slave Processors 12.3 Solution With Semaphores 12.4 The Tunis SyStem 12.5 Performance Limitations 12.6 Exercises CHAPTER 13 DISTRIBUTED UNIX SYSTEMS 13.1 Satellite Processors 13.2 The Newcastle Connection 13.3 Transparent Distributed File Systems 13.4 A Transparent Distributed Model Without Stub Processes 13.5 Summary 13.6 Exercises APPENDIX--SYSTEM CALLS BIBLIOGRAPHY INDEX