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