《operating system design the xinu approach P486》求取 ⇩

Chapter 1Introduction and Overview1

1.1 Operating Systems1

1.2 Our Approach2

1.3 What An Operating System Is Not3

1.4 An Operating System Viewed From The Outside4

1.5 An Operating System Viewed From The Inside16

1.6 Summary18

Chapter 2An Overview of the Machine and Run-Time Environment21

2.1 The Machine21

2.2 Disk Storage Organization31

2.3 The C Run-Time Environment35

2.4 Summary38

Chapter 3List and Queue Manipulation41

3.1 Linked Lists Of Processes41

3.2 Implementation Of The Q Structure43

3.3 Priority Queue Manipulation47

3.4 List Initialization49

3.5 Summary51

Chapter 4Scheduling and Context Switching53

4.1 The Process Table54

4.2 Process States56

4.3 Selecting A Ready Process56

4.4 The Null Process61

4.5 Making A Process Ready61

4.6 Summary63

Chapter 5More Process Management65

5.1 Process Suspension And Resumption65

5.2 System Calls68

5.3 Process Termination70

5.4 Kernel Declarations72

5.5 Process Creation73

5.6 Utility Procedures76

5.7 Summary78

Chapter 6Process Coordination81

6.1 Low-Level Coordination Techniques82

6.2 Implementation Of High-Level Coordination Primitives82

6.3 Semaphore Creation and Deletion87

6.4 Summary90

Chapter 7Message Passing93

7.1 Message Passing In Xinu94

7.2 Implementation Of Send95

7.3 Implementation Of Receive96

7.4 Summary98

Chapter 8Memory Management101

8.1 Memory Management On The 11/02102

8.2 Dynamic Memory Requirements In Xinu102

8.3 Low-Level Memory Management Procedures103

8.4 The Location Of Allocated Storage104

8.5 The Implementation Of Xinu Memory Management104

8.6 Summary111

Chapter 9Interrupt Processing113

9.1 Dispatching Interrupts113

9.2 Input And Output Interrupt Dispatchers114

9.3 The Rules For Interrupt Processing118

9.4 Rescheduling While Processing An Interrupt119

9.5 Summary120

Chapter 10 Real-Time Clock Management123

10.1 The Real-Time Clock Mechanism123

10.2 Optimization Of Clock Interrupt Processing124

10.3 The Use Of A Real-Time Clock125

10.4 Delta List Processing126

10.5 Putting A Process To Sleep127

10.6 Delays Measured In Seconds131

10.7 Awakening Sleeping Processes132

10.8 Deferred Clock Processing133

10.9 Clock Interrupt Processing135

10.10 Clock Initialization137

10.11 Summary137

Chapter 11Device Independent Input and Output141

11.1 Properties Of The Input And Output Interface142

11.2 Abstract Operations142

11.3 Binding Abstract Operations To Real Devices143

11.4 Binding I/O Calls To Device Drivers At Run-Time144

11.5 The Implementation Of High-Level I/O Operations147

11.6 Opening And Closing Devices151

11.7 Null And Error Entries In Devtab152

11.8 Initialization Of The I/O System153

11.9 Interrupt Vector Initialization156

11.10 Summary157

Chapter 12An Example Device Driver159

12.1 The Device Type Tty159

12.2 Upper And Lower Halves Of The Device Driver160

12.3 Synchronization Of The Upper And Lower Halves162

12.4 Control Block And Buffer Declarations162

12.5 Upper-Half Tty Input Routines165

12.6 Upper-Half Tty Output Routines169

12.7 Lower-Half Tty Driver Routines173

12.8 Tty Control Block Initialization181

12.9 Device Driver Control183

12.10 Summary185

Chapter 13System Initialization189

13.1 Starting From Scratch190

13.2 Booting Xinu191

13.3 System Startup192

13.4 Finding The Size Of Memory192

13.5 Initializing System Data Structures194

13.6 Transforming The Program Into A Process198

13.7 The Map Of Low Core199

13.8 Summary201

Chapter 14A Data Link Communication Driver203

14.1 The Difficult Problem Of Communication204

14.2 Nomenclature For The Network Software Layers204

14.3 A Dlc Driver Design205

14.4 The Important Details Of Dlc210

14.5 Dlc Finite State Output Machine212

14.6 Deferred Input And Stalled Output213

14.7 Implementation Of The Dlc Driver215

14.8 Upper-Half Dlc Driver Routines216

14.9 Lower-Half Dlc Driver Routines220

14.10 Dlc Driver Initialization226

14.11 Control Over Non-Blockmode Reception227

14.12 Summary228

Chapter 15 High-Level Memory Management and Message Passing231

15.1 Self-Initializing Modules232

15.2 Memory Marking233

15.3 Implementation Of Memory Marking233

15.4 Partitioned Space Allocation235

15.5 Buffer Pools236

15.6 Returning Buffers To The Buffer Pool239

15.7 Creating A Buffer Pool240

15.8 Initializing The Buffer Pool Table241

15.9 Communication Ports242

15.10 The Implementation Of Ports243

15.11 Other Operations On Ports251

15.12 Summary255

Chapter 16Frame-Level Network Communication257

16.1 Operation Of The Frame Manager258

16.2 Details Of The Frame-Level Protocol258

16.3 The Xinu Ring Network259

16.4 Messages,Packets,Frames,Blocks,And The Network Layers260

16.5 An Example Of Packet Transfer Across An Internet261

16.6 Frame-Level Processing264

16.7 The Frame Format265

16.8 The Interface Between The Frame And Internet Layers267

16.9 The Frame-Level Input Process269

16.10 The Frame-Level Output Process272

16.11 Using The Acknowledgement Timer275

16.12 Implementation Of The Timer276

16.13 Initialization Of The Frame Layer277

16.14 Optimizing The Transfer Of Datagrams To Frames279

16.15 Summary279

Chapter 17A Disk Driver283

17.1 Operations Supplied By The Disk Driver283

17.2 Controller Request And Interface Register Descriptions284

17.3 The List Of Pending Disk Requests286

17.4 Enqueuing Disk Requests288

17.5 Optimizing the Request Queue291

17.6 Starting A Disk Operation293

17.7 Driver Initialization295

17.8 The Upper-Half Read Routine297

17.9 The Upper-Half Output Routine298

17.10 Implementation Of The Upper-Half Output Routine299

17.11 The Upper-Half Seek Routine300

17.12 The Lower-Half Of The Disk Driver301

17.13 Flushing Pending Requests303

17.14 Summary306

Chapter 18File Systems309

18.1What Is A File System?309

18.2Disk And File Servers311

18.3A Local File System311

18.4Data Structures For The File System312

18.5Implementation Of The Index Manager313

18.6Operations On I-Blocks315

18.7The Directory Structure321

18.8 Using The Device Switch Table For Files322

18.9 Establishing A Pseudo-Device325

18.10 Pseudo-Device Driver Routines331

18.11 Summary345

Chapter 19Exception Handling and Support Routines347

19.1 Exceptions,Traps,And Illegal Interrupts.347

19.2 Initialization Of Interrupt Vectors348

19.3 Implementation Of Panic348

19.4 Formatted Output353

19.5 Summary364

Chapter 20System Configuration367

20.1 The Need For Multiple Configurations367

20.2 Static vs.Dynamic Configuration368

20.3 The Details Of Configuration In Xinu368

20.4 Configuring A Xinu System373

20.5 System Calls And Procedures374

20.6 Summary375

Appendix 1A Quick Introduction to C377

Appendix 2Xinu Programmer’s Manual385

Bibliography469

Index477

《operating system design the xinu approach P486》由于是年代较久的资料都绝版了,几乎不可能购买到实物。如果大家为了学习确实需要,可向博主求助其电子版PDF文件。对合法合规的求助,我会当即受理并将下载地址发送给你。