throbber
rE e
`
`rr S
`
`oiST BESLS on4
`
`IPR2020-01288
`Sony EX1053 Page 1
`
`IPR2020-01288
`Sony EX1053 Page 1
`
`

`

`Operating
`System Concepis
`
`Seventh Edition
`
`ABRAHAM SILBERSCHATZ
`Yale University
`
`PETER BAER GALVIN
`Corporate Technologies, Inc.
`
`GREG GAGNE
`Westminster College
`
`WILEY
`
`JOHN WILEY & SONS. INC
`
`——F
`
`IPR2020-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 wasset in Palatino by the author using LaTeX and printed and bound by
`Von Hoffmann, Inc. The cover was printed by Von Hoffmann,Inc.
`
`This bookisprinted on acid free paper.
`

`
`Copyright © 2005 John Wiley & Sons, Inc. All rights reserved.
`
`Nopart 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, withouteither the prior written permission of the Publisher, or
`authorization through paymentof 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,JohnWiley&asei11 Rivera5, Hoboken,NJ07030,
`ToorderbooksorforcustomerserviceDiscscallbielrueILEY(225-5945).
`(201) 748-6011, fax (201) 748-6008.
`‘ ‘}c
`
`
`
`
`ISBN 0-471-69466-5 _|
`
`IPR2020-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 mychildren, Gwen Owen and Maddie
`
`Peter Baer Galvin
`
`In memory of Uncle Sonny,
`Robert Jon Heileman 1933 — 2004
`
`Greg Gagne
`
`err
`
`6 Cae
`

`
`setting tat
`ulapesrete vr a gene
`erat
`embee esa‘teeha minnie
`noet pops
`eeeahveOperst
`oeonenothaptel¥..
`¢oeol +te
`ro:
`
`a B —|
`
`IPR2020-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
`prevalentin 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.
`Wewrotethis book as a text for an introductory course in operating systems
`at the junior or senior undergraduatelevelor at the first-year graduate level.
`We hopethatpractitionerswill also findit 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 canstill
`understand the algorithms without a thorough knowledgeof these languages.
`Concepts are presented using intuitive descriptions. Importanttheoretical
`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
`questionto 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-DOS,
`WindowsNT, Windows2000, and WindowsXP; DEC VMS and TOPS-20; IBM OS/2;
`and Apple Mac OS x.
`In this text, when werefer to WindowsXPas an example operating system,
`weare implying both Windows XP and Windows2000. If a feature exists in
`WindowsXP thatis not available in Windows2000, wewill state this explicitly.
`
`vii
`
`IPR2020-01 288
`Sony EX1053 Page 5
`
`IPR2020-01288
`Sony EX1053 Page 5
`
`

