Operating systems design and implementation / Andrew S. Tannenbaum and Albert S. Woodhull

By: Tanenbaum, Andrew SMaterial type: TextTextPublication details: New Delhi: PHI Learning, 2006Edition: 3rd edDescription: xvii, 1054 p. CDISBN: 9788120329553Subject(s): Computer -- Operating systemDDC classification: 005.43
Contents:
1 INTRODUCTION 1.1 WHAT IS AN OPERATING SYSTEM? 4 1.1.1 The Operating System as an Extended Machine 4 1.1.2 The Operating System as a Resource Manager 5 1.2 HISTORY OF OPERATING SYSTEMS 6 1.2.1 The First Generation (1945-55) Vacuum Tubes and Plugboards 7 1.2.2 The Second Generation (1955-65) Transistors and Batch Systems 1.2.3 The Third Generation (1965-1980) ICs and Multiprogramming 9 1.2.4 The Fourth Generation (1980-Present) Personal Computers 14 1.2.5 History of MINIX 3 16 1.3 OPERATING SYSTEM CONCEPTS 19 1.3.1 Processes 20 1.3.2 Files 22 1.3.3 The Shell 25 1.4 SYSTEM CALLS 26 1.4.1 System Calls for Process Management 27 1.4.2 System Calls for Signaling 31 1.4.3 System Calls for File Management 33 1.4.4 System Calls for Directory Management 38 1.4.5 System Calls for Protection 40 1.4.6 System Calls for Time Management 42 1.5 OPERATING SYSTEM STRUCTURE 42 1.5.1 Monolithic Systems 42 1.5.2 Layered Systems 45 1.5.3 Virtual Machines 46 1.5.4 Exokernels 49 1:5.5 Client-Server Model 49 1.6 OUTLINE OF THE REST OF THIS BOOK 51 1.7 SUMMARY 51 2 PROCESSES 2.1 INTRODUCTION TO PROCESSES 55 2.1.1 The Process Model 56 2.1.2 Process Creation 57 2.1.3 Process Termination 59 2.1.4 Process Hierarchies 60 2.1.5 Process States 60 2.1.6 Implementation of Processes 62 2.1.7 Threads 64 2.2 INTERPROCESS COMMUNICATION 2.2.1 Race Conditions 69 2.2.2 Critical Sections 70 2.2.3 Mutual Exclusion with Busy Waiting 71 2.2.4 Sleep and Wakeup 76 2.2.5 Semaphores 78 2.2.6 Mutexes 81 2.2.7 Monitors 81 2.2.8 Message Passing 85 2.3 CLASSICAL IPC PROBLEMS 88 2.3.1 The Dining Philosophers Problem 89 2.3.ZThe Readers and Writers Problem 92 2.4 SCHEDULING 93 2.4.1 Introduction to Scheduling 94 2.4.2 Scheduling in Batch Systems 99 2.4.3 Scheduling in Interactive Systems 102 2.4.4 Scheduling in Real-Time Systems 109 2.4.5 Policy versus Mechanism 110 2.4.6 Thread Scheduling 110 2.5 OVERVIEW OF PROCESSES IN MINIX 3 112 2.5.1 The Internal Structure of MINIX 3 112 2.5.2 Proce.ss Management in MINIX 3 116 2.5.3 Interprocess Communication in MINIX 3 120 2.5.4 Process Scheduling in MINIX 3 122 2.6 IMPLEMENTATION OF PROCESSES IN MINIX 3 125 2.6.1 Organization of the MINIX 3 Source Code 125 2.6.2 Compiling and Runniing MINIX 3 128 2.6.3 The Common Header Files 130 2.6.4 The MINIX 3 Header Files 138 2.6.5 Proce.ss Data Structures and Header Files 146 2.6.6 Bootstrapping MINIX 3 156 2.6.7 System Initialization 160 2.6.8 Interrupt Handling in MINIX 3 167 2.6.9 Interprocess Communication in MINIX 3 178 2.6.10 Scheduling in MINIX 3 182 2.6.1 1 Hardware-Dependent Kernel Support 185 2.6.12 Utilities and the Kernel Library 190 2.7 THE SYSTEM TASK IN MINIX 3 192 2.7.1 Overview of the System Task 194 2.7.2 Implementation of the System Task 197 2.7.3 Implementation of the System Libarary 200 2.9 THE CLOCK TASK IN MINIX 3 204 2.8.1 Clock Hardware 204 2.8.2 Clock Software 206 2.8.3 Overview of the Clock Driver in MINIX 3 208 2.8.4 Implementation of the Clock Driver in MINIX 3 212 2.9 SUMMARY 214 3 INPUT/OUTPUT 3.1 PRINCIPLES OF I/O HARDWARE 222 3.1.1 1/0 Devices 223 3.1.2 Device Controllers 3.1.3 Memory-Mapped I/O 225 3.1.4 Interrupts 226 3.1.5 Direct Memory Access 227 3.2 PRINCIPLES OF I/O SOFTWARE 229 3.2.1 Goals of the I/O Software 229 3.2.2 Interrupt Handlers 231 3.2.3 Device Drivers 231 3.2.4 Device-Independent I/O Software 233 3.2.5 User-Space I/O Software 236 3.3 DEADLOCKS 237 3.3.1 Resources 238 3.3.2 Principles of Deadlock 239 3.3.3 The Ostrich Algorithm 242 3.3.4 Detection and Recovery 244 3.3.5 Deadlock Prevention 245 3.3.6 Deadlock Avoidance 247 3.4 OVERVIEW OF I/O IN MINIX 3 252 3.4.1 Interrupt Handlers in MINIX 3 252 3.4.2 Device Drivers in MINIX 3 256 3.4.3 Device-Independent I/O Software in MINIX 3 259 3.4.4 User-level I/O Software in MINIX 3 260 3.4.5 Deadlock Handling in MINIX 3 260 3.5 BLOCK DEVICES IN MINIX 3 261 3.5.1 Overview of Block Device Drivers in MINIX 3 262 3.5.2 Common Block Device Driver Software 265 3.5.3 The Driver Library 269 3.6 RAM DISKS 271 3.6.1 RAM Disk Hardware and Software 271 3.6.2 Overview of the RAM Disk Driver in MINIX 3 273 3.6.3 Implementation of the RAM Disk Driver in MINIX 3 274 3.7 DISKS 278 3.7.1 Disk Hardware 278 3.7.2.RAID 280 3.7.3 Disk Software 281 3.7.4 Overview of the Hard Disk Driver in MINIX 3 287 3.7.5 Implementation of the Hard Disk Driver in MINIX 3 290 3.7.6 Floppy Disk Handling 300 3.8 TERMINALS 302 3.8.1 Terminal Hardware 303 3.8.2 Terminal Software 307 3.8.3 Overview of the Terminal Driver in MINIX 3 316 3.8.4 Implementation of the Device-Independent Terminal Driver 331 3.8.5 Implementation of the Keyboard Driver 350 3.8.6 Implementation of the Display Driver 357 3.9 SUMMARY 366 4 MEMORY MANAGEMENT 4.1 BASIC MEMORY MANAGEMENT 374 4.1.1 Monoprogramming without Swapping or Paging 374 4.1.2 Multiprogramming with Fixed Partitions 375 4.1.3 Relocation and Protection 377 4.2 SWAPPING 378 4.2.1 Memory Management with Bitmaps 380 4.2.2 Memory Management with Linked Lists 381 4.3 VIRTUAL MEMORY 383 4.3.1 Paging 384 4.3.2 Page Tables 388 4.3.3 TLBs—Translation Lookaside Buffers 392 4.3.4 Inverted Page Tables 395 4.4 PAGE REPLACEMENT ALGORITHMS 396 4.4.1 The Optimal Page Replacement Algorithm 397 4.4.2 The Not Recently Used Page Replacement Algorithm 398 4.4.3 The First-In, First-Out (FIFO) Page Replacement Algorithm 399 4.4.4 The Second Chance Page Replacement Algorithm 399 4.4.5 The Clock Page Replacement Algorithm 400 4.4.6 The Least Recently Used (LRU) Page Replacement Algorithm 401 4.4.7 Simulating LRU in Software 401 4.5 DESIGN ISSUES FOR PAGING SYSTEMS 404 4.5.1 The Working Set Model 404 4.5.2 Local versus Global Allocation Policies 406 4.5.3 Page Size 408 4.5.4 Virtual Memory Interface 410 4.6 SEGMENTATION 410 4.6.1 Implementation of Pure Segmentation 414 4.6.2 Segmentation with Paging: The Intel Pentium 415 4.7 OVERVIEW OF THE MINIX 3 PROCESS MANAGER 420 4.7.1 Memory Layout 422 4.7.2 Message Handling 425 4.7.3 Process Manager Data Structures and Algorithms 426 4.7.4 The FORK, EXIT, and WAIT System Calls 432 4.7.5 The EXEC System Call 433 4.7.6 The BRK System Call 437 4.7.7 Signal Handling 438 4.7.8 Other System Calls 446 4.8 IMPLEMENTATION OF THE MINIX 3 PROCESS MANAGER 447 4.8.1 The Header Files and Data Structures 447 4.8.2 The Main Program 450 4.8.3 Implementation of FORK, EXIT, and WAIT 455 4.8.4 Implementation of EXEC 458 4.8.5 Implementation of BRK 461 4.8.6 Implementation of Signal Handling 462 4.8.7 Implementation of Other System Calls 471 4.8.8 Memory Management Utilities 473 4.9 SUMMARY 475 5 FILE SYSTEMS 5.1 FILES 482 5.1.1 File Naming 482 5.1.2 File Structure 484 5.1.3 File Types 485 5.1.4 File Access 488 5.1.5 File Attributes 488 5.1.6 File Operations 490 5.2 DIRECTORIES 491 5.2.1 Simple Directories 491 5.2.2 Hierarchical Directory Systems 492 5.2.3 Path Names 493 5.2.4 Directory Operations 496 5.3 FILE SYSTEM IMPLEMENTATION 497 5.3.1 File System Layout 497 5.3.2 Implementing Files 499 5.3.3 Implementing Directories 502 5.3.4 Disk Space Management 509 5.3.5 File System Reliability 512 5.3.6 File System Performance 519 5.3.7 Log-Structured File Systems 524 5.4 SECURITY 526 5.4.1 The Security Environment 526 5.4.2 Generic Security Attacks 531 5.4.3 Design Principles for Security 532 5.4.4 User Authentication 533 5.5 PROTECTION MECHANISMS 537 5.5.1 Protection Domains 537 5.5.2 Access Control Lists 539 5.5.3 Capabilities 542 5.5.4 Covert Channels 545 5.6 OVERVIEW OF THE MINIX 3 FILE SYSTEM 548 5.6.1 Messages 549 5.6.2 File System Layout 549 5.6.3 Bitmaps 553 5.6.4 I-Nodes 555 5.6.5 The Block Cache 557 5.6.6 Directories and Paths 559 5.6.7 File Descriptors 561 5.6.8 File Locking 563 5.6.9 Pipes and Special Files 563 5.6.10 An Example: The READ System Call 565 5.7 IMPLEMENTATION OF THE MINIX 3 FILE SYSTEM 566 5.7.1 Header Files and Global Data Structures 566 5.7.2 Table Management 570 5.7.3 The Main Program 579 5.7.4 Operations on Individual Files 583 5.7.5 Directories and Paths 591 5.7.6 Other System Calls 596 5.7.7 The I/O Device Interface 597 5.7.8 Additional System Call Support 603 5.7.9 File System Utilities 605 5.7.10 Other MINIX 3 Components 606 SUMMARY 606 6 READING LIST AND BIBLIOGRAPHY 6.1 SUGGESTIONS FOR FURTHER READING 611 6.1.1 Intxoduction and General Works 611 6.1.2 Processes 614 6.1.3 Input/Output 614 6.1.4 Memory Management 615 6.1.5 File Systems 616 6.2 ALPHABETICAL BIBLIOGRAPHY 618
Tags from this library: No tags from this library for this title. Log in to add tags.
Star ratings
    Average rating: 0.0 (0 votes)
