Operating system concepts 9th edition

944 2.6K 0
Operating system concepts 9th edition

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Tài liệu hệ điều hành hay

OPERATING SYSTEM CONCEPTS NINTH EDITION OPERATING SYSTEM CONCEPTS ABRAHAM SILBERSCHATZ Yale University PETER BAER GALVIN Pluribus Networks GREG GAGNE Westminster College NINTH EDITION ȱ ViceȱPresidentȱandȱExecutiveȱPublisherȱ ȱ ȱ DonȱFowleyȱ ExecutiveȱEditorȱ ȱ ȱ ȱ ȱ BethȱLangȱGolubȱ EditorialȱAssistantȱ ȱ ȱ ȱ ȱ KatherineȱWillisȱ ExecutiveȱMarketingȱManagerȱȱ ȱ ȱ ChristopherȱRuelȱ SeniorȱProductionȱEditorȱ ȱ ȱ ȱ KenȱSantorȱ Coverȱandȱtitleȱpageȱillustrationsȱ ȱ ȱ SusanȱCyrȱ CoverȱDesignerȱ ȱ ȱ ȱ ȱ MadelynȱLesureȱ TextȱDesignerȱȱ ȱ ȱ ȱ ȱ JudyȱAllanȱ ȱ ȱ ȱ ȱ ȱ ThisȱbookȱwasȱsetȱinȱPalatinoȱbyȱtheȱauthorȱusingȱLaTeXȱandȱprintedȱandȱboundȱbyȱCourierȬ Kendallville.ȱTheȱcoverȱwasȱprintedȱbyȱCourier.ȱ ȱ ȱ Copyrightȱ©ȱ2013,ȱ2012,ȱ2008ȱJohnȱWileyȱ&ȱSons,ȱInc.ȱȱAllȱrightsȱreserved.ȱ ȱ Noȱpartȱofȱthisȱpublicationȱmayȱbeȱreproduced,ȱstoredȱinȱaȱretrievalȱsystemȱorȱtransmittedȱinȱanyȱ formȱorȱbyȱanyȱmeans,ȱelectronic,ȱmechanical,ȱphotocopying,ȱrecording,ȱscanningȱorȱotherwise,ȱ exceptȱasȱpermittedȱunderȱSectionsȱ107ȱorȱ108ȱofȱtheȱ1976ȱUnitedȱStatesȱCopyrightȱAct,ȱwithoutȱ eitherȱtheȱpriorȱwrittenȱpermissionȱofȱtheȱPublisher,ȱorȱauthorizationȱthroughȱpaymentȱofȱtheȱ appropriateȱperȬcopyȱfeeȱtoȱtheȱCopyrightȱClearanceȱCenter,ȱInc.ȱ222ȱRosewoodȱDrive,ȱDanvers,ȱ MAȱ01923,ȱ(978)750Ȭ8400,ȱfaxȱ(978)750Ȭ4470.ȱRequestsȱtoȱtheȱPublisherȱforȱpermissionȱshouldȱbeȱ addressedȱtoȱtheȱPermissionsȱDepartment,ȱJohnȱWileyȱ&ȱSons,ȱInc.,ȱ111ȱRiverȱStreet,ȱHoboken,ȱNJȱ 07030ȱ(201)748Ȭ6011,ȱfaxȱ(201)748Ȭ6008,ȱEȬMail:ȱPERMREQ@WILEY.COM.ȱȱȱ ȱ Evaluationȱcopiesȱareȱprovidedȱtoȱqualifiedȱacademicsȱandȱprofessionalsȱforȱreviewȱpurposesȱ only,ȱforȱuseȱinȱtheirȱcoursesȱduringȱtheȱnextȱacademicȱyear.ȱȱTheseȱcopiesȱareȱlicensedȱandȱmayȱ notȱbeȱsoldȱorȱtransferredȱtoȱaȱthirdȱparty.ȱȱUponȱcompletionȱofȱtheȱreviewȱperiod,ȱpleaseȱreturnȱ theȱevaluationȱcopyȱtoȱWiley.ȱȱReturnȱinstructionsȱandȱaȱfreeȬofȬchargeȱreturnȱshippingȱlabelȱareȱ availableȱatȱwww.wiley.com/go/evalreturn.ȱOutsideȱofȱtheȱUnitedȱStates,ȱpleaseȱcontactȱyourȱ localȱrepresentative.ȱ ȱ Foundedȱinȱ1807,ȱJohnȱWileyȱ&ȱSons,ȱInc.ȱhasȱbeenȱaȱvaluedȱsourceȱofȱknowledgeȱandȱ understandingȱforȱmoreȱthanȱ200ȱyears,ȱhelpingȱpeopleȱaroundȱtheȱworldȱmeetȱtheirȱneedsȱandȱ fulfillȱtheirȱaspirations.ȱOurȱcompanyȱisȱbuiltȱonȱaȱfoundationȱofȱprinciplesȱthatȱincludeȱ responsibilityȱtoȱtheȱcommunitiesȱweȱserveȱandȱwhereȱweȱliveȱandȱwork.ȱInȱ2008,ȱweȱlaunchedȱaȱ CorporateȱCitizenshipȱInitiative,ȱaȱglobalȱeffortȱtoȱaddressȱtheȱenvironmental,ȱsocial,ȱeconomic,ȱ andȱethicalȱchallengesȱweȱfaceȱinȱourȱbusiness.ȱAmongȱtheȱissuesȱweȱareȱaddressingȱareȱcarbonȱ impact,ȱpaperȱspecificationsȱandȱprocurement,ȱethicalȱconductȱwithinȱourȱbusinessȱandȱamongȱ ourȱvendors,ȱandȱcommunityȱandȱcharitableȱsupport.ȱForȱmoreȱinformation,ȱpleaseȱvisitȱourȱ website:ȱwww.wiley.com/go/citizenship.ȱȱȱ ȱ ȱ ȱ ISBN:ȱȱ978Ȭ1Ȭ118Ȭ06333Ȭ0ȱ ISBNȱBRV:ȱȱ978Ȭ1Ȭ118Ȭ12938Ȭ8ȱ ȱ PrintedȱinȱtheȱUnitedȱStatesȱofȱAmericaȱ ȱ 10ȱȱȱ9ȱȱȱ8ȱȱȱ7ȱȱȱ6ȱȱȱ5ȱȱȱ4ȱȱȱ3ȱȱȱ2ȱȱȱ1ȱ To my children, Lemor, Sivan, and Aaron and my Nicolette Avi Silberschatz To Brendan and Ellen, and Barbara, Anne and Harold, and Walter and Rebecca Peter Baer Galvin To my Mom and Dad, Greg Gagne Preface Operating systems are an essential part of any computer system Similarly, a course on operating systems is an essential part of any computer science education This field is undergoing rapid change, as computers are now prevalent in virtually every arena of day-to-day life —from embedded devices in automobiles through the most sophisticated planning tools for governments and multinational firms Yet the fundamental concepts remain fairly clear, and it is on these that we base this book We wrote this book as a text for an introductory course in operating systems at the junior or senior undergraduate level or at the first-year graduate level We hope that practitioners will also find it useful It provides a clear description of the concepts that underlie operating systems As prerequisites, we assume that the reader is familiar with basic data structures, computer organization, and a high-level language, such as C or Java The hardware topics required for an understanding of operating systems are covered in Chapter In that chapter, we also include an overview of the fundamental data structures that are prevalent in most operating systems For code examples, we use predominantly C, with some Java, but the reader can still understand the algorithms without a thorough knowledge of these languages Concepts are presented using intuitive descriptions Important theoretical results are covered, but formal proofs are largely omitted The bibliographical notes at the end of each chapter contain pointers to research papers in which results were first presented and proved, as well as references to recent material for further reading In place of proofs, figures and examples are used to suggest why we should expect the result in question to be true The fundamental concepts and algorithms covered in the book are often based on those used in both commercial and open-source operating systems Our aim is to present these concepts and algorithms in a general setting that is not tied to one particular operating system However, we present a large number of examples that pertain to the most popular and the most innovative operating systems, including Linux, Microsoft Windows, Apple Mac OS X, and Solaris We also include examples of both Android and iOS, currently the two dominant mobile operating systems The organization of the text reflects our many years of teaching courses on operating systems, as well as curriculum guidelines published by the IEEE vii viii Preface Computing Society and the Association for Computing Machinery (ACM) Consideration was also given to the feedback provided by the reviewers of the text, along with the many comments and suggestions we received from readers of our previous editions and from our current and former students Content of This Book The text is organized in eight major parts: • Overview Chapters and explain what operating systems are, what they do, and how they are designed and constructed These chapters discuss what the common features of an operating system are and what an operating system does for the user We include coverage of both traditional PC and server operating systems, as well as operating systems for mobile devices The presentation is motivational and explanatory in nature We have avoided a discussion of how things are done internally in these chapters Therefore, they are suitable for individual readers or for students in lower-level classes who want to learn what an operating system is without getting into the details of the internal algorithms • Process management Chapters through describe the process concept and concurrency as the heart of modern operating systems A process is the unit of work in a system Such a system consists of a collection of concurrently executing processes, some of which are operating-system processes (those that execute system code) and the rest of which are user processes (those that execute user code) These chapters cover methods for process scheduling, interprocess communication, process synchronization, and deadlock handling Also included is a discussion of threads, as well as an examination of issues related to multicore systems and parallel programming • Memory management Chapters and deal with the management of main memory during the execution of a process To improve both the utilization of the CPU and the speed of its response to its users, the computer must keep several processes in memory There are many different memory-management schemes, reflecting various approaches to memory management, and the effectiveness of a particular algorithm depends on the situation • Storage management Chapters 10 through 13 describe how mass storage, the file system, and I/O are handled in a modern computer system The file system provides the mechanism for on-line storage of and access to both data and programs We describe the classic internal algorithms and structures of storage management and provide a firm practical understanding of the algorithms used —their properties, advantages, and disadvantages Since the I/O devices that attach to a computer vary widely, the operating system needs to provide a wide range of functionality to applications to allow them to control all aspects of these devices We discuss system I/O in depth, including I/O system design, interfaces, and internal system structures and functions In many ways, I/O devices are the slowest major components of the computer Because they represent a 906 Chapter 20 Influential Operating Systems [Bobrow et al (1972)] D G Bobrow, J D Burchfiel, D L Murphy, and R S Tomlinson, “TENEX, a Paged Time Sharing System for the PDP-10”, Communications of the ACM, Volume 15, Number (1972) [Brinch-Hansen (1970)] P Brinch-Hansen, “The Nucleus of a Multiprogramming System”, Communications of the ACM, Volume 13, Number (1970), pages 238–241 and 250 [Brinch-Hansen (1973)] Hall (1973) [Ceruzzi (1998)] P Brinch-Hansen, Operating System Principles, Prentice P E Ceruzzi, A History of Modern Computing, MIT Press (1998) [Corbato and Vyssotsky (1965)] F J Corbato and V A Vyssotsky, “Introduction and Overview of the MULTICS System”, Proceedings of the AFIPS Fall Joint Computer Conference (1965), pages 185–196 [Corbato et al (1962)] F J Corbato, M Merwin-Daggett, and R C Daley, “An Experimental Time-Sharing System”, Proceedings of the AFIPS Fall Joint Computer Conference (1962), pages 335–344 [Dijkstra (1968)] E W Dijkstra, “The Structure of the THE Multiprogramming System”, Communications of the ACM, Volume 11, Number (1968), pages 341–346 [Frah (2001)] (2001) G Frah, The Universal History of Computing, John Wiley and Sons [Frauenfelder (2005)] M Frauenfelder, The Computer — An Illustrated History, Carlton Books (2005) [Freiberger and Swaine (2000)] P Freiberger and M Swaine, Fire in the Valley — The Making of the Personal Computer, McGraw-Hill (2000) [Howarth et al (1961)] D J Howarth, R B Payne, and F H Sumner, “The Manchester University Atlas Operating System, Part II: User’s Description”, Computer Journal, Volume 4, Number (1961), pages 226–229 [Kenah et al (1988)] L J Kenah, R E Goldenberg, and S F Bate, V AX/VMS Internals and Data Structures, Digital Press (1988) [Kilburn et al (1961)] T Kilburn, D J Howarth, R B Payne, and F H Sumner, “The Manchester University Atlas Operating System, Part I: Internal Organization”, Computer Journal, Volume 4, Number (1961), pages 222–225 [Lett and Konigsford (1968)] A L Lett and W L Konigsford, “TSS/360: A Time-Shared Operating System”, Proceedings of the AFIPS Fall Joint Computer Conference (1968), pages 15–28 [Lichtenberger and Pirtle (1965)] W W Lichtenberger and M W Pirtle, “A Facility for Experimentation in Man-Machine Interaction”, Proceedings of the AFIPS Fall Joint Computer Conference (1965), pages 589–598 [Liskov (1972)] B H Liskov, “The Design of the Venus Operating System”, Communications of the ACM, Volume 15, Number (1972), pages 144–149 [McKeag and Wilson (1976)] R M McKeag and R Wilson, Studies in Operating Systems, Academic Press (1976) Bibliography 907 [Mealy et al (1966)] G H Mealy, B I Witt, and W A Clark, “The Functional Structure of OS/360”, IBM Systems Journal, Volume 5, Number (1966), pages 3–11 [Meyer and Seawright (1970)] R A Meyer and L H Seawright, “A Virtual Machine Time-Sharing System”, IBM Systems Journal, Volume 9, Number (1970), pages 199–218 [Organick (1972)] E I Organick, The Multics System: An Examination of Its Structure, MIT Press (1972) [Parmelee et al (1972)] R P Parmelee, T I Peterson, C C Tillman, and D Hatfield, “Virtual Storage and Virtual Machine Concepts”, IBM Systems Journal, Volume 11, Number (1972), pages 99–130 [Rashid (1986)] R F Rashid, “From RIG to Accent to Mach: The Evolution of a Network Operating System”, Proceedings of the ACM/IEEE Computer Society, Fall Joint Computer Conference (1986), pages 1128–1137 [Rashid and Robertson (1981)] R Rashid and G Robertson, “Accent: A Communication-Oriented Network Operating System Kernel”, Proceedings of the ACM Symposium on Operating System Principles (1981), pages 64–75 [Rojas and Hashagen (2000)] R Rojas and U Hashagen, The First Computers — History and Architectures, MIT Press (2000) [Tevanian et al (1987a)] A Tevanian, Jr., R F Rashid, D B Golub, D L Black, E Cooper, and M W Young, “Mach Threads and the Unix Kernel: The Battle for Control”, Proceedings of the Summer USENIX Conference (1987) [Tevanian et al (1987b)] A Tevanian, Jr., R F Rashid, M W Young, D B Golub, M R Thompson, W Bolosky, and R Sanzi, “A UNIX Interface for Shared Memory and Memory Mapped Files Under Mach”, Technical report, Carnegie-Mellon University (1987) [Tevanian et al (1989)] A Tevanian, Jr., and B Smith, “Mach: The Model for Future Unix”, Byte (1989) Credits • Figure 1.11: From Hennesy and Patterson, Computer Architecture: A Quantitative Approach, Third Edition, C 2002, Morgan Kaufmann Publishers, Figure 5.3, p 394 Reprinted with permission of the publisher • Figure 6.24 adapted with permission from Sun Microsystems, Inc • Figure 9.18: From IBM Systems Journal, Vol 10, No 3, C 1971, International Business Machines Corporation Reprinted by permission of IBM Corporation • Figure 12.9: From Leffler/McKusick/Karels/Quarterman, The Design and Implementation of the 4.3BSD UNIX Operating System, C 1989 by AddisonWesley Publishing Co., Inc., Reading, Massachusetts Figure 7.6, p 196 Reprinted with permission of the publisher • Figure 13.4: From Pentium Processor User’s Manual: Architecture and Programming Manual, Volume 3, Copyright 1993 Reprinted by permission of Intel Corporation • Figures 17.5, 17.6, and 17.8: From Halsall, Data Communications, Computer Networks, and Open Systems, Third Edition, C 1992, Addison-Wesley Publishing Co., Inc., Reading, Massachusetts Figure 1.9, p 14, Figure 1.10, p 15, and Figure 1.11, p 18 Reprinted with permission of the publisher • Figure 6.14: From Khanna/Sebree/Zolnowsky, “Realtime Scheduling in SunOS 5.0,” Proceedings of Winter USENIX, January 1992, San Francisco, California Derived with permission of the authors 909 Index A access-control lists (ACLs), 832 ACLs (access-control lists), 832 ACPI (advanced configuration and power interface), 862 address space layout randomization (ASLR), 832 admission-control algorithms, 286 advanced configuration and power interface (ACPI), 862 advanced encryption standard (AES), 677 advanced local procedure call (ALPC), 135, 854 ALPC (advanced local procedure call), 135, 854 AMD64 architecture, 387 Amdahl’s Law, 167 AMD virtualization technology (AMD-V), 720 Android operating system, 85–86 API (application program interface), 63–64 Apple iPad, 60, 84 application containment, 713, 727–728 Aqua interface, 59, 84 ARM architecture, 388 arrays, 31 ASIDs (address-space identifiers), 374 ASLR (address space layout randomization), 832 assembly language, 77 asynchronous threading, 172 augmented-reality applications, 36 authentication: multifactor, 689 automatic working-set trimming, 446 B background processes, 74–75, 115, 296 balanced binary search trees, 33 binary search trees, 33 binary translation, 718–720 binary trees, 33 bitmaps, 34 bourne-Again shell (bash), 789 bridging, 732 bugs, 66 C CFQ (Completely Fair Queueing), 817 children, 33 chipsets, 836 Chrome, 123 CIFS (common internet file system), 871 circularly linked lists, 32 client(s): thin, 35 client-server model, 854–855 clock algorithm, 418–419 clones, 715 cloud computing, 41–42, 716 Cocoa Touch, 84 911 912 Index code integrity module (Windows 7), 832 COM (component object model), 873 common internet file system (CIFS), 871 Completely Fair Queueing (CFQ), 817 computational kernels, 835–836 computer environments: cloud computing, 41–42 distributed systems, 37–38 mobile computing, 36–37 real-time embedded systems, 43 virtualization, 40–41 computing: mobile, 36–37 concurrency, 166 Concurrency Runtime (ConcRT), 297, 880–881 condition variables, 879 conflict phase (of dispatch latency), 285 containers, 728 control partitions, 723 coupling, symmetric, 17 CPU scheduling: real-time, 283–290 earliest-deadline-first scheduling, 288–289 and minimizing latency, 283–285 POSIX real-time scheduling, 290 priority-based scheduling, 285–287 proportional share scheduling, 289–290 rate-monotonic scheduling, 287–288 virtual machines, 729 critical-section problem: and mutex locks, 212–213 D Dalvik virtual machine, 86 data parallelism, 168–169 defense in depth, 689 desktop window manager (DWM), 831 device objects, 855 Digital Equipment Corporation (DEC), 379 digital signatures, 832 DirectCompute, 835 discovery protocols, 39 disk(s): solid-state, 469 dispatcher, 294 DMA controller, 595 doubly linked lists, 32 driver objects, 855 DWM (desktop window manager), 831 dynamic configurations, 837, 838 E earliest-deadline-first (EDF) scheduling, 288–289 EC2, 41 EDF (earliest-deadline-first) scheduling, 288–289 efficiency, 837 emulation, 40, 727 emulators, 713 encryption: public-key, 678 energy efficiency, 837 Erlang language, 241–242 event latency, 283–284 event-pair objects, 855 exit() system call, 120, 121 Index ext2 (second extended file system), 811 ext3 (third extended file system), 811–813 ext4 (fourth extended file system), 811 extended file attributes, 505 extensibility, 736 F fast-user switching, 863–864 FIFO, 32 file info window (Mac OS X), 505 file replication, 767 file systems: Windows 7, see Windows foreground processes, 115, 296 fork-join strategy, 172 fourth extended file system (ext4), 811 G GCD (Grand Central Dispatch), 182–183 general trees, 33 gestures, 60 global positioning system (GPS), 36 GNOME desktop, 60 GPS (global positioning system), 36 Grand Central Dispatch (GCD), 182–183 granularity, minimum, 797 graphics shaders, 835 guard pages, 847 GUIs (graphical user interfaces), 59–62 913 H Hadoop, 765 Hadoop distributed file system (HDFS), 767 handle tables, 844 hands-on computer systems, 20 hardware: virtual machines, 720–721 hash collisions, 471 hash functions, 33–34 hash maps, 471 HDFS (Hadoop distributed file system), 767 hibernation, 860–861 hybrid cloud, 42 hybrid operating systems, 83–86 Android, 85–86 iOS, 84–85 Mac OS X, 84 hypercalls, 726 hypervisors, 712 type 0, 723–724 type 1, 724–725 type 2, 725 I IA-32 architecture, 384–387 paging in, 385–387 segmentation in, 384–385 IA-64 architecture, 387 IaaS (infrastructure as a service), 42 idle threads, 840 IDSs (intrusion-detection systems), 691–694 imperative languages, 241 impersonation, 853 implicit threading, 177–183 914 Index Grand Central Dispatch (GCD), 182–183 OpenMP and, 181–182 thread pools and, 179–181 infrastructure as a service (IaaS), 42 Intel processors: IA-32 architecture, 384–387 IA-64 architecture, 387 interface(s): choice of, 61–62 Internet Key Exchange (IKE), 682 interpretation, 40 interpreted languages, 727 interrupt latency, 284–285 interrupt service routines (ISRs), 840 I/O (input/output): virtual machines, 731–732 iOS operating system, 84–85 I/O system(s): application interface: vectored I/O, 603–604 IP (Internet Protocol), 681–683 iPad, see Apple iPad ISRs (interrupt service routines), 840 J Java Virtual Machine (JVM), 107, 726, 736–737 journaling file systems, 569–570 just-in-time (JIT) compilers, 727 JVM, see Java Virtual Machine K K Desktop Environment (KDE), 60 kernel(s): computational, 835 kernel code, 96 kernel data structures, 31–34 arrays, 31 bitmaps, 34 hash functions and maps, 33–34 lists, 31–33 queues, 32 stacks, 32 trees, 31–33 kernel environment, 84 Kernel-Mode Driver Framework (KMDF), 856 kernel-mode threads (KT), 844 kernel modules: Linux, 96–101 kernel transaction manager (KTM), 862 KMDF (Kernel-Mode Driver Framework), 856 KT (kernel-mode threads), 844 KTM (kernel transaction manager), 862 L latency: in real-time systems, 283–285 target, 797 left child, 33 LFH design, 883–884 LIFO, 32 Linux: kernel modules, 96–101 Linux system(s): obtaining page size on, 370 lists, 31–32 live migration (virtual machines), 716, 733–735 lock(s): mutex, 212–214 loosely-coupled systems, 17 love bug virus, 694 low-fragmentation heap (LFH) design, 883–884 LPCs (local procedure calls), 834 Index M Mac OS X operating system, 84 main memory: paging for management of: and Oracle SPARC Solaris, 383 memory: transactional, 239–240 memory leaks, 101 memory management: with virtual machines, 730–731 memory-management unit (MMU), 384 micro TLBs, 388 migration: with virtual machines, 733–735 minimum granularity, 797 mobile computing, 36–37 mobile systems: multitasking in, 115 swapping on, 360, 407 module entry point, 97 module exit point, 97 Moore’s Law, 6, 835 multicore systems, 14, 16, 166 multifactor authentication, 689 multiprocessor systems (parallel systems, tightly coupled systems), 166 multi-touch hardware, 863 mutant (Windows 7), 841 mutex locks, 212–214 N namespaces, 793 NAT (network address translation), 732 nested page tables (NPTs), 720 network address translation (NAT), 732 915 non-uniform memory access (NUMA), 834 NPTs (nested page tables), 720 O OLE (object linking and embedding), 873 open-file table, 546–547 OpenMP, 181–182, 240–241 OpenSolaris, 46 operating system(s): hybrid systems, 83–86 portability of, 836–837 Oracle SPARC Solaris, 383 Orange Book, 832 OSI model, 757–758 OSI Reference Model, 682 overcommitment, 729 P PaaS (platform as a service), 42 page address extension (PAE), 396 page directory pointer table, 386 page-frame number (PFN) database, 850–851 page-table entries (PTEs), 847 paging: and Oracle SPARC Solaris, 383 parallelism, 166, 168–169 paravirtualization, 713, 725–726 partition(s): control, 723 PC systems, 863 PDAs (personal digital assistants), 11 periodic processes, 286 periodic task rate, 286 personal computer (PC) systems, 863 personalities, 83 PFF (page-fault-frequency), 429–430 916 Index PFN database, 850–851 platform as a service (PaaS), 42 pop, 32 POSIX: real-time scheduling, 290 POST (power-on self-test), 862 power manager (Windows 7), 860–861 power-on self-test (POST), 862 priority-based scheduling, 285–287 private cloud, 42 privilege levels, 23 procedural languages, 241 process(es): background, 74–75, 115, 296 foreground, 115, 296 system, processor groups, 835 process synchronization: alternative approaches to, 238–242 functional programming languages, 241–242 OpenMP, 240–241 transactional memory, 239–240 critical-section problem: software solution to, 212–213 programming-environment virtualization, 713, 726–727 proportional share scheduling, 289–290 protection domain, 721 protocols: discovery, 39 pseudo-device driver, 730–731 PTEs (page-table entries), 847 PTE tables, 847 Pthreads: thread cancellation in, 186–187 public cloud, 41 public-key encryption, 678 push, 32 R RAID sets, 868 rate, periodic task, 286 rate-monotonic scheduling, 287–288 rate-monotonic scheduling algorithm, 287–288 RC4, 677 RDP, 717 real-time CPU scheduling, 283–290 earliest-deadline-first scheduling, 288–289 and minimizing latency, 283–285 POSIX real-time scheduling, 290 priority-based scheduling, 285–287 proportional share scheduling, 289–290 rate-monotonic scheduling, 287–288 red-black trees, 35 resume, 715 right child, 33 ROM (read-only memory), 93, 480 routers, 754 RR scheduling algorithm, 271–273 S SaaS (software as a service), 42 Scala language, 241–242 scheduling: earliest-deadline-first, 288–289 priority-based, 285–287 proportional share, 289–290 rate-monotonic, 287–288 SSDs and, 478 SCM (Service Control Manager), 860 second extended file system (ext2), 811 security identity (SID), 853 security tokens, 853 Service Control Manager (SCM), 860 Index services, operating system, 115 session manager subsystem (SMSS), 862 SID (security identity), 853 singly linked lists, 32 SJF scheduling algorithm, 267–270 Skype, 40 slim reader-writer (SRW) locks, 879 SLOB allocator, 439 SLUB allocator, 439 SMB (server-message-block), 871 SMSS (session manager subsystem), 862 software as a service (SaaS), 42 solid-state disks (SSDs), 11, 469, 478 SPARC, 383 SRM (security reference monitor), 858–859 SRW (slim reader-writer) locks, 879 SSTF scheduling algorithm, 474–475 standard swapping, 358–360 storage: thread-local, 187 storage management: with virtual machines, 732–733 subsystems, 135 superuser, 688 Surface Computer, 863 suspended state, 715 swapping: on mobile systems, 360, 407 standard, 358–360 switching: fast-user, 863–864 symmetric coupling, 17 symmetric encryption algorithm, 676 synchronous threading, 172 SYSGEN, 91–92 system daemons, system-development time, 715 system hive, 861 917 system processes, 8, 844–845 system restore point, 861 T target latency, 797 task parallelism, 168–169 TEBs (thread environment blocks), 880 terminal applications, 96 terminal server systems, 864 thin clients, 35 third extended file system (ext3), 811–813 threads: implicit threading, 177–183 thread attach, 853 thread environment blocks (TEBs), 880 thread-local storage, 187 thread pools, 179–181 thunking, 834 time sharing (multitasking), 115 time slice, 796 timestamp counters (TSCs), 840–841 touch screen (touchscreen computing), 5, 60 transactions: atomic, 210 transactional memory, 239–240 Transmission Control Protocol/Internet Protocol (TCP/IP), 758–761 trap-and-emulate method, 717–718 trees, 33, 35 TSCs (timestamp counters), 840–841 type hypervisors, 712, 723–724 type hypervisors, 712, 724–725 type hypervisors, 713, 725 918 Index U UAC (User Account Control), 701 UI (user interface), 52–55 UMDF (User-Mode Driver Framework), 856 UMS, see user-mode scheduling USBs (universal serial buses), 469 User Account Control (UAC), 701 user mode, 787 User-Mode Driver Framework (UMDF), 856 user-mode scheduling (UMS), 296–297, 835, 880–881 user-mode threads (UT), 844 UT (user-mode threads), 844 V VACB (virtual address control block), 857 variables: condition, 879 VAX minicomputer, 379–380 VCPU (virtual CPU), 717 vectored I/O, 603–604 virtual CPU (VCPU), 717 virtualization, 40–41 advantages and disadvantages of, 714–716 and application containment, 727–728 and emulation, 727 and operating-system components, 728–735 CPU scheduling, 729 I/O, 731–732 live migration, 733–735 memory management, 730–731 storage management, 732–733 para-, 725–726 programming-environment, 726–727 virtual machines, 711–738 See also virtualization advantages and disadvantages of, 714–716 and binary translation, 718–720 examples, 735–737 features of, 715–717 and hardware assistance, 720–721 history of, 713–714 Java Virtual Machine, 736–737 life cycle of, 722–723 trap-and-emulate systems, 717–718 type hypervisors, 723–724 type hypervisors, 724–725 type hypervisors, 725 VMware, 735–736 virtual machine control structures (VMCSs), 721 virtual machine manager (VMM), 22–23, 41, 712 virtual machine sprawl, 723 VMCSs (virtual machine control structures), 721 VMM, see virtual machine manager VM manager, 846–852 VMware, 714, 735–736 W wait() system call, 120–122 Win32 API, 875 Windows 7: dynamic device support, 837, 838 and energy efficiency, 837 fast-user switching with, 863–864 security in, 700–701 Index synchronization in, 833–834, 878–879 terminal services, 863–864 user-mode scheduling in, 296–297 Windows executive: booting, 862–863 power manager, 860–861 Windows group policy, 875 Windows Task Manager, 87, 88 Windows Vista, 830 security in, 700 symbolic links in, 869–870 Windows XP, 830 Winsock, 881 Workstation (VMWare), 735–736 X x86-64 architecture, 387 Xen, 714 Z zones, 728 919 ... Open-Source Operating Systems Summary 47 Exercises 49 Bibliographical Notes 52 43 Operating- System Structures 2.1 Operating- System Services 55 2.2 User and Operating- System Interface 58 2.3 System. .. features of an operating system are and what an operating system does for the user We include coverage of both traditional PC and server operating systems, as well as operating systems for mobile... these two very different systems Chapter 20 briefly describes a few other influential operating systems The Ninth Edition As we wrote this Ninth Edition of Operating System Concepts, we were guided

Ngày đăng: 16/02/2014, 22:58

Từ khóa liên quan

Mục lục

  • Cover

  • Title Page

  • Copyright Page

  • Preface

  • Contents

  • PART ONE OVERVIEW

    • Chapter 1 Introduction

      • 1.1 What Operating Systems Do

      • 1.2 Computer-System Organization

      • 1.3 Computer-System Architecture

      • 1.4 Operating-System Structure

      • 1.5 Operating-System Operations

      • 1.6 Process Management

      • 1.7 Memory Management

      • 1.8 Storage Management

      • 1.9 Protection and Security

      • 1.10 Kernel Data Structures

      • 1.11 Computing Environments

      • 1.12 Open-Source Operating Systems

      • 1.13 Summary

      • Practice Exercises

      • Bibliographical Notes

Tài liệu cùng người dùng

Tài liệu liên quan