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