Holdings
Item type Current library Call number Status Date due Barcode Item holds
General Books General Books Central Library, Sikkim University
005.43 TAN/O (Browse shelf(Opens below)) Available P20691
Total holds: 0

Includes bibliography and index

1 INTRODUCTION
1.1 WHAT IS AN OPERATING SYSTEM? 4
1.1.1 The Operating System as an Extended Machine 4
1.1.2 The Operating System as a Resource Manager 5
1.2 HISTORY OF OPERATING SYSTEMS 6
1.2.1 The First Generation (1945-55) Vacuum Tubes and Plugboards 7
1.2.2 The Second Generation (1955-65) Transistors and Batch Systems
1.2.3 The Third Generation (1965-1980) ICs and Multiprogramming 9
1.2.4 The Fourth Generation (1980-Present) Personal Computers 14
1.2.5 History of MINIX 3 16
1.3 OPERATING SYSTEM CONCEPTS 19
1.3.1 Processes 20
1.3.2 Files 22
1.3.3 The Shell 25
1.4 SYSTEM CALLS 26
1.4.1 System Calls for Process Management 27
1.4.2 System Calls for Signaling 31
1.4.3 System Calls for File Management 33
1.4.4 System Calls for Directory Management 38
1.4.5 System Calls for Protection 40
1.4.6 System Calls for Time Management 42
1.5 OPERATING SYSTEM STRUCTURE 42
1.5.1 Monolithic Systems 42
1.5.2 Layered Systems 45
1.5.3 Virtual Machines 46
1.5.4 Exokernels 49
1:5.5 Client-Server Model 49
1.6 OUTLINE OF THE REST OF THIS BOOK 51
1.7 SUMMARY 51
2 PROCESSES
2.1 INTRODUCTION TO PROCESSES 55
2.1.1 The Process Model 56
2.1.2 Process Creation 57
2.1.3 Process Termination 59
2.1.4 Process Hierarchies 60
2.1.5 Process States 60
2.1.6 Implementation of Processes 62
2.1.7 Threads 64
2.2 INTERPROCESS COMMUNICATION
2.2.1 Race Conditions 69
2.2.2 Critical Sections 70
2.2.3 Mutual Exclusion with Busy Waiting 71
2.2.4 Sleep and Wakeup 76
2.2.5 Semaphores 78
2.2.6 Mutexes 81
2.2.7 Monitors 81
2.2.8 Message Passing 85
2.3 CLASSICAL IPC PROBLEMS 88
2.3.1 The Dining Philosophers Problem 89
2.3.ZThe Readers and Writers Problem 92
2.4 SCHEDULING 93
2.4.1 Introduction to Scheduling 94
2.4.2 Scheduling in Batch Systems 99
2.4.3 Scheduling in Interactive Systems 102
2.4.4 Scheduling in Real-Time Systems 109
2.4.5 Policy versus Mechanism 110
2.4.6 Thread Scheduling 110
2.5 OVERVIEW OF PROCESSES IN MINIX 3 112
2.5.1 The Internal Structure of MINIX 3 112
2.5.2 Proce.ss Management in MINIX 3 116
2.5.3 Interprocess Communication in MINIX 3 120
2.5.4 Process Scheduling in MINIX 3 122
2.6 IMPLEMENTATION OF PROCESSES IN MINIX 3 125
2.6.1 Organization of the MINIX 3 Source Code 125
2.6.2 Compiling and Runniing MINIX 3 128
2.6.3 The Common Header Files 130
2.6.4 The MINIX 3 Header Files 138
2.6.5 Proce.ss Data Structures and Header Files 146
2.6.6 Bootstrapping MINIX 3 156
2.6.7 System Initialization 160
2.6.8 Interrupt Handling in MINIX 3 167
2.6.9 Interprocess Communication in MINIX 3 178
2.6.10 Scheduling in MINIX 3 182
2.6.1 1 Hardware-Dependent Kernel Support 185
2.6.12 Utilities and the Kernel Library 190
2.7 THE SYSTEM TASK IN MINIX 3 192
2.7.1 Overview of the System Task 194
2.7.2 Implementation of the System Task 197
2.7.3 Implementation of the System Libarary 200
2.9 THE CLOCK TASK IN MINIX 3 204
2.8.1 Clock Hardware 204
2.8.2 Clock Software 206
2.8.3 Overview of the Clock Driver in MINIX 3 208
2.8.4 Implementation of the Clock Driver in MINIX 3 212
2.9 SUMMARY 214
3 INPUT/OUTPUT
3.1 PRINCIPLES OF I/O HARDWARE 222
3.1.1 1/0 Devices 223
3.1.2 Device Controllers
3.1.3 Memory-Mapped I/O 225
3.1.4 Interrupts 226
3.1.5 Direct Memory Access 227
3.2 PRINCIPLES OF I/O SOFTWARE 229
3.2.1 Goals of the I/O Software 229
3.2.2 Interrupt Handlers 231
3.2.3 Device Drivers 231
3.2.4 Device-Independent I/O Software 233
3.2.5 User-Space I/O Software 236
3.3 DEADLOCKS 237
3.3.1 Resources 238
3.3.2 Principles of Deadlock 239
3.3.3 The Ostrich Algorithm 242
3.3.4 Detection and Recovery 244
3.3.5 Deadlock Prevention 245
3.3.6 Deadlock Avoidance 247
3.4 OVERVIEW OF I/O IN MINIX 3 252
3.4.1 Interrupt Handlers in MINIX 3 252
3.4.2 Device Drivers in MINIX 3 256
3.4.3 Device-Independent I/O Software in MINIX 3 259
3.4.4 User-level I/O Software in MINIX 3 260
3.4.5 Deadlock Handling in MINIX 3 260
3.5 BLOCK DEVICES IN MINIX 3 261
3.5.1 Overview of Block Device Drivers in MINIX 3 262
3.5.2 Common Block Device Driver Software 265
3.5.3 The Driver Library 269
3.6 RAM DISKS 271
3.6.1 RAM Disk Hardware and Software 271
3.6.2 Overview of the RAM Disk Driver in MINIX 3 273
3.6.3 Implementation of the RAM Disk Driver in MINIX 3 274
3.7 DISKS 278
3.7.1 Disk Hardware 278
3.7.2.RAID 280
3.7.3 Disk Software 281
3.7.4 Overview of the Hard Disk Driver in MINIX 3 287
3.7.5 Implementation of the Hard Disk Driver in MINIX 3 290
3.7.6 Floppy Disk Handling 300
3.8 TERMINALS 302
3.8.1 Terminal Hardware 303
3.8.2 Terminal Software 307
3.8.3 Overview of the Terminal Driver in MINIX 3 316
3.8.4 Implementation of the Device-Independent Terminal Driver 331
3.8.5 Implementation of the Keyboard Driver 350
3.8.6 Implementation of the Display Driver 357
3.9 SUMMARY 366
4 MEMORY MANAGEMENT
4.1 BASIC MEMORY MANAGEMENT 374
4.1.1 Monoprogramming without Swapping or Paging 374
4.1.2 Multiprogramming with Fixed Partitions 375
4.1.3 Relocation and Protection 377
4.2 SWAPPING 378
4.2.1 Memory Management with Bitmaps 380
4.2.2 Memory Management with Linked Lists 381
4.3 VIRTUAL MEMORY 383
4.3.1 Paging 384
4.3.2 Page Tables 388
4.3.3 TLBs—Translation Lookaside Buffers 392
4.3.4 Inverted Page Tables 395
4.4 PAGE REPLACEMENT ALGORITHMS 396
4.4.1 The Optimal Page Replacement Algorithm 397
4.4.2 The Not Recently Used Page Replacement Algorithm 398
4.4.3 The First-In, First-Out (FIFO) Page Replacement Algorithm 399
4.4.4 The Second Chance Page Replacement Algorithm 399
4.4.5 The Clock Page Replacement Algorithm 400
4.4.6 The Least Recently Used (LRU) Page Replacement Algorithm 401
4.4.7 Simulating LRU in Software 401
4.5 DESIGN ISSUES FOR PAGING SYSTEMS 404
4.5.1 The Working Set Model 404
4.5.2 Local versus Global Allocation Policies 406
4.5.3 Page Size 408
4.5.4 Virtual Memory Interface 410
4.6 SEGMENTATION 410
4.6.1 Implementation of Pure Segmentation 414
4.6.2 Segmentation with Paging: The Intel Pentium 415
4.7 OVERVIEW OF THE MINIX 3 PROCESS MANAGER 420
4.7.1 Memory Layout 422
4.7.2 Message Handling 425
4.7.3 Process Manager Data Structures and Algorithms 426
4.7.4 The FORK, EXIT, and WAIT System Calls 432
4.7.5 The EXEC System Call 433
4.7.6 The BRK System Call 437
4.7.7 Signal Handling 438
4.7.8 Other System Calls 446
4.8 IMPLEMENTATION OF THE MINIX 3 PROCESS MANAGER 447
4.8.1 The Header Files and Data Structures 447
4.8.2 The Main Program 450
4.8.3 Implementation of FORK, EXIT, and WAIT 455
4.8.4 Implementation of EXEC 458
4.8.5 Implementation of BRK 461
4.8.6 Implementation of Signal Handling 462
4.8.7 Implementation of Other System Calls 471
4.8.8 Memory Management Utilities 473
4.9 SUMMARY 475
5 FILE SYSTEMS
5.1 FILES 482
5.1.1 File Naming 482
5.1.2 File Structure 484
5.1.3 File Types 485
5.1.4 File Access 488
5.1.5 File Attributes 488
5.1.6 File Operations 490
5.2 DIRECTORIES 491
5.2.1 Simple Directories 491
5.2.2 Hierarchical Directory Systems 492
5.2.3 Path Names 493
5.2.4 Directory Operations 496
5.3 FILE SYSTEM IMPLEMENTATION 497
5.3.1 File System Layout 497
5.3.2 Implementing Files 499
5.3.3 Implementing Directories 502
5.3.4 Disk Space Management 509
5.3.5 File System Reliability 512
5.3.6 File System Performance 519
5.3.7 Log-Structured File Systems 524
5.4 SECURITY 526
5.4.1 The Security Environment 526
5.4.2 Generic Security Attacks 531
5.4.3 Design Principles for Security 532
5.4.4 User Authentication 533
5.5 PROTECTION MECHANISMS 537
5.5.1 Protection Domains 537
5.5.2 Access Control Lists 539
5.5.3 Capabilities 542
5.5.4 Covert Channels 545
5.6 OVERVIEW OF THE MINIX 3 FILE SYSTEM 548
5.6.1 Messages 549
5.6.2 File System Layout 549
5.6.3 Bitmaps 553
5.6.4 I-Nodes 555
5.6.5 The Block Cache 557
5.6.6 Directories and Paths 559
5.6.7 File Descriptors 561
5.6.8 File Locking 563
5.6.9 Pipes and Special Files 563
5.6.10 An Example: The READ System Call 565
5.7 IMPLEMENTATION OF THE MINIX 3 FILE SYSTEM 566
5.7.1 Header Files and Global Data Structures 566
5.7.2 Table Management 570
5.7.3 The Main Program 579
5.7.4 Operations on Individual Files 583
5.7.5 Directories and Paths 591
5.7.6 Other System Calls 596
5.7.7 The I/O Device Interface 597
5.7.8 Additional System Call Support 603
5.7.9 File System Utilities 605
5.7.10 Other MINIX 3 Components 606
SUMMARY 606
6 READING LIST AND BIBLIOGRAPHY
6.1 SUGGESTIONS FOR FURTHER READING 611
6.1.1 Intxoduction and General Works 611
6.1.2 Processes 614
6.1.3 Input/Output 614
6.1.4 Memory Management 615
6.1.5 File Systems 616
6.2 ALPHABETICAL BIBLIOGRAPHY 618

There are no comments on this title.

to post a comment.
SIKKIM UNIVERSITY
University Portal | Contact Librarian | Library Portal

Powered by Koha