操作系统导论

所需积分/C币:50 2012-08-10 03:14:47 18.91MB PDF
收藏 收藏 5
举报

Operating_System_Concepts_8th_Edition
To my children, Lemon, Sivan, and aaron and my nicolette Aui Silberschatz To my wife, carla and my children, Gwen, Owen, and maddie Peter Baer galvin To 21 wife, pat and our sons, Tom and Ja reg gaone Abraham Silberschatz is the Sidney J. Weinberg Professor &z chair of Com puter Science at Yale University. Prior to joining Yale, he was the Vice president of the information sciences research Center at bell laboratories. prior to that he held a chaired professorship in the department of computer Sciences at the University of Texas at austin Professor silberschatz is an acm fellow and an ieee fellow he received the 2002 IEeE Taylor l booth education Award the 1998 Acm Karl V. Karl- strom Outstanding educator Award, and the 1997 ACMSigMOd Contribution Award. In recognition of his outstanding level of innovation and technical excellence, he was awarded the bell laboratories president' s award for three different projects-the QTM Project(1998), the Data Blitz Project(1999), and the Netinventory Project(2004) Professor Silberschatz writings have appeared in numerous ACM and IEEE publications and other professional conferences and journals. He is a coauthor of the textbook Database System Concepts. He has also written Op-Ed articles for the New york times the boston globe, and the hartford courant among others Peter Baer Galvin is the chief technologist for Corporate Technologie (www.cptech.com),acomputerfacilityresellerandintegratorBeforethatM Galvin was the systems manager for Brown University's Computer Science Department. He is also Sun columnist for ilogin: magazine. Mr. Galvin has written articles for Byte and other magazines and has written columns for Sun World and SysAdmin magazines. As a consultant and trainer, he has given talks and taught tutorials on security and system administration world wide Greg Gagne is chair of the Computer Science department at Westminster College in Salt Lake City where he has been teaching since 1990. In addition to teaching operating systems, he also teaches computer networks, distributed systems, and software engineering He also provides workshops to computer science educators and industry professionals Operating systems are an essential part of any computer system. Similarl 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 application, from games for children through the most sophisticated planning tools for governments and multinational firms Yet the fundamental concepts remain fairly clear, and itis 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 included in Chapter 1. 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 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 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 existing commercial operating systems. Our aim is to present these concepts and algorithms in a general setting that is t tied to one particular operating system w sent a large number of exaples that pertain to the most popular and the most innovative operating systems, including Sun Microsystems" Solaris; Linux; Microsoft Windows Vista, Windows 2000, and Windows XP; and Apple Mac os X When we refer to Windows XP as an example operating system, we are implying Windows Vista, Windows XP, and windows 2000. If a feature exists in a specific release state this explicitly The organization of this text reflects our many years of teaching courses on operating systems. Consideration was also given to the feedback provided by the reviewers of the text, as well as comments submitted by readers of earlier editions. In addition, the content of the text corresponds to the suggestions from Computing Curricula 2005 for teaching operating systems, published by the Joint Task Force of the iEEE Computing Society and the association for Computing Machinery (acm) On the supporting Web site for this text, we provide several sample syllabi that suggest various approaches for using the text in both introductory and advanced courses. As a general rule, we encourage readers to progress sequentially through the chapters, as this strategy provides the most thorough study of operating systems. However, by using the sample syllabi, a reader can select a different ordering of chapters(or subsections of chapters) On-line support for the textis provided by Wiley PLUS. On this site, students can find sample exercises and programming problems, and instructors can assign and grade problems. In addition, in Wiley PLUS, students can access new operating-system simulators, which are used to work through exercises and hands-on lab activities. References to the simulators and associated activities appear at the ends of several chapters in the text The text is organized in nine major parts G Overview Chapters I and 2 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, what an operating system does for the user, and what it does for the computer-system operator. 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 individualreaders 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 o Process management and Process coordination Chapters 3 through 7 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 interproce communication, process synchronization, and deadlock handling. Also included is a discussion of threads, as well as an examination of issues related to multicore systems o Memory management. Chapters 8 and 9 deal with the management of main memory during the execution of a process. To improve both the uttilization of the cpu and the speed of its response to its users, the computermust keep several processes in memory. There are many different Preface management, and the effectiveness of a particular algorithm depends on the situation Storage management. Chapters 10 through 13 describe how the file system, mass storage, 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. Our discussion of storage also includes matters related to secondary and tertiary storage. 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 performance bottleneck we also examine performance issues associated with i/devices o Protection and security. Chapters 14 and 15 discuss the mechanisms necessary for the protection and security of computer systems. The processes in an operating system must be protected from one another's activities, and to provide such protection, we must ensure that only processes that have gained proper authorization from the operating system can operate on the files, memorv cPU, and other resources of the system Protectionis a mechanism for controlling the access of programs, processes or users to the resources defined by a computer system This mechanism must provide a means of specifying the controls to be imposed,as well as a means of enforcement. Security protects the integrity of the information stored in the system(both data and code), as well as the physical resources of the system, from unauthorized access, malicious destruction or alteration, and accidental introduction of inconsistency 3 Distributed systems. Chapters 16 through 18 deal with a collection of processors that do not share memory or a clock -a distributed system. B providing the user with access to the various resources that it maintains,a distributed system can improve computation speed and data availabilit and reliability. Such a system also provides the user with a distributed file system, which is a file-service system whose users, servers, and storage devices are dispersed among the sites of a distributed system. a distributed system must provide various mechanisms for process synchronization and communication, as well as for dealing with deadlock problems and a variety of failures that are not encountered in a centralized system o Special-purpose systems. Chapters 19 and 20 deal with systems used for specific purposes, including real-time systems and multimedia systems These systems have specific requirements that differ from those of the general-purpose systems that are the focus of the remainder of the text Real-time systems may require not only that computed results be correc but also that the results be produced within a specified deadline period Multimedia systems require quality-of-service guarantees ensuring that the multimedia data are delivered to clients within a specific time frame Case studies. Chapters 21 through 23 in the book, and Appendices A throughc(whichareavailableonwww.wiley.com/go/global/silberschatz and in Wileyplus), integrate the concepts described in the earlier chapters by describing real operating systems. These systems include linux Windows xP, FreeBSD, Mach, and windows 2000. We chose linux and FreeBSd because UNIX--at one time-was almost small enough to understand yet was not a" operating system. Most of its internal algorithms were selected for simplicity, rather than for speed or sophistication. Both Linux and FreeBSd are readily available to computer-science departments, so many students have access to these systems. We chose windows XP and Windows 2000 because they provide an opportunity for us to study a modern operating system with a design and implementation drastically different from those of UNIX. Chapter 23 briefly describes a few other influential operating systems This book uses examples of many real-world operating systems to illustrate fundamental operating-system concepts. However, particular attention is paid the Microsoft family of operating systems(including Windows Vista, Windows 2000, and Windows XP) and various versions of UNIX (including Solaris, BSD, and Mac Os X). We also provide a significant amount of coverage of the linux operating system reflecting the most recent version of the kernel Version 2.6-at the time this book was written The text also provides several example programs written in C and Java. These programs are intended to run in the following programming environments Windows systems. The primary programming environment for Windows systems is the Win32 API(application progl e, which des a comprehensive set of functions for managing processes, threads memory, and peripheral devices. We provide several C programs illustrat ing the use of the win32 API Example programs were tested on systems running windows vista, Windows 2000, and windows xp POSIX POSIX (which stands for Portable Operating System Interface) repre- sents a set of standards implemented primarily for UNIX-based operating systems. Although Windows Vista, Windows XP, and Windows 2000 sys tems can also run certain POSIX Programs, our coverage of POSIX focuses primarily on UNIX and Linux systems. POSIX-compliant systems must implement the POSIX core standard(POSIX. 1 ) Linux, Solaris, and Mac Os X are examples of POSIX-compliant systems. PoSiX also defines several extensions to the standards, including real-time extensions(POSIX1.b)and an extension for a threads library(posIX1.c, better known as pthreads We provide several programming examples written in Illustrating the POSiX base APl, as well as Pthreads and the extensions for real-time programning These example programs were tested on Debian Linux 2.4 and 2.6 systems, Mac Os X 10.5, and Solaris 10 using the gcc 3.3 and 4.0 compilers Java Java is a widely used programning language with a rich API and built-in language support for thread creation and management. Java programs run on any operating system supporting a Java virtual machine or JVM). We illustrate various operating system and networking concepts with several Java programs tested using the java 1.5 JVM We have chosen these three programming environments because it is our opinion that they best represent the two most popular models of operating systems: Windows and UNIX/Linux, along with the widely used Java environ ment. Most programming examples are written in C, and we expect readers to be confortable with this language; readers familiar with both the c and java languages should easily understand most programs provided in this text In some instances-such as thread creation-we illustrate a specific concept using all three programming environments, allowing the reader to contrast the three different libraries as they address the same task. In other situations, we may use just one of the APis to demonstrate a concept For example, we illustrate shared memory using just the POSIX API; socket programming in TCP/IP is highlighted using the Java API 您二一! As we wrote the Eighth Edition of Operating System Concepts, we were guided by the many comments and suggestions we received from readers of our previous editions, as well as by our own observations about the rapidly changing fields of operating systems and networking. We have rewritten material in most of the chapters by bringing older material up to date and removing material that was no longer of interest or relevance We have made substantive revisions and organizational changes in many of the chapters. Most importantly, we have added coverage of open-source operating systems in Chapter 1. We have also added more practice exercises for students and included solutions in WileyPLUs, which also includes new simulators to provide demonstrations of operating-s ystem operation. Below we provide a brief outline of the major changes to the various chapters Chapter 1, Introduction, has been expanded to include multicore CPU clustered computers, and open-source operating systems Chapter 2, System Structures, provides significantly updated coverage of virtual machines, as well as multicore CPUs. the grub boot loader and operating-system debugging Chapter 3, Process Concept, provides new coverage of pipes as a form of Interprocess communication c Chapter 4, Multithreaded Programming adds new coverage of program- ming for multicore systems c Chapter 5, process scheduling, adds coverage of virtual machine schedul- ing and multithreaded multicore architectures o Chapter 6, Synchronization, adds a discussion of mutual exclusion lock priority inversion, and transactional memory c Chapter 8, Memory-Management Strategies, includes discussion of UMA Chapter 9, Virtual-Memory Management, updates the Solaris example to include solaris 10 memory management Chapter 10, File System, is updated with current technologies and capacities Chapter 11, Implementing File Systems, includes a full description of Sun's zFS file system and expands the coverage of volumes and directories Chapter 12, Secondary-Storage Structure, adds coverage of iSCSI, vol unes, and ZFS pools o Chapter 13, 1/O Systems, adds coverage of PCIX PCI Express, and hyper Transport c Chapter 16, Distributed Operating Systems, adds coverage of 802.11 wireless networks Chapter 21, The Linux System, has been updated to cover the latest version of the linux kernel Chapter 23, Influential Operating Systems, increases coverage of very early computers as well as TOPS-20, CP/M, MS-DOS, Windows, and the original mac os rogramming Probiems and Projects To emphasize the concepts presented in the text, we have added several programming problems and projects that use the POSIX and Win32 APIs,as well as Java. We have added more than 15 new programming problems, which emphasize processes, threads, shared memory, process synchronization, and networking. In addition, we have added or modified several programming projects that are more involved than standard programming exercises. These projects include adding a system call to the Linux kernel, using pipes on both UNIX and Windows systems, using UNIX message queues, creating multithreaded applications, and solving the producer-consumer problem using shared menory The Eighth edition also incorporates a set of operating-system simulators designed by Steven robbins of the University of Texas at San Antonio. The simulators are intended to model the behavior of an operating system as it performs various tasks, such as CPU and disk-head scheduling process creation and interprocess communication starvation and address translation These simulators are written in Java and will run on any computer system with Java 1.4. Students can download the simulators from WileypLUS and observe the behavior of several operating system concepts in various scenarios. Ir addition each simulator includes several exercises that ask students to set certain parameters of the simulator, observe how the system behaves and then explain this behavior These exercises can be assigned through wileyplus. the WileyPLUS course also includes algorithmic problems and tutorials developed by Scott M. Pike of Texas A&M University

...展开详情
试读 127P 操作系统导论
立即下载 低至0.43元/次 身份认证VIP会员低至7折
    一个资源只可评论一次,评论内容不能少于5个字
    andyhanjun 垃圾,别下。浪费分
    2019-07-04
    回复
    img
    daoruaimibg

    关注 私信 TA的资源

    上传资源赚积分,得勋章
    最新推荐
    操作系统导论 50积分/C币 立即下载
    1/127
    操作系统导论第1页
    操作系统导论第2页
    操作系统导论第3页
    操作系统导论第4页
    操作系统导论第5页
    操作系统导论第6页
    操作系统导论第7页
    操作系统导论第8页
    操作系统导论第9页
    操作系统导论第10页
    操作系统导论第11页
    操作系统导论第12页
    操作系统导论第13页
    操作系统导论第14页
    操作系统导论第15页
    操作系统导论第16页
    操作系统导论第17页
    操作系统导论第18页
    操作系统导论第19页
    操作系统导论第20页

    试读已结束,剩余107页未读...

    50积分/C币 立即下载 >