Modern.Operating.Systems.4th.Edition.2014.3(现代操作系统)
PREFACE xxiii1 INTRODUCTION 11.1 WHAT IS AN OPERATING SYSTEM? 31.1.1 The Operating System as an Extended Machine 41.1.2 The Operating System as a Resource Manager 51.2 HISTORY OF OPERATING SYSTEMS 61.2.1 The First Generation (1945–55): Vacuum Tubes 71.2.2 The Second Generation (1955–65): TranTrademarksAMD, the amd logo and combinations thereof are trademarks of advanced micro devices IncAndroid and google web search are trademarks of google IncApple and apple macintosh are registered trademarks of Apple IncASM, DESPOOL, DDT, LINK-80, MAC, MP/M, PL/1-80 and SID are trademarks of DigitalResearchBlackberry, rim, research In Motion@ and related trademarks, names and logos are theproperty of research In Motion Limited and are registered and/or used in the U.S. and countries around the worldBlu-ray DiscTM is a trademark owned by Blu-ray Disc AssociationCD Compact Disk is a trademark of phillipsCDC 6600 is a trademark of Control Data CorporationCP/M and CP/Net are registered trademarks of Digital researchDEC and PDP are registered trademarks of Digital Equipment CorporationeCos centric is the owner of the e cos trademark and ecos logo in the us and other countries Themarks were acquired from the Free Software Foundation on 26th February 2007. The Trademark andLogo were previously owned by Red HatThe gnome logo and gnome name are registered trademarks or trademarks of GNOME Foundationin the united states or other countriesFirefox and firefox oS are registered trademarks of the mozilla foundationFortran is a trademark of IBM Corpfreebsd is a registered trademark of the freebsd foundationGE 645 is a trademark of General Electric CorporationIntel Core is a trademark of Intel Corporation in the U.S. and/or other countriesJava is a trademark of Sun Microsystems, InC, and refers to Suns Java programming languageLinux b is the registered trademark of linus torvalds in the u.s. and other countriesMS-DOS and windows are registered trademarks of microsoft Corporation in the United states and/orother countriesTI Silent 700 is a trademark of Texas Instruments IncorporatedUNIX is a registered trademark of The Open GroupZilog and Z80 are registered trademarks of zilog, IncMODERNOPERATING SYSTEMSFOURTH EDITIONANDREW S. TANENBAUMHERBERT BOSVrije universiteitAmsterdam, The NetherlandsPEARSONBoston Columbus Indianapolis New York San Francisco Upper Saddle rivermsterdam Cape Town dubai London Madrid Milan Munich Paris Montreal torontoDelhi Mexico City Sao Paulo Sydney Hong Kong Seoul Singapore Taipei TokyoVice President and Editorial Director ECS: Marcia hortonExecutive Editor: Tracy JohnsonProgram Management Team Lead: Scoll DisannoProgram Manager: Carole snyderProject Manager: Camille trentacosteOperations Specialist: Linda sagerCover Design: Black Horse DesignsCover art: Jason consalvoMedia Project Manager: Renata buteraCopyright o 2015, 2008 by Pearson Education, Inc, Upper Saddle river, New Jersey, 07458Pearson Prentice-Hall. All rights reserved. Printed in the United States of America. This publicationis protected by Copyright and permission should be obtained from the publisher prior to anyprohibited reproduction, storage in a retrieval system, or transmission in any form or by anymeans,electronic, mechanical, photocopying, recording, or likewise. For information regardingpermission(s), write to: Rights and Permissions DepartmentPearson prentice hallTm is a trademark of pearson education incPearson@ is a registered trademark of Pearson plcPrentice Hall@ is a registered trademark of Pearson Education, IncLibrary of Congress Cataloging-in-Publication DataOn filePEARSONISBN-10:013-359162XISBN-13:978-0-13-359162-0To Suzanne, Barbara, Daniel, Aron, Nathan, Marvin, Matilde, and oliviaThe list keeps growing ( AST)To Marieke, Duko, Jip, and spot. Fearsome Jedi, all(HBThis page intentionally left blankCONTENTSPREFACEXXIITRODUCTION1. 1 WHAT IS AN OPERATING SYSTEM? 31. 1. 1 The Operating system as an Extended machine 41.1.2 The Operating system as a resource manager 52 HISTORY OF OPERATING SYSTEMS 61. 2. 1 The First Generation(1945-55): Vacuum Tubes 71.2.2 The Second Generation(1955-65 ) Transistors and Batch Systems 81. 2.3 The Third Generation(1965-1980): ICs and Multiprogramming 91. 2.4 The Fourth Generation(1980-Present): Personal Computers 141.2.5 The Fifth Generation(1990-Present): Mobile Computers 191.3 COMPUTER HARDWARE REVIEW 201. 3. 1 Processors 211.3.2 Memory 241. 3. 3 Disks 271.3 4 10 Devices 281.3.5Bu1.3.6 Booting the Computer 34CONTENTS1 4 THE OPERATING SYSTEM ZOO 351.4.1 Mainframe Operating Systems 351.4.2 Server Operating Systems 351.43 Multiprocessor Operating systems 361. 4 4 Personal Computer Operating systems 361. 4.5 Handheld Computer Operating Systems 361.4.6 Embedded Operating Systems 361.4.7 Sensor-Node Operating Systems 371.4.8 Real-Time Operating Systems 371. 4.9 Smart Card Operating Systems 3815 OPERATING SYSTEM CONCEPTS 381.5. 1 Processes 391.5.2 AddresS S411. 5 3 Files 411.5.4 Input/Output 451.55 Protection 451.5.6 The Shell 451.5.7 Ontogeny Recapitulates Phylogeny 461 6 SYSTEM CALLS 501.6. 1 System Calls for Process Management 531.6.2 System Calls for File Management 561.6.3 System Calls for Directory Management 571. 6 4 Miscellaneous System Calls 591.6.5 The Windows win 32 Api 601.7 OPERATING SYSTEM STRUCTURE 621.7. 1 Monolithic systems 621.7.2 Layered Systems 631.7.3 Microkernels 651. 7 4 Client-Server Model 681. 7.5 Virtual machines 681.7.6 Exokernels 721. 8 THE WORLD ACCORDING TOC 731. 8. 1 The C language 731. 8.2 Header files 741.8.3 Large Programming Projects 751. 8 4 The Model of Run Time 76CONTENTS1.9 RESEARCH ON OPERATING SYSTEMS 7710 OUTLINE OF THE REST OF THIS BOOK 781. 11 METRIC UNITS 791 12 SUMMARY 802 PROCESSES AND THREADS852.1 PROCeSSes 852.1 1 The process model 862.1.2 Process Creation 882.1 3 Process Termination 902.1 4 Process hierarchies 912.15 Process s922.1.6 Implementation of Processes 942.1.7 Modeling Multiprogramming 952.2 THREADS 972.2. 1 Thread Usage 972.2.2 The Classical Thread Model 1022. 2 3 POSIX Threads 1062.2.4 Implementing Threads in User Space 1082.2.5 Implementing Threads in the Kernel 11 12.2.6 Hybrid Implementations 1122. 2. 7 Scheduler activations 1 132.2.8 Pop-Up Threads 1142.2. 9 Making Single-Threaded Code multithreaded 1 1.52.3 INTERPROCESS COMMUNICATION 1192.3. 1 Race Conditions 1192.3.2 Critical Regions 1212.3.3 Mutual Exclusion with Busy Waiting 1212.3.4 Sleep and Wakeup 1272.3.5 Semaphores 13023.6 Mutexes 132