`

`or
`
`Viii
`
`Preface
`
`If a feature exists in Windows 2000 but not in WindowsXP, then wewill refer
`specifically to Windows2000.
`
`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 reviewersof the text, as well as comments submitted by readers ofearlier
`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 pagefor this text, we provide several sample syllabi
`that suggest various approaches for using the text in both introductory and
`advanced operating systemscourses. 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 readercan select a different ordering of chapters (or subsections of
`chapters).
`
`Content of This Book
`
`The text is organized in eight majorparts:
`e Overview. Chapters 1 and 2 explain what operating systems are, what
`they do, and howtheyare designed and constructed. They discuss whatthe
`commonfeatures of an operating system are, what an operating system
`
`doesfor the user, and whatit does for the computer-system operator. The
`presentation is motivational and explanatory in nature. We have avoideda
`
`discussion of how things are done internally in these chapters. Therefore,
`theyare suitable for individual readersor for students in lower-level
`classes"
`
`who want to learn whatan operating system is without getting into
`details of the internal algorithms.
`
`e Process management. Chapters 3 through 7 describe the process concept
`and concurrency as the heart of modern operating systems. A p oceess
`
`is the unit of work in a system. Such a system consists of a collection
`
`of concurrently executing processes, some of which are operati
`e m
`
`processes (those that execute system code) and the rest of which are user
`processes(those that execute user code). These chapters cover methodsfor
`process scheduling, interprocess communication, process synchronization,
`and deadlock handling. Also included underthis topic is a discussion of
`threads.
`
`¢ Memory management. Chapters 8 and 9 deal with main memory man-
`agement during the execution of a process. To improveboth theutilization
`of the CPU andthe speedofits response toits 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. afl
`
`IPR2020-01288
`Sony EX1053 Page 6
`
`IPR2020-01288
`Sony EX1053 Page 6
`
`

`

`Preface
`
`ix
`
`e Storage management. Chapters 10 through 13 describe how thefile 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 programsresiding 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 I/O devices that
`attach to a computer vary widely, the operating system needs to provide
`a wide rangeof functionality to applications to allow them to controlall
`aspects of the devices. We discuss system I/O in depth, including 1/O
`system design, interfaces, and internal system structures and functions.
`In many ways, I/O devices are also the slowest major components of
`the computer. Because they are a performance bottleneck, performance
`issues are examined. Matters related to secondary andtertiary storage are
`explained as well.
`
`e 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 mustprovide a means ofspecifying the controls to be imposed,
`as well as a meansof 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.
`
`* 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 accessto the various resourcesthatit 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, whichis a file-service system whose users, servers, and storage
`devices are dispersed amongthesites of a distributed system. A distributed
`system mustprovide various mechanismsfor process synchronization and
`communication and for dealing with the deadlock problem and a variety
`of failures that are not encountered in a centralized system.
`© 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 systemsthat are the focus of the remainderofthe text.
`Real-time systems may require not only that computedresults be “correct”
`butalso 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
`through C on the website, integrate the concepts described in this book by
`describing real operating systems. These systems include Linux, Windows
`
`IPR2020-01 288
`Sony EX1053 Page 7
`
`IPR2020-01288
`Sony EX1053 Page 7
`
`

`

`
`
` -|
`
`x
`
`Preface
`
`A
`
`XP, FreeBSD, Mach, and Windows 2000. We chose Linux and FreeBsp
`because UNIX—at one time—was almost small enough to understand
`yet was not a “toy” operating system. Mostofits internal algorithms were
`selected for simplicity, rather than for speed or sophistication. Both Linux
`and FreeBSDare readily available to computer-science departments, so
`manystudents haveaccess to these systems. We chose WindowsXP and
`Windows2000 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.
`
`=eae=>-—@ASLS
`
`Operating-System Environments
`
`This book uses examples of many real-world operating systemsto illustrate
`fundamental operating-system concepts. However, particularattentionis paid
`to the Microsoft family of operating systems (including Windows NT, Windows
`2000, and WindowsXP) and various versions of UNIX (including Solaris, BSD,
`and MacOS X). Wealso provide a significant amountof coverage of the Linux
`operating system reflecting the most recent version of the kernel— Version 2.6
`—at the time this book waswritten.
`The text also provides several example programs written in C and
`Java. These programsare intended to run in the following programming
`environments:
`
`|
`
`¢ Windowssystems. The primary programming environment for Windows
`systemsis the Win32 API (application programming interface), which pro-
`vides a comprehensiveset 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 Windows2000 and WindowsxP.
`® POSIX. POSIX (which stands for Portable Operating System Interface) repre-
`sents a set of standards implemented primarily for UNIX-based operating
`systems. Although WindowsXP and Windows2000 systemscan 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
`POSIxX-compliant systems. POSIX also defines several extensions to the
`standards,including real-time extensions (POSIX1.b) and an extension for
`a threadslibrary (POSIX1.c, better known as Pthreads). We provideseveral
`programming examples written in C illustrating the POSIX base API, as well
`as Pthreads andthe extensions forreal-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 creation and management. Java
`programs run on any operating system supportiny, a Java virtual machine
`(or JVM). Weillustrate various operating system and networking concepts
`with several Java programstested using the Java 1.4 JVM.
`
`
`IPR2020-01 288
`Sony EX1053 Page 8
`
`IPR2020-01288
`Sony EX1053 Page 8
`
`

`

`Preface
`
`xi
`
`We have chosenthese three programming environments because it is our
`opinion that they best represent the two most popular models of operating
`systems: Windowsand 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 programsprovidedinthis text.
`In some instances—such as thread creation—weillustrate a specific
`concept using all
`three programming environments, allowing the reader
`to contrast the three different libraries as they address the sametask. In
`othersituations, we may use just one of the APIs to demonstrate a concept.
`For example, weillustrate shared memory using just the POSIX API; socket
`programmingin TCP/IP is highlighted using the Java API.
`
`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 longerofinterest or relevance.
`We have madesubstantive revisions and organizational changesin manyof
`the chapters. Most importantly, we have completely reorganized the overview
`material in Chapters 1 and 2 and have added two newchapters on special-
`purpose systems(real-time embedded systems and multimedia systems).
`Because protection and security have become more prevalent in operating
`systems, we now coverthese topics earlier in the text. Moreover, we have
`substantially updated and expandedthe coverageof security.
`Below, we provide a brief outline of the major changes to the various
`chapters:
`
`® Chapter 1, Introduction, has beentotally revised. In previouseditions, 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.
`¢ Chapter 2, Operating-System Structures,
`is a revised version of old
`Chapter 3, with manyadditions,including enhanceddiscussions of system
`calls and operating-system structure. It also providessignificantly updated
`coverage ofvirtual machines.
`* Chapter3, Processes,is the old Chapter4. It includes new coverage of how
`processes are represented in Linux andillustrates process creation using
`both the POSIX and Win32 APIs. Coverage of shared memory is enhanced
`with a program illustrating the shared-memory API available for POSIX
`systems.
`* Chapter 4, Threads,is the old Chapter 5, The chapter presents an enhanced
`discussion of thread libraries, including the POSIX, Win32 API, and Java
`threadlibraries. It also provides updated coverageof threading in Linux.
`
`IPR2020-01 288
`Sony EX1053 Page 9
`
`IPR2020-01288
`Sony EX1053 Page 9
`
`

`

`xii
`
`Preface
`
`Chapter 5, CPU Scheduling, is the old Chapter 6. The chapteroffers a
`significantly updated discussion of scheduling issues for multiprocessor
`systems, including processor affinity and load-balancing algorithms.It
`also features a newsectionon 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 modernprocessors. The chapter also includes new sections on
`synchronization in the Linux kernel and in the Pthreads API.
`Chapter 7, Deadlocks,
`is the old Chapter 8. New coverage includes
`
`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 systemsand a discussion of how Linux is designed for such
`segmented systems.
`
`Chapter 9, Virtual Memory, is the old Chapter 10. The chapter featu es
`expandes:-€coverage of motivating virtual memory as well as coverage
`
`shared memory (via memory-mapped files) using the Win32 API.
`
`details of memory management hardware have been modernized. A
`
`ZFS file system.
`
`Chapter 12, Mass-Storage Structure, is the old Chapter 14,yD
`coverage of modern storage arrays, including new RAIDtec
`features such as thin provisioning.
`
`Chapter 13, I/O Systems,is the old Chapter 13 updated with cOveraee of
`
`algorithm andthe slab allocator.
`Chapter 10, File-System Interface, is the old Chapter 11. It has”
`updated and an example of Windows XP ACLs has been added.
`
`
`new material.
`
`Chapter 14, Protection,is the old Chapter 18 updated with coverageof the
`principle of leastprivilege.
`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 17, updated with
`coverage of new material.
`
`
`
`mend
`IPR2020-01 288
`Sony EX1053 Page 10
`
`IPR2020-01288
`Sony EX1053 Page 10
`
`

`

`Preface
`
`xiii
`
`e Chapter 19, Real-Time Systems, is a new chapter focusing on real-time
`and embedded computing systems, which have requirements different
`from those of manytraditional systems. The chapter provides an overview
`of real-time computer systems and describes howoperating systems must
`be constructed to meet thestringent timing deadlines of these systems.
`
`e Chapter 20, Multimedia Systems,is a newchapter detailing developments
`in the relatively newarea of multimedia systems. Multimedia data differ
`from conventional data in that multimedia data—such as framesof video
`—mustbe delivered (streamed) according to certain timerestrictions. The
`chapter explores howthese requirements affect the design of operating
`systems.
`
`e Chapter 21, The Linux System,is the old Chapter 20, updatedto reflect
`changesin the 2.6 kernel—the mostrecent kernel at the time this text was
`written.
`
`e Chapter22, XP, has been updated.
`
`e 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 APIsas well
`as Java. We have added over 15 new programmingexercises that emphasize
`processes, threads, shared memory, process synchronization, and networking.
`In addition, we have added several programming projects which are more
`involved than standard programmingexercises. These projects include adding
`a system call to the Linux kernel, creating a UNIX shell using the fork () system
`call, a multithreaded matrix application, and the producer-consumer problem
`using shared memory.
`
`Teaching Supplements and Web Page
`
`The web pagefor the book contains such material asa set of slides to accompany
`the book, model course syllabi, all C and Java source code, and up-to-date
`errata. The web pagealso containsthe book’s three case-study appendices and
`the Distributed Communication appendix. The URLis:
`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.
`
`IPR2020-01288
`Sony EX1053 Page 11
`
`IPR2020-01288
`Sony EX1053 Page 11
`
`

`

`ay
`
`Preface
`
`To obtainrestricted supplements, suchasthe solution guideto the exercises
`in the text, contact your local John Wiley & Sonssales representative. Notethat
`these supplements are avaialble only to faculty who use this text. You can
`find your representative at the “Find a Rep?” web page: http://wwwjsw-
`edcv.wiley.com/college/findarep.
`
`Mailing List
`
`Wehave switched to the mailman system for communication amongthe users
`of Operating System Concepts. If you wish to use this facility, please visit the
`following URL andfollow the instructions there to subscribe:
`http:/ /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 messagesto the list, send e-mail to:
`os-book-list@cs.yale.edu
`Depending on the message, we will either reply to you personally or forward
`the message to everyone on the mailinglist. The list is moderated, so you will
`receive no inappropriatemail.
`d
`Students whoare using this bookasa text for class should notuse thelist
`to ask for answersto the exercises. They will not be provided.
`
`
`
`
`
`
`
`Suggestions
`
`We have attempted to clean up every error in this new edit iC
`aetie
`,
`If you would like to suggest improvementsor to con rib
`we would also be glad to hear from you. Please sendc ;
`os-book@cs.yale.edu.
`
`Acknowledgments
`
`i hie
`
`:
`
`r
`
`This bookis derived from the previouseditions, 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 Brumfield, Gael Buckley, Roy Campbell, P. C. Capon, John Car-
`penter, Gil Carrick, 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,
`
`
`
`IPR2020-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, ThomasP. 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 Silberschatz
`[1990]. Chapter 21 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 FreeBSD. Mike Shapiro, Bryan Cantril,
`and Jim Mauro answeredseveral 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 TronoofSt.
`Michael’s College in Winooski, Vermont.
`This edition has many new exercises and accompanying solutions, which
`were supplied by Arvind Krishnamurthy.
`Wethank the following people whoreviewed 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 manydetails 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 Turnamian helped generate figures and presentation
`slides.
`Finally, we would like to add somepersonal notes. Avi is starting a new
`chapter in his life, returning to academia and partnering with Valerie. This
`combination hasgiven him the peace of mindto 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 busyhis life seems
`to be—alwaysfirst 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
`
`IPR2020-01 288
`Sony EX1053 Page 13
`
`IPR2020-01288
`Sony EX1053 Page 13
`
`

`

`
`
`Contents
`
`PART ONE #@ OVERVIEW
`
`Chapter1 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
`
`Chapter2 Operating-System Structures
`2.7 Operating-System Structure
`2.1 Operating-System Services
`39
`2.8 Virtual Machines
`64
`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
`
`41
`
`47
`
`58
`
`2.9 Operating-System Generation 70
`2.10 System Boot
`71
`2.11 Summary 72
`Exercises
`73
`Bibliographical Notes
`
`78
`
`PARTTWO & PROCESS MANAGEMENT
`
`Chapter3 Processes
`3.1 Process Concept
`81
`3.2 Process Scheduling 85
`90
`3.3 Operations on Processes
`34 InterprocessCommunication 96
`3.5 Examples of IPC Systems
`102
`
`3.6 Communication in Client-
`
`Server Systems
`3.7 Summary
`115
`Exercises
`116
`
`108
`
`Bibliographical Notes
`
`125
`
`xvii
`
`IPR2020-01288
`Sony EX1053 Page 14
`
`IPR2020-01288
`Sony EX1053 Page 14
`
`

`

`
`
`xviii
`
`Contents
`
`Chapter4 Threads
`4.1 Overview 127
`4.2 Multithreading Models
`4.3 Thread Libraries
`131
`4.4 Threading Issues
`138
`
`129
`
`4.5 Operating-System Examples
`4.6 Summary 146
`Exercises
`146
`Bibliographical Notes
`
`151
`
`143
`
`Chapter5 CPU Scheduling
`5.1 Basic Concepts
`153
`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
`
`|
`
`189
`
`
`
`Chapter6 Process Synchronization
`ts
`6.1 Background
`191
`6.7 Monitors 209
`6.2 The Critical-Section Problem 193
`6.8 Synchronization Examples 217.
`6.3 Peterson’s Solution
`195
`6.9 Atomic Transactions 222
`6.4 Synchronization Hardware
`6.10 Summary 230
`~
`6.5 Semaphores 200
`Exercises
`231
`6.6 Classic Problems of
`Bibliographical Notes 242
`Synchronization 204
`
`197
`
`Chapter 7 Deadlocks
`7.1 System Model
`245
`7.2 Deadlock Characterization 247
`7.3 Methods for Handling Deadlocks 252
`7.4 Deadlock Prevention 253
`7.5 Deadlock Avoidance 256
`
`7.6 Deadlock Detectior
`7.7 Recovery From Dea
`7.8 Summary 267
`Exercises 268 —
`Bibliographical Not
`
`
`
`PART THREE_® MEMORY MANAGEMENT
`
`Chapter8 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: TheIntel Pentium 305
`8.8 Summary
`309
`Exercises
`310
`Bibliographical Notes
`
`312
`
`
`
`ad
`IPR2020-01 288
`Sony EX1053 Page 15
`
`IPR2020-01288
`Sony EX1053 Page 15
`
`

`

`Contents
`
`xix
`
`Chapter9 Virtual Memory
`9.1 Background
`315
`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-MappedFiles 348
`
`9.8 Allocating Kernel Memory 353
`9.9 Other Considerations
`357
`9.10 Operating-System Examples
`9.11 Summary 365
`Exercises
`366
`
`363
`
`Bibliographical Notes
`
`370
`
`PART FOUR HM STORAGE MANAGEMENT
`
`Chapter 10 File-System Interface
`10.6 Protection 402
`10.1 File Concept
`373
`10.2 Access Methods
`
`382
`
`10.7 Summary 407
`Exercises
`408
`
`385
`10.3. Directory Structure
`10.4 File-System Mounting 395
`10.5 FileSharing 397
`
`Bibliographical Notes
`
`409
`
`Chapter 11 File-System Implementation
`11.8 Log-Structured File Systems
`11.1 File-System Structure
`411
`11.9 NFS 438
`11.2 File-System Implementation 413
`11.3 Directory Implementation 419
`11.4 Allocation Methods
`421
`
`437
`
`11.10 Example: The WAFLFile System 444
`11.11 Summary 446
`Exercises
`447
`
`429
`11.5 Free-Space Management
`11.6 Efficiency and Performance
`431
`11.7 Recovery
`435
`
`Bibliographical Notes
`
`449
`
`Chapter 12 Mass-Storage Structure
`12.7 RAID Structure
`468
`12.1 Overview of Mass-Storage
`Structure
`451
`12.8 Stable-Storage Implementation 477
`454
`12.2 Disk Structure
`12.9 Tertiary-Storage Structure
`478
`12.3 Disk Attachment
`455
`12.10 Summary 488
`Exercises
`489
`12.4 Disk Scheduling 456
`12.5 Disk Management 462
`Bibliographical Notes
`12.6 Swap-Space Management 466
`
`493
`
`I/O Systems
`Chapter 13
`13.1 Overview 495
`496
`13.2 I/O Hardware
`13.3 Application I/O Interface
`13.4 KernelI/O Subsystem 511
`13.5 Transforming I/O Requests to
`Hardware Operations
`518
`
`505
`
`13.6 STREAMS 520
`13.7 Performance
`522
`13.8 Summary 525
`Exercises
`526
`Bibliographical Notes
`
`527
`
`IPR2020-01 288
`Sony EX1053 Page 16
`
`IPR2020-01288
`Sony EX1053 Page 16
`
`

`

`ah
`
`XX
`
`Contents
`
`PART FIVE @® PROTECTION AND SECURITY
`
`Chapter 14 Protection
`14.1 Goals of Protection
`531
`14.2 Principles of Protection 532
`14.3 Domainof 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
`
`Chapter15 Security
`15.1 The Security Problem 559
`15.2 Program Threats
`563
`571
`15.3 System and Network Threats
`15.4 Cryptographyas a Security Tool
`576
`15.5 User Authentication 587
`15.6 Implementing Security Defenses
`15.7 Firewalling to Protect Systems and
`Networks
`599
`
`592
`
`15.8 Computer-Security
`Classifications
`600
`15.9 An Example: Windows XP 602
`15.10 Summary 604
`Exercises
`604
`Bibliographical Notes
`
`606
`
`
`
`
`
`
`PART SIX HM DISTRIBUTED SYSTEMS
`ia
`-r
`
`
`
`Chapter 16 Distributed System Structures
`16.1 Motivation 611
`16.7 Robustness
`631
`16.2 Types of Distributed Operating
`16.8 Design Issues 633
`Systems
`613
`16.9 An Example: Networking 636
`16.3 Network Structure 617
`16.10 Summary 637
`16.4 Network Topology 620
`Exercises
`638
`16.5 Communication Structure
`Bibliographical Notes
`16.6

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