Operating System Design: Douglas
Operating System Design: Douglas
Douglas Comer
LftP)
\f J
CRC Press
Taylor & Francis Croup
Boca Raton London New York
Preface xix
/ .1 Operating Systems 1
1.2 Approach Used In The Text 3
1.3 A Hierarchical Design 3
1.4 The Ximt Operating System 5
1.5 What An Operating System Is Not 6
/ .6 An Operating System Viewed From The Outside 1
1.7 Remainder Of The Text 8
/ .8 Perspective 8
1.9 Summary 9
2.1 Introduction J1
2.2 Programming Models For Multiple Activities 12
2.3 Operating System Services 13
2.4 Concurrent Processing Concepts And Terminology 13
2.5 Distinction Between Sequential And Concurrent Programs 15
2.6 Multiple Processes Sharing A Single Piece Of Code 17
2.7 Process Exit And Process Termination 19
2.8 Shared Memory, Race Conditions, And Synchronization 20
2.9 Semaphores And Mutual Exclusion 24
2.10 Type Names Used In Xinu 26
2.11 Operating System Debugging With Kputc And Kprintf 27
2.12 Perspective 28
2.13 Summary 28
viii Contents
3.1 Introduction 31
3.2 Physical And Logical Organizations Of The E2J00L 32
3.3 Processor Organization And Registers 33
3.4 Bus Operation: The Fetch-Store Paradigm 34
3.5 Direct Memory Access 34
3.6 The Bits Address Space 35
3.7 Contents Of Kernel Segments KSEGO and KSEG1 36
3.8 Bits Startup Static Configuration 37
3.9 Calling Conventions And The Run-Time Stack 38
3.10 Interrupts And Interrupt Processing 40
3.11 Exception Processing 41
3.12 Timer Hardware 42
3.13 Serial Communication 42
3.14 Polled vs. Interrupt-Driven I/O 43
3.15 Memory Cache And KSEGl 43
3.16 Storage Layout 44
3.17 Memory Protection 45
3.18 Perspective 45
4.1 Introduction 49
4.2 A Unified Structure For Linked Lists Of Processes 50
4.3 A Compact List Data Structure 51
4.4 Implementation Of The Queue Data Structure 53
4.5 Inline Queue Manipulation Functions 55
4.6 Basic Functions To Extract A Process From A List 55
4.7 FIFO Queue Manipulation 57
4.8 Manipulation Of Priority Queues 60
4.9 List Initialization 62
4.10 Perspective 63
4.11 Summary 64
5.1 Introduction 67
5.2 The Process Table 68
5.3 Process States 71
5.4 Ready And Current States 72
5.5 A Scheduling Policy 72
5.6 Implementation Of Scheduling 73
Contents
6.1 Introduction 89
6.2 Process Suspension And Resumption 89
6.3 Self-Suspension And Information Hiding 90
6.4 The Concept Of A System Call 91
6.5 Interrupt Control With Disable And Restore 93
6.6 A System Call Template 94
6.7 System Call Return Values SYSERR And OK 95
6.8 Implementation Of Suspend 95
6.9 Suspending The Current Process 97
6.10 Suspend Return Value 97
6.11 Process Termination And Process Exit 98
6.12 Process Creation 101
6.13 Other Process Manager Functions 106
6.14 Summary 108
179
Chapter 11 High-Level Message Passing
File 411
Chapter 19 Systems
19.10 Allocating A Data Block From The Free List (Ifdballoc) 424
Contents xv
Index