throbber
" .‘
`
`‘1'
`
`“'
`
`
`SILBERSCEQTZ. ‘
`g GAUNN
`
`-“‘5‘.GAGNEa;
`
`
`
`|PR2020-01288
`
`Sony EX1053 Page 1
`
`IPR2020-01288
`Sony EX1053 Page 1
`
`

`

`Opemfifly
`Sysfem 6'0fl6’8p7‘6’
`
`Seventh Edition
`
`ABRAHAM SILBERSCHATZ
`
`Yale University
`
`PETER BAER GALVIN
`
`Corporate Technologies, Inc.
`
`GREG GAGNE
`
`Westminster College
`
`WILEY
`
`JOHN WILEY & SONS. INC
`
`’Pw
`
`|PR2020-01288
`
`Sony EX1053 Page 2
`
`IPR2020-01288
`Sony EX1053 Page 2
`
`

`

`EXECUTIVE EDITOR
`
`Bill Zobrist
`
`SENIOR PRODUCTION EDITOR
`
`Ken Santor
`
`COVER DESIGNER
`
`Madelyn Lesure
`
`COVER ILLUSTRATION
`
`Susan St. Cyr
`
`TEXT DESIGNER
`
`Judy Allan
`
`This book was set in Palatino by the author using LaTeX and printed and bound by
`Von Hoffmann, Inc. The cover was printed by Von Hoffmann, Inc.
`
`This book is printed on acid free paper.
`
`00
`
`Copyright © 2005 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, 222 Rosewood Drive, Danvers, MA 01923, (978) 750-8400, fax
`(978) 646-8600. Requests to the Publisher for permission should be addressed to the
`
`Permissions Department, John Wiley & Sons, Inc., 111 River Street, Hoboken, NJ 07030,
`
`fl BY (225-5945).
`(201)748—601|,fax(201)748-6008., qfigfiq ‘
`10.3)
`‘
`To order books or for customer service please, Call
`t4;", L:'
`
` ISBN O-47l-69466-5
`
`
`
`
`A
`
`|PR2020-01288
`
`Sony EX1053 Page 3
`
`IPR2020-01288
`Sony EX1053 Page 3
`
`

`

`To my children, Lemor, Sivan, and Aaron
`
`Avi Silberschatz
`
`To my wife, Carla,
`and my children, Gwen Owen and Maddie
`
`Peter Baer Galvin
`
`In memory of Uncle Sonny,
`Robert Ion Heileman 1933 — 2004
`
`Greg Gagne
`
`"KI-I
`
`.
`
`”Jr-1',
`
`.‘lgmmrma m d 31"”7“ »"(‘v"" i" ‘-
`1“,, Wu plum“ a lame numhv:
`v-anh};
`-'
`tr
`.
`'
`-
`‘v
`'mauwv.‘tlwnprrst'
`was: {up ’7
`:
`.V
`,
`.
`.-. -
`'
`“7".-
`‘
`I' .lmqwflum.“
`_'
`.;.n.'-."
`.._
`-1:
`Md .
`"1 _'..‘
`. afit't‘f“
`_,‘_.
`
`~0-
`
`,
`
`(K ___‘
`
`|PR2020-01288
`
`Sony EX1053 Page 4
`
`IPR2020-01288
`Sony EX1053 Page 4
`
`

`

`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 application, from games for children 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. 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
`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
`not tied to one particular operating system. We present a large number of
`examples that pertain to the most popular and the most innovative operating
`systems, including Sun Microsystems’ Solaris; Linux; Mach; Microsoft MS‘rDOS,
`Windows NT, Windows 2000, and Windows XP; DEC VMS and TOPSZO; IBM 05/2;
`and Apple Mac OS X.
`[n this text, when we refer to Windows XP as an example operating system,
`we are implying both Windows XP and Windows 2000. If a feature exists in
`Windows XP that is not available in Windows 2000, we will state this explicitly.
`
`vii
`
`J
`
`|PR2020-01288
`
`Sony EX1053 Page 5
`
`IPR2020-01288
`Sony EX1053 Page 5
`
`

`

`a.
`'
`
`I
`
`viii
`
`Preface
`
`If a feature exists in Windows 2000 but not in Windows XP, then we will refer
`
`specifically to Windows 2000.
`
`-
`
`Organization of This Book
`
`The organization of this text reflects our many years of teaching operating
`systems courses. 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 2001 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 page for this text, we provide several sample syllabi
`that suggest various approaches for using the text in both introductory and
`advanced operating systems 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).
`
`Content of This Book
`
`The text is organized in eight major parts:
`
`0 Overview. Chapters 1 and 2 explain what operating systems are, what
`they do, and how they are designed and constructed. They 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 individual readers or for students in lower-level
`.
`.._‘
`who want to learn what an operating system is without getting into
`details of the internal algorithms.
`
`H
`0 Process management. Chapters 3 through 7 describe the process con
`and concurrency as the heart of modern operating systems. A . my
`is the unit of work in a system. Such a system consists of a'collecfi‘ag
`of concurrently executing processes, some of which are opemfingM_
`processes (those that execute system code) and the rest of which are use;
`processes (those that execute user code). These chapters cover methods for
`process scheduling, interprocess communication, process synchronization,
`and deadlock handling. Also included under this topic is a discussion of
`threads.
`
`
`
`
`
`
`0 Memory management. Chapters 8 and 9 deal with main memory man—
`agement 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 man-
`agement, and the effectiveness of a particular algorithm depends on the
`situation.
`
`
`
`|PR2020-01288
`
`Sony EX1053 Page 6
`
`IPR2020-01288
`Sony EX1053 Page 6
`
`

`

`Preface
`
`ix
`
`0 Storage management. Chapters 10 through 13 describe how the file system,
`mass storage, and 1/0 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 residing on the disks. These chapters describe
`the classic internal algorithms and structures of storage management.
`They provide a firm practical understanding of the algorithms used—
`the properties, advantages, and disadvantages. Since the [/0 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 the devices. We discuss system I/O in depth, including I/O
`system design, interfaces, and internal system structures and functions.
`in many ways, [/0 devices are also the slowest major components of
`the computer. Because they are a performance bottleneck, performance
`issues are examined. Matters related to secondary and tertiary storage are
`explained as well.
`
`0 Protection and security. Chapters 14 and 15 discuss the processes in an
`operating system that must be protected from one another's activities.
`For the purposes of protection and security, we use mechanisms that
`ensure that only processes that have gained proper authorization from
`the operating system can operate on the files, memory, CPU, and other
`resources. Protection is 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 information stored
`in the system (both data and code),’as well as the physical resources of
`the computer system, from unauthorized access, malicious destruction or
`alteration, and accidental introduction of inconsistency.
`
`0 Distributed systems. Chapters 16 through 18 deal with a collection of
`processors that do not share memory or a clock—a distributed system. By
`providing the user with access to the various resources that it maintains, a
`distributed system can improve computation speed and data availability
`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 and for dealing with the deadlock problem and a variety
`of failures that are not encountered in a centralized system.
`
`0 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 “correct”
`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.
`
`0 Case studies. Chapters 21 through 23 in the book, and Appendices A
`through C on the website, integrate the concepts described in this book by
`describing real operating systems. These systems include Linux, Windows
`
`|PR2020-01288
`
`Sony EX1053 Page 7
`
`IPR2020-01288
`Sony EX1053 Page 7
`
`

`

`.A\
`
`
`
`.-23-._—“n'..:1
`
`:1
`
`Preface
`
`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 “toy“ operating system. Most of its internal algorithms were
`selected for simplicity, rather than for speed or sophistication. Both Linux
`and FreeBSl) 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.
`
`Operating-System Environments
`
`This book uses examples of many real-world operating systems to illustrate
`fundamental operating-system concepts. However, particular attention is paid
`to the Microsoft family of operating systems (including Windows NT, 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:
`
`0 Windows systems. The primary programming environment for Wmdows
`systems is the Win32 API (application programming interface), which pro-
`vides 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 2000 and Mndows Xt’.
`
`'
`
`0 POSIX. t’OStX (which stands for Portable Operating System Interface) repre-
`sents a set of standards implemented primarily for UNIX-based operating
`systems. Although Windows XP and Windows 2000 systems can also run
`certain I’OSIX programs, our coverage of POStX focuses primarily on UNIX
`and Linux systems. POSIX-compliant systems must implement the POSDC
`core standard (POSIX.1)—Linux, Solaris, and Mac OS X are examples of
`POSlx-compliant systems. POSIX also defines several extensions to the
`standards, including real-time extensions (POStxlb) and an extension for
`a threads library (POSIX1.c, better known as Pthreads). We provide several
`programming examples written in C illustrating the POSIX base API, as well
`as Pthreads and the extensions for real-time programming. These example
`programs were tested on Debian Linux 2.4 and 2.6 systems, Mac OS X, and
`Solaris 9 using the gcc 3.3 compiler.
`
`‘ Java. java is a widely used programming language with a rich API and
`built-in language support for thread cr1_-1tion 111d management. java
`programs run on any operating sysle m.511,1,,111rti11 1Jav11 virtual machine
`(or JVM) We illustrate various ope runny sy1'lt 111 and networking concepts
`with several Java programs tested 113111,: the |.1vn I At
`|VM.
`
`
`
`|PR2020-01288
`
`Sony EX1053 Page 8
`
`IPR2020-01288
`Sony EX1053 Page 8
`
`

`

`Preface
`
`xi
`
`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 comfortable 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 AP]; socket
`programming in TCP/IP is highlighted using the Java AP].
`
`The Seventh Edition
`
`As we wrote this seventh 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 the
`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 completely reorganized the overview
`material in Chapters 1 and 2 and have added two new chapters on special-
`purpose systems (real-time embedded systems and multimedia systems).
`Because protection and security have become more prevalent in operating
`systems, we now cover these topics earlier in the text. Moreover, we have
`substantially updated and expanded the coverage of security.
`Below, we provide a brief outline of the major changes to the various
`chapters:
`
`0 Chapter 1, Introduction, has been totally revised. In previous editions, the
`chapter gave a historical view of the development of operating systems.
`The new chapter provides a grand tour of the major operating-system
`components, along with basic coverage of computer-system organization.
`
`is a revised version of old
`0 Chapter 2, Operating-System Structures,
`Chapter 3, with many additions, including enhanced discussions of system
`calls and operating-system structure. It also provides significantly updated
`coverage of virtual machines.
`
`0 Chapter 3, Processes, is the old Chapter 4. It includes new coverage of how
`processes are represented in Linux and illustrates process creation using
`both the POSIX and Win32 APls. Coverage of shared memory is enhanced
`with a program illustrating the shared-memory APl available for POSlX
`systems.
`
`0 Chapter 4, Threads, is the old Chapter 5. The chapter presents an enhanced
`discussion of thread libraries, including the POSIX, Win32 API, and Java
`thread libraries. It also provides updated coverage of threading in Linux.
`
`|PR2020-01288
`
`Sony EX1053 Page 9
`
`IPR2020-01288
`Sony EX1053 Page 9
`
`

`

`"\
`
`i
`
`xii
`
`Preface
`
`Chapter 5, CPU Scheduling, is the old Chapter 6. The chapter offers a
`significantly updated discussion of scheduling issues for multiprocessor
`systems, including processor affinity and load-balancing algorithms. It
`also features a new section on thread scheduling, including Pthreads, and
`updated coverage of table-driven scheduling in Solaris. The section on
`Linux scheduling has been revised to cover the scheduler used in the 2.6
`kernel.
`
`is the old Chapter 7. We have
`Chapter 6, Process Synchronization,
`removed the coverage of two-process solutions and now discuss only
`Peterson’s solution, as the two-process algorithms are not guaranteed to
`work on modern processors. The chapter also includes new sections on
`synchronization in the Linux kernel and in the Pthreads API.
`
`is the old Chapter 8. New coverage includes
`Chapter 7, Deadlocks,
`a program example illustrating deadlock in a multithreaded Pthread
`program.
`
`
`
`Chapter 8, Main Memory, is the old Chapter 9. The chapter no longer
`covers overlays. In addition, the coverage of segmentation has seen sig- .
`nificant modification, including an enhanced discussion of segmentation
`in Pentium systems and a discussion of how Linux is designed for sucli
`segmented systems.
`
`Chapter 9, Virtual Memory, is the old Chapter 10. The Chapter fea .
`expanded coverage of motivating virtual memory as well as covera'
`
`
`
`
`
`shared memory (via memory-mapped files) using the Win32 API.»
`details of memory management hardware have been modernized. A.
`section on allocating memory within the kernel discusses the bu’va
`algorithm and the slab allocator.
`'
`
`
`
`
`Chapter 10, File-System Interface, is the old Chapter 11. It hé___
`updated and an example of Windows XP ACLs has been added,
`
`
`Chapter 11, File-System Implementation, is the old Chapter 12. A ‘
`include a full description of the WAFL file system and inclusion. )
`ZFS file system.
`a ' I ‘ '0
`Chapter 12, Mass-Storage Structure, is the old Chapter if' ‘
`coverage of modern storage arrays, including new RAID t7
`features such as thin provisioning.
`-
`Chapter 13, I10 Systems, is the old Chapter 13 updated with coverag '
`new material.
`‘
`
`
`
`2
`
`Chapter 14, Protection, is the old Chapter 18 updated with coverage of the
`principle of least privilege.
`
`Chapter 15, Security, is the old Chapter 19. The chapter has undergone
`a major overhaul, with all sections updated. A full example of a buffer-
`overflow exploit is included, and coverage of threats, encryption, and
`security tools has been expanded.
`
`Chapters 16 through 18 are the old Chapters 15 through [7, updated with
`coverage of new material.
`
`
`
`‘
`
`|PR2020-01288
`
`Sony EX1053 Page 10
`
`IPR2020-01288
`Sony EX1053 Page 10
`
`

`

`Preface
`
`xiii
`
`0 Chapter 19, Real-Time Systems, is a new chapter focusing on real—time
`and embedded computing systems, which have requirements different
`from those of many traditional systems. The chapter provides an overview
`of real-time computer systems and describes how operating systems must
`be constructed to meet the stringent timing deadlines of these systems.
`
`0 Chapter 20, Multimedia Systems, is a new chapter detailing developments
`in the relatively new area of multimedia systems. Multimedia data differ
`from conventional data in that multimedia data—such as frames of video
`
`——must be delivered (streamed) according to certain time restrictions. The
`chapter explores how these requirements affect the design of operating
`svstems.
`
`0 Chapter 21, The Linux System, is the old Chapter 20, updated to reflect
`changes in the 2.6 kernel—the most recent kernel at the time this text was
`written.
`
`0 Chapter 22, XP, has been updated.
`
`0 Chapter 22, Influential Operating Systems, has been updated.
`
`The old Chapter 21 (Windows 2000) has been turned into Appendix C. As in
`the previous edition, the appendices are provided online.
`
`Programming Exercises and Projects
`
`To emphasize the concepts presented in the text, we have added several
`programming exercises and projects that use the POSIX and Win32 APlsas well
`as Java. We have added over 15 new programming exercises that emphasize
`processes, threads, shared memory, process synchronization, and networking.
`In addition, we have added several programming projects which are more
`involved than standard programming exercises. These projects include adding
`a system call to the Linux kernel, creating a UNIX shell using the f orkO system
`call, a multithreaded matrix application, and the producer-consumer problem
`using shared memory.
`
`Teaching Supplements and Web Page
`
`The web page for the book contains such material as a set of slides to accompany
`the book, model course syllabi, all C and Java source code, and up-to—date
`errata. The web page also contains the book’s three case-study appendices and
`the Distributed Communication appendix. The URL is:
`
`http:/ /www.os-book.com
`
`New to this edition is a print supplement called the Student Solutions
`Manual. Included are problems and exercises with solutions not found in
`the text that should help students master the concepts presented. You can
`purchase a print copy of this supplement at Wiley’s website by going to
`http:/ /www.wiley.com/college/silberschatz and choosing the Student Solu—
`tions Manual link.
`
`|PR2020-01288
`
`Sony EX1053 Page 11
`
`IPR2020-01288
`Sony EX1053 Page 11
`
`

`

`A‘s
`
`xiv
`
`Preface
`
`To obtain restricted supplements, such as the solution guide to the exercises
`in the text, contact your local John Wiley & Sons sales representative. Note that
`these supplements are avaialble only to faculty who use this text. You can
`find your representative at the “Find a Rep?" web page: http://www.jsw~
`edcv.wiley.com / college / findarep.
`
`Mailing List
`
`We have switched to the mailman system for communication among the users
`of Operating System Concepts. If you wish to use this facility, please visit the
`following URL and follow the instructions there to subscribe:
`
`httpz/ / mailman.cs.yale.edu / mailman/ listinfo/ os-book-list
`
`The mailman mailing-list system provides many benefits, such as an archive
`of postings, as well as several subscription options, including digest and Web»
`only. To send messages to the list, send e-mail to:
`
`os-book-list@cs.yale.edu
`
`Depending on the message, we will either reply to you personally or fo‘rw, i
`the message to everyone on the mailing list. The list is moderated, so you. ‘
`receive no inappropriate mail
`..
`Students who are using this book as a text for class should not use the T?
`to ask for answers to the exercises. They will not be provided.
`
`
`
`
`
`
`
`Suggestions
`
`We have attempted to clean up every error in this new Edi:
`
`__
`identify.
`'
`If you would like to suggest improvements Or to €611
`we would also be glad to hear from you. Please sendf:c_ ,
`os-book@cs.yale.edu.
`‘
`
`Acknowledgmentse.
`
`1-3 “00‘
`
`t
`
`,
`
`Ibis book is derived from the previous editions, the first three of which were
`coauthored by James Peterson. Others who helped us with previous editions
`include Hamid Arabnia, Rida Bazzi, Randy Bentson, David Black, Joseph
`Boykin, Jeff Brumf‘ield, Gael Buckley, Roy Campbell, P. C. Capon, John Car-
`penter, Gil Garrick, Thomas Casavant, Ajoy Kumar Datta, Joe Deck, Sudarshan
`K. Dhall, Thomas Doeppner, Caleb Drake, M. Racsit Eskicioglu, Hans Flack,
`Robert Fowler, G. Scott Graham, Richard Guy, Max Hailperin, Rebecca Hart-
`man, Wayne Hathaway, Christopher Haynes, Bruce Hillyer, Mark Holliday,
`Ahmed Kamel, Richard Kieburtz, Carol Kroll, Morty Kwestel, Thomas LeBlanc,
`John Leggett, Jerrold Leichter, Ted Leung, Gary Lippman, Carolyn Miller,
`
`
`
`|PR2020-01288
`
`Sony EX1053 Page 12
`
`IPR2020-01288
`Sony EX1053 Page 12
`
`

`

`Preface
`
`xv
`
`Michael Molloy, Yoichi Muraoka, Jim M. Ng, Banu Ozden, Ed Posnak, Boris
`Putanec, Charles Qualline, John Quarterman, Mike Reiter, Gustavo Rodriguez—
`Rivera, Carolyn J. C. Schauble, Thomas P. Skinner, Yannis Smaragdakis, Jesse
`St. Laurent, John Stankovic, Adam Stauffer, Steven Stepanek, Hal Stern, Louis
`Stevens, Pete Thomas, David Umbaugh, Steve Vinoski, Tommy Wagner, Larry
`L. Wear, John Werth, James M. Westall, J. S. Weston, and Yang Xiang
`Parts of Chapter 12 were derived from a paper by Hillyer and Silberschatz
`[1996]. Parts of Chapter 17 were derived from a paper by Levy and Silberschatx
`[1990]. Chapter 2] was derived from an unpublished manuscript by Stephen
`Tweedie. Chapter 22 was derived from an unpublished manuscript by Dave
`Probert, Cliff Martin, and Avi Silberschatz. Appendix C was derived from
`an unpublished manuscript by Cliff Martin. Cliff Martin also helped with
`updating the UNIX appendix to cover FreeBSl). Mike Shapiro, Bryan Cantrill,
`and Jim Mauro answered several Solaris—related questions. Josh Dees and Rob
`Reynolds contributed coverage of Microsoft’s .NET. The project for designing
`and enhancing the UNIX shell interface was contributed by John Trono of St.
`Michael's College in Winooski, Vermont.
`This edition has many new exercises and accompanying solutions, which
`were supplied by Arvind Krishnamurthy.
`We thank the following people who reviewed this version of the book: Bart
`Childs, Don Heller, Dean Hougen Michael Huangs, Morty Kewstel, Euripides
`Montagne, and John Sterling.
`Our Acquisitions Editors, Bill Zobrist and Paul Crockett, provided expert
`guidance as we prepared this edition. They were assisted by Simon Durkin,
`who managed many details of this project smoothly. The Senior Production
`Editor was Ken Santor. The cover illustrator was Susan Cyr, and the cover
`designer was Madelyn Lesure. Beverly Peavler copy-edited the manuscript.
`The freelance proofreader was Katrina Avery; the freelance indexer was Rose-
`mary Simpson. Marilyn Tumamian helped generate figures and presentation
`slides.
`
`Finally, we would like to add some personal notes. Avi is starting a new
`chapter in his life, returning to academia and partnering with Valerie. This
`combination has given him the peace of mind to focus on the writing of this text.
`Pete would like to thank his family, friends, and coworkers for their support
`and understanding during the project. Greg would like to acknowledge the
`continued interest and support from his family. However, he would like to
`single out his friend Peter Ormsby who—no matter how busy his life seems
`to be—always first asks, “How’s the writing coming along?"
`
`Abraham Silberschatz, New Haven, CT, 2004
`Peter Baer Galvin, Burlington, MA, 2004
`Greg Gagne, Salt Lake City, UT, 2004
`
`|PR2020-01288
`
`Sony EX1053 Page 13
`
`IPR2020-01288
`Sony EX1053 Page 13
`
`

`

`
`
`Confe/Ifs
`
`PART ONE I OVERVIEW
`
`Chapter 1
`
`Introduction
`
`3
`1.1 What Operating Systems Do
`1.2 Computer—System Organization 6
`1.3 Computer—System Architecture
`12
`1.4 Operating-System Structure
`15
`1.5 Operating-System Operations
`17
`1.6 Process Management
`20
`1.7 Memory Management
`21
`1.8 Storage Management
`22
`
`26
`
`1.9 Protection and Security
`1.10 Distributed Systems
`28
`1.11 Special—Purpose Systems
`1.12 Computing Environments
`1.13 Summary 34
`Exercises
`36
`
`29
`31
`
`Bibliographical Notes
`
`38
`
`Chapter 2 Operating-System Structures
`
`39
`2.] Operating-System Services
`2.2 User Operating-System Interface
`2.3 System Calls
`43
`2.4 Types of System Calls
`2.5 System Programs
`55
`2.6 Operating-System Design and
`Implementation 56
`
`47
`
`2.7 Operating-System Structure
`2.8 Virtual Machines
`64
`
`58
`
`41
`
`2.9 Operating-System Generation 70
`2.10 System Boot
`71
`2.11 Summary 72
`Exercises
`73
`
`Bibliographical Notes
`
`78
`
`PART TWO I PROCESS MANAGEMENT
`
`Chapter 3 Processes
`
`81
`3.1 Process Concept
`3.2 ProcessScheduling 85
`90
`3.3 Operations on Processes
`3.4 lnterprocess Communication 96
`3.5 Examples ofll’C Systems
`102
`
`3.6 Communication in Client—
`
`Server Systems
`3.7 Summary
`115
`Exercises
`116
`
`108
`
`Bibliographical Notes
`
`125
`
`xvii
`
`|PR2020-01288
`
`Sony EX1053 Page 14
`
`IPR2020-01288
`Sony EX1053 Page 14
`
`

`

`
`
`
`
`xviii
`
`Contents
`
`Chapter 4 Threads
`
`4.1 Overview 127
`4.2 Multithreading Models
`4.3 Thread Libraries
`131
`
`129
`
`4.5 Operating-System Examples
`4.6 Summary 146
`Exercises
`146
`
`143
`
`4.4 Threading Issues
`
`138
`
`Bibliographical Notes
`
`151
`
`Chapter 5 CPU Scheduling
`
`153
`5.1 Basic Concepts
`157
`5.2 Scheduling Criteria
`158
`5.3 Scheduling Algorithms
`5.4 Multiple-Processor Scheduling 169
`5.5 Thread Scheduling 172
`
`5.6 Operating System Examples
`5.7 Algorithm Evaluation 181
`5.8 Summary 185
`Exercises
`186
`Bibliographical Notes
`
`173
`
`i
`
`189
`
`Chapter 6 Process Synchronization
`
`.
`
`191
`6.1 Background
`6.2 The Critical-Section Problem 193
`6.3 Peterson’s Solution
`195
`
`6.4 Synchronization Hardware
`6.5 Semaphores
`200
`6.6 Classic Problems of
`Synchronization 204
`
`197
`
`Chapter 7 Deadlocks
`
`245
`7.1 System Model
`7.2 Deadlock Characterization 247
`7.3 Methods for Handling Deadlocks
`7.4 Deadlock Prevention 253
`75 Deadlock Avoidance 256
`
`7.52
`
`
`
`I”
`6.7 Monitors 209
`6.8 Synchronization Examples 217
`6.9 Atomic Transactions 22 'l
`
`
`
`6.10 Summary 230
`,‘_
`Exercises
`231
`Bibliographical Notes 242
`
`
`
`7.6 DmdlockDetecli "
`7.7 Recovery From I -.,-,
`7.8 Summary 267'
`Exercises
`268"-,
`Bibliographical
`
`1
`
`
`
`PART THREE I MEMORY MANAGEMENT
`
`Chapter 8 Main Memory
`
`8.1 Background 275
`8.2 Swapping 282
`8.3 Contiguous Memory Allocation 284
`8.4 Paging 288
`8.5 Structure of the Page Table
`
`297
`
`302
`8.6 Segmentation
`8.7 Example: The Intel Pentium 305
`8.8 Summary
`309
`Exercises
`310
`Bibliographical Notes
`
`312
`
`A
`
`|PR2020-01288
`
`Sony EX1053 Page 15
`
`IPR2020-01288
`Sony EX1053 Page 15
`
`

`

`Contents
`
`xix
`
`Chapter 9 Virtual Memory
`
`315
`9.1 Background
`319
`9.2 Demand Paging
`325
`9.3 Copy-on-Write
`327
`9.4 Page Replacement
`9.5 Allocation of Frames
`340
`
`9.6 Thrashing 343
`9.7 Memory-Mapped Files
`
`348
`
`9.8 Allocating Kernel Memory 353
`9.9 Other Considerations
`357
`9.10 Operating-System Examples
`9.1] Summary 365
`Exercises
`366
`
`363
`
`Bibliographical Notes
`
`370
`
`PART FOUR I STORAGE MANAGEMENT
`
`Chapter 10 File-System Interface
`
`373
`10.1 File Concept
`382
`10.2 Access Methods
`10.3 Directory Structure
`385
`10.4 File-System Mounting 395
`10.5 FileSharing 397
`
`10.6 Protection 402
`10.7 Summary 407
`Exercises
`408
`Bibliographical Notes
`
`409
`
`Chapter 11 File-System Implementation
`
`411
`11.1 File-System Structure
`11.2 File-System Implementation 413
`11.3 Directory Implementation 419
`11.4 Allocation Methods
`421
`429
`11.5 Free'Space Management
`11.6 Efficiency and Performance
`431
`11.7 Recovery
`435
`
`437
`
`11.8 Log-Structured File Systems
`11.9 NFS 438
`11.10 Example: The WAFL File System 444
`11.11 Summary 446
`Exercises
`447
`Bibliographical Notes
`
`449
`
`Chapter 12 Mass-Storage Structure
`
`121 Overview of Mass-Storage
`Structure
`45]
`454
`12.2 Disk Structure
`12.3 Disk Attachment
`455
`12.4 Disk Scheduling 456
`12.5 Disk Management
`462
`12.6 Swap-Space Management 466
`
`Chapter 13 U0 Systems
`13.1 Overview 495
`13-2 [/0 Hardware
`
`496
`
`13.3 Application I/O Interface
`13.4 Kernel I/O Subsystem 511
`13.5 Transforming I/O Requests to
`Hardware Operations
`518
`
`505
`
`468
`12.7 RAID Structure
`12.8 Stable-Storage Implementation 477
`12.9 Tertiary-Storage Structure
`478
`12.10 Summary 488
`Exercises
`489
`Bibliographical Notes
`
`493
`
`13.6 STREAMS 520
`13.7 Performance
`522
`
`13.8 Summary 525
`Exercises
`526
`Bibliographical Notes
`
`527
`
`|PR2020-01288
`
`Sony EX1053 Page 16
`
`IPR2020-01288
`Sony EX1053 Page 16
`
`

`

`.13
`
`XX
`
`Contents
`
`PART FIVE I PROTECTION AND SECURITY
`
`Chapter 14 Protection
`14.1 Goals of Protection
`531
`
`14.2 Principles of Protection 532
`14.3 Domain of Protection 533
`14.4 Access Matrix 538
`14.5 Implementation of Access Matrix 542
`14.6 Access Control
`545
`
`546
`14.7 Revocation of Access Rights
`547
`14.8 Capability-Based Systems
`14.9 Language-Based Protection 550
`14.10 Summary 555
`Exercises
`556
`Bibliographical Notes
`
`557
`
`Chapter 15 Security
`
`1

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket