ارسال رایگان سفارش های بالاتر از 700 هزار تومان


دسته‌بندی کالاها

Operating System Concepts : Ninth Edition
کلیک برای بزرگنمایی

Operating System Concepts : Ninth Edition

ویژگی‌ها

741937

ناشر

Wiley

مولف

Abraham Silberschats – Peter Baer Galvin – Greg Gagne

تعداد صفحه

944

مشاهده همه ویژگی‌ها


توضیحات محصول

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 1. In that chapter,
we also include an overview of the fundamental data structures that are
prevalent in most operating systems. For code examples,weuse 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, MicrosoftWindows, 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
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 1 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 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 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, 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 8 and 9 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 inmemory.There aremanydifferent
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
performance bottleneck, we also examine performance issues associated
with I/O devices.
• 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 fromthe operating system
can operate on the files, memory, CPU, and other resources of the system.
Protection is a mechanism for controlling the access of programs, processes,
or users to computer-system resources. 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.
• Advanced topics. Chapters 16 and 17 discuss virtual machines and
distributed systems. Chapter 16 is a new chapter that provides an overview
of virtual machines and their relationship to contemporary operating
systems. Included is an overview of the hardware and software techniques
that make virtualization possible. Chapter 17 condenses and updates the
three chapters on distributed computing from the previous edition. This
change is meant to make it easier for instructors to cover the material in
the limited time available during a semester and for students to gain an
understanding of the core ideas of distributed computing more quickly.
• Case studies. Chapters 18 and 19 in the text, along with AppendicesA and
B (which are available on (http://www.os-book.com), present detailed
case studies of real operating systems, including Linux, Windows 7,
FreeBSD, and Mach. Coverage of both Linux andWindows 7 are presented
throughout this text; however, the case studies provide much more detail.
It is especially interesting to compare and contrast the design of 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
by the recent growth in three fundamental areas that affect operating systems:
1. Multicore systems
2. Mobile computing
3. Virtualization
To emphasize these topics, we have integrated relevant coverage throughout
this new edition—and, in the case of virtualization, have written an entirely
new chapter. Additionally, we have rewritten material in almost every chapter
by bringing older material up to date and removing material that is no longer
interesting or relevant.
We have also made substantial organizational changes. For example, we
have eliminated the chapter on real-time systems and instead have integrated
appropriate coverage of these systems throughout the text.We have reordered
the chapters on storage management and have moved up the presentation
of process synchronization so that it appears before process scheduling. Most
of these organizational changes are based on our experiences while teaching
courses on operating systems.
Below, we provide a brief outline of the major changes to the various
chapters:
• Chapter 1, Introduction, includes updated coverage of multiprocessor
and multicore systems, as well as a new section on kernel data structures.
Additionally, the coverage of computing environments now includes
mobile systems and cloud computing. We also have incorporated an
overview of real-time systems.
• Chapter 2, Operating-System Structures, provides new coverage of user
interfaces for mobile devices, including discussions of iOS and Android,
and expanded coverage of Mac OS X as a type of hybrid system.
• Chapter 3, Processes, now includes coverage of multitasking in mobile
operating systems, support for the multiprocess model in Google’s Chrome
web browser, and zombie and orphan processes in UNIX.
• Chapter 4, Threads, supplies expanded coverage of parallelism and
Amdahl’s law. It also provides a new section on implicit threading,
including OpenMP and Apple’s Grand Central Dispatch.
• Chapter 5, Process Synchronization (previously Chapter 6), adds a new
section on mutex locks as well as coverage of synchronization using
OpenMP, as well as functional languages.
• Chapter 6, CPU Scheduling (previously Chapter 5), contains new coverage
of the Linux CFS scheduler andWindows user-mode scheduling. Coverage
of real-time scheduling algorithms has also been integrated into this
chapter.
• Chapter 7, Deadlocks, has no major changes.
• Chapter 8, Main Memory, includes new coverage of swapping on mobile
systems and Intel 32- and 64-bit architectures. A new section discusses
ARM architecture.
• Chapter 9, Virtual Memory, updates kernel memory management to
include the Linux SLUB and SLOB memory allocators.
• Chapter 10, Mass-Storage Structure (previously Chapter 12), adds coverage
of solid-state disks.
• Chapter 11, File-System Interface (previously Chapter 10), is updated
with information about current technologies.
• Chapter 12, File-System Implementation (previously Chapter 11), is
updated with coverage of current technologies.
• Chapter 13, I/O, updates technologies and performance numbers, expands
coverage of synchronous/asynchronous and blocking/nonblocking I/O,
and adds a section on vectored I/O.
• Chapter 14, Protection, has no major changes.
• Chapter 15, Security, has a revised cryptography section with modern
notation and an improved explanation of various encryption methods and
their uses. The chapter also includes new coverage ofWindows 7 security.
• Chapter 16, Virtual Machines, is a new chapter that provides an overview
of virtualization and how it relates to contemporary operating systems.
• Chapter 17, Distributed Systems, is a new chapter that combines and
updates a selection of materials from previous Chapters 16, 17, and 18.
• Chapter 18, The Linux System (previously Chapter 21), has been updated
to cover the Linux 3.2 kernel.
• Chapter 19, Windows 7, is a new chapter presenting a case study of
Windows 7.
• Chapter 20, Influential Operating Systems (previously Chapter 23), has
no major changes.
Programming Environments
This book uses examples of many real-world operating systems to illustrate
fundamental operating-system concepts. Particular attention is paid to Linux
and Microsoft Windows, but we also refer to various versions of UNIX
(including Solaris, BSD, andMac OS X).
The text also provides several example programs written in C and
Java. These programs are intended to run in the following programming
environments:
• POSIX. POSIX (which stands for Portable Operating System Interface) represents
a set of standards implemented primarily for UNIX-based operating
systems. AlthoughWindows systems can also run certain POSIX programs,
our coverage of POSIX focuses 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 C
illustrating the POSIX base API, as well as Pthreads and the extensions for
real-time programming. These example programs were tested on Linux 2.6
and 3.2 systems, Mac OS X 10.7, and Solaris 10 using the gcc 4.0 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 supporting a Java virtual machine
(or JVM).We illustrate various operating-system and networking concepts
with Java programs tested using the Java 1.6 JVM.
• Windows systems. The primary programming environment forWindows
systems is theWindows API, which provides a comprehensive set of functions
for managing processes, threads, memory, and peripheral devices.
We supply several C programs illustrating the use of this API. Programs
were tested on systems running Windows XP and Windows 7.
We have chosen these three programming environments because we
believe that they best represent the twomost popular operating-system models
—Windows and UNIX/Linux—along with the widely used Java environment.
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 API; socket
programming in TCP/IP is highlighted using the Java API.
Linux Virtual Machine
To help students gain a better understanding of the Linux system, we
provide a Linux virtual machine, including the Linux source code,
that is available for download from the the website supporting this
text (http://www.os-book.com). This virtual machine also includes a
gcc development environment with compilers and editors. Most of the
programming assignments in the book can be completed on this virtual
machine, with the exception of assignments that require Java or the Windows
API.
We also provide three programming assignments that modify the Linux
kernel through kernel modules:
1. Adding a basic kernel module to the Linux kernel.
2. Adding a kernel module that uses various kernel data structures.
3. Adding a kernel module that iterates over tasks in a running Linux
system.
Over time it is our intention to add additional kernel module assignments on
the supporting website.
Supporting Website
When you visit the website supporting this text at http://www.os-book.com,
you can download the following resources:
• Linux virtual machine
• C and Java source code
• Sample syllabi
• Set of Powerpoint slides
• Set of figures and illustrations
• FreeBSD and Mach case studies
• Solutions to practice exercises
• Study guide for students
• Errata
Notes to Instructors
On the website 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 instructors to progress sequentially
through the chapters, as this strategy provides the most thorough study of
operating systems. However, by using the sample syllabi, an instructor can
select a different ordering of chapters (or subsections of chapters).
In this edition, we have added over sixty new written exercises and over
twenty new programming problems and projects. Most of the new programming
assignments involve processes, threads, process synchronization, and
memory management. Some involve adding kernel modules to the Linux
system which requires using either the Linux virtual machine that accompanies
this text or another suitable Linux distribution.
Solutions to written exercises and programming assignments are available
to instructors who have adopted this text for their operating-system class. To
obtain these restricted supplements, contact your local John Wiley & Sons
sales representative. You can find your Wiley representative by going to
http://www.wiley.com/college and clicking “Who’s my rep?”
Notes to Students
We encourage you to take advantage of the practice exercises that appear at
the end of each chapter. Solutions to the practice exercises are available for
download from the supporting website http://www.os-book.com. We also
encourage you to read through the study guide, which was prepared by one of
our students. Finally, for students who are unfamiliar with UNIX and Linux
systems, we recommend that you download and install the Linux virtual
machine that we include on the supporting website. Not only will this provide
you with a new computing experience, but the open-source nature of Linux
will allow you to easily examine the inner details of this popular operating
system.
We wish you the very best of luck in your study of operating systems.
Contacting Us
We have endeavored to eliminate typos, bugs, and the like from the text. But,
as in new releases of software, bugs almost surely remain. An up-to-date errata
list is accessible from the book’s website. We would be grateful if you would
notify us of any errors or omissions in the book that are not on the current list
of errata.
We would be glad to receive suggestions on improvements to the book.
We also welcome any contributions to the book website that could be of
use to other readers, such as programming exercises, project suggestions,
on-line labs and tutorials, and teaching tips. E-mail should be addressed to
os-book-authors@cs.yale.edu.
Acknowledgments
This 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 Brumfield, Gael Buckley, Roy Campbell, P. C. Capon, John
Carpenter, Gil Carrick, Thomas Casavant, Bart Childs, Ajoy Kumar Datta,
Joe Deck, Sudarshan K. Dhall, Thomas Doeppner, Caleb Drake, M. Racsit
Eskicio˘ glu, Hans Flack, Robert Fowler, G. Scott Graham, Richard Guy, Max
Hailperin, Rebecca Hartman, Wayne Hathaway, Christopher Haynes, Don
Heller, Bruce Hillyer, Mark Holliday, Dean Hougen, Michael Huang, Ahmed
Kamel, Morty Kewstel, Richard Kieburtz, Carol Kroll, Morty Kwestel, Thomas
LeBlanc, John Leggett, Jerrold Leichter, Ted Leung, Gary Lippman, Carolyn
Miller, Michael Molloy, Euripides Montagne, Yoichi Muraoka, Jim M. Ng,
Banu O¨ zden, 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, John Sterling, 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
Robert Love updated both Chapter 18 and the Linux coverage throughout
the text, as well as answering many of our Android-related questions. Chapter
19 was written by Dave Probert and was derived from Chapter 22 of the Eighth
Edition of Operating System Concepts. Jonathan Katz contributed to Chapter
15. Richard West provided input into Chapter 16. Salahuddin Khan updated
Section 15.9 to provide new coverage ofWindows 7 security.
Parts of Chapter 17 were derived from a paper by Levy and Silberschatz
[1990]. Chapter 18 was derived from an unpublished manuscript by Stephen
Tweedie. Cliff Martin helped with updating the UNIX appendix to cover
FreeBSD. Some of the exercises and accompanying solutions were supplied by
Arvind Krishnamurthy. Andrew DeNicola prepared the student study guide
that is available on our website. Some of the the slides were prepeared by
Marilyn Turnamian.
Mike Shapiro, Bryan Cantrill, and Jim Mauro answered several Solarisrelated
questions, and Bryan Cantrill from Sun Microsystems helped with the
ZFS coverage. Josh Dees and Rob Reynolds contributed coverage of Microsoft’s
NET. The project for POSIX message queues was contributed by John Trono of
Saint Michael’s College in Colchester, Vermont.
Judi Paige helped with generating figures and presentation of slides.
Thomas Gagne prepared new artwork for this edition. Owen Galvin helped
copy-editChapter 16. MarkWogahn has made sure that the software to produce
this book (LATEX and fonts) works properly. Ranjan Kumar Meher rewrote some
of the LATEX software used in the production of this new text.
Our Executive Editor, Beth Lang Golub, provided expert guidance as we
prepared this edition. She was assisted by Katherine Willis, who managed
many details of the project smoothly. The Senior Production Editor, Ken Santor,
was instrumental in handling all the production details.
The cover illustrator was Susan Cyr, and the cover designer was Madelyn
Lesure. Beverly Peavler copy-edited themanuscript. The freelance proofreader
was Katrina Avery; the freelance indexer was WordCo, Inc.
Abraham Silberschatz, New Haven, CT, 2012
Peter Baer Galvin, Boston, MA, 2012
Greg Gagne, Salt Lake City, UT, 2012


 


Contents

PART ONE OVERVIEW

Chapter 1 Introduction

1.1 What Operating Systems Do 4
1.2 Computer-System Organization 7
1.3 Computer-System Architecture 12
1.4 Operating-System Structure 19
1.5 Operating-System Operations 21
1.6 Process Management 24
1.7 Memory Management 25
1.8 Storage Management 26
1.9 Protection and Security 30
1.10 Kernel Data Structures 31
1.11 Computing Environments 35
1.12 Open-Source Operating Systems 43
1.13 Summary 47
Exercises 49
Bibliographical Notes 52

Chapter 2 Operating-System Structures

2.1 Operating-System Services 55
2.2 User and Operating-System
Interface 58
2.3 System Calls 62
2.4 Types of System Calls 66
2.5 System Programs 74
2.6 Operating-System Design and
Implementation 75
2.7 Operating-System Structure 78
2.8 Operating-System Debugging 86
2.9 Operating-System Generation 91
2.10 System Boot 92
2.11 Summary 93
Exercises 94
Bibliographical Note0s 101

PART TWO PROCESS MANAGEMENT

Chapter 3 Processes

3.1 Process Concept 105
3.2 Process Scheduling 110
3.3 Operations on Processes 115
3.4 Interprocess Communication 122
3.5 Examples of IPC Systems 130
3.6 Communication in Client–
Server Systems 136
3.7 Summary 147
Exercises 149
Bibliographical Notes 161

Chapter 4 Threads

4.1 Overview 163
4.2 Multicore Programming 166
4.3 Multithreading Models 169
4.4 Thread Libraries 171
4.5 Implicit Threading 177
4.6 Threading Issues 183
4.7 Operating-System Examples 188
4.8 Summary 191
Exercises 191
Bibliographical Notes 199

Chapter 5 Process Synchronization

5.1 Background 203
5.2 The Critical-Section Problem 206
5.3 Peterson’s Solution 207
5.4 Synchronization Hardware 209
5.5 Mutex Locks 212
5.6 Semaphores 213
5.7 Classic Problems of
Synchronization 219
5.8 Monitors 223
5.9 Synchronization Examples 232
5.10 Alternative Approaches 238
5.11 Summary 242
Exercises 242
Bibliographical Notes 258

Chapter 6 CPU Scheduling

6.1 Basic Concepts 261
6.2 Scheduling Criteria 265
6.3 Scheduling Algorithms 266
6.4 Thread Scheduling 277
6.5 Multiple-Processor Scheduling 278
6.6 Real-Time CPU Scheduling 283
6.7 Operating-System Examples 290
6.8 Algorithm Evaluation 300
6.9 Summary 304
Exercises 305
Bibliographical Notes 311

Chapter 7 Deadlocks

7.1 System Model 315
7.2 Deadlock Characterization 317
7.3 Methods for Handling Deadlocks 322
7.4 Deadlock Prevention 323
7.5 Deadlock Avoidance 327
7.6 Deadlock Detection 333
7.7 Recovery from Deadlock 337
7.8 Summary 339
Exercises 339
Bibliographical Notes 346

PART THREE MEMORY MANAGEMENT

Chapter 8 Main Memory

8.1 Background 351
8.2 Swapping 358
8.3 Contiguous Memory Allocation 360
8.4 Segmentation 364
8.5 Paging 366
8.6 Structure of the Page Table 378
8.7 Example: Intel 32 and 64-bit
Architectures 383
8.8 Example: ARM Architecture 388
8.9 Summary 389
Exercises 390
Bibliographical Notes 394

Chapter 9 Virtual Memory

9.1 Background 397
9.2 Demand Paging 401
9.3 Copy-on-Write 408
9.4 Page Replacement 409
9.5 Allocation of Frames 421
9.6 Thrashing 425
9.7 Memory-Mapped Files 430
9.8 Allocating Kernel Memory 436
9.9 Other Considerations 439
9.10 Operating-System Examples 445
9.11 Summary 448
Exercises 449
Bibliographical Notes 461

PART FOUR STORAGE MANAGEMENT

Chapter 10 Mass-Storage Structure

10.1 Overview of Mass-Storage
Structure 467
10.2 Disk Structure 470
10.3 Disk Attachment 471
10.4 Disk Scheduling 472
10.5 Disk Management 478
10.6 Swap-Space Management 482
10.7 RAID Structure 484
10.8 Stable-Storage Implementation 494
10.9 Summary 496
Exercises 497
Bibliographical Notes 501

Chapter 11 File-System Interface

11.1 File Concept 503
11.2 Access Methods 513
11.3 Directory and Disk Structure 515
11.4 File-System Mounting 526
11.5 File Sharing 528
11.6 Protection 533
11.7 Summary 538
Exercises 539
Bibliographical Notes 541

Chapter 12 File-System Implementation

12.1 File-System Structure 543
12.2 File-System Implementation 546
12.3 Directory Implementation 552
12.4 Allocation Methods 553
12.5 Free-Space Management 561
12.6 Efficiency and Performance 564
12.7 Recovery 568
12.8 NFS 571
12.9 Example: The WAFL File System 577
12.10 Summary 580
Exercises 581
Bibliographical Notes 585

Chapter 13 I/O Systems

13.1 Overview 587
13.2 I/O Hardware 588
13.3 Application I/O Interface 597
13.4 Kernel I/O Subsystem 604
13.5 Transforming I/O Requests to
Hardware Operations 611
13.6 STREAMS 613
13.7 Performance 615
13.8 Summary 618
Exercises 619
Bibliographical Notes 621

PART FIVE PROTECTION AND SECURITY

Chapter 14 Protection

14.1 Goals of Protection 625
14.2 Principles of Protection 626
14.3 Domain of Protection 627
14.4 Access Matrix 632
14.5 Implementation of the Access
Matrix 636
14.6 Access Control 639
14.7 Revocation of Access Rights 640
14.8 Capability-Based Systems 641
14.9 Language-Based Protection 644
14.10 Summary 649
Exercises 650
Bibliographical Notes 652

Chapter 15 Security

15.1 The Security Problem 657
15.2 Program Threats 661
15.3 System and Network Threats 669
15.4 Cryptography as a Security Tool 674
15.5 User Authentication 685
15.6 Implementing Security Defenses 689
15.7 Firewalling to Protect Systems and
Networks 696
15.8 Computer-Security
Classifications 698
15.9 An Example: Windows 7 699
15.10 Summary 701
Exercises 702
Bibliographical Notes 704

PART SIX ADVANCED TOPICS

Chapter 16 Virtual Machines

16.1 Overview 711
16.2 History 713
16.3 Benefits and Features 714
16.4 Building Blocks 717
16.5 Types of Virtual Machines and Their
Implementations 721
16.6 Virtualization and Operating-System
Components 728
16.7 Examples 735
16.8 Summary 737
Exercises 738
Bibliographical Notes 739

Chapter 17 Distributed Systems

17.1 Advantages of Distributed
Systems 741
17.2 Types of Networkbased
Operating Systems 743
17.3 Network Structure 747
17.4 Communication Structure 751
17.5 Communication Protocols 756
17.6 An Example: TCP/IP 760
17.7 Robustness 762
17.8 Design Issues 764
17.9 Distributed File Systems 765
17.10 Summary 773
Exercises 774
Bibliographical Notes 777

PART SEVEN CASE STUDIES

Chapter 18 The Linux System

18.1 Linux History 781
18.2 Design Principles 786
18.3 Kernel Modules 789
18.4 Process Management 792
18.5 Scheduling 795
18.6 Memory Management 800
18.7 File Systems 809
18.8 Input and Output 815
18.9 Interprocess Communication 818
18.10 Network Structure 819
18.11 Security 821
18.12 Summary 824
Exercises 824
Bibliographical Notes 826

Chapter 19 Windows 7

19.1 History 829
19.2 Design Principles 831
19.3 System Components 838
19.4 Terminal Services and Fast User
Switching 862
19.5 File System 863
19.6 Networking 869
19.7 Programmer Interface 874
19.8 Summary 883
Exercises 883
Bibliographical Notes 885

Chapter 20 Influential Operating Systems

20.1 Feature Migration 887
20.2 Early Systems 888
20.3 Atlas 895
20.4 XDS-940 896
20.5 THE 897
20.6 RC 4000 897
20.7 CTSS 898
20.8 MULTICS 899
20.9 IBM OS/360 899
20.10 TOPS-20 901
20.11 CP/M and MS/DOS 901
20.12 Macintosh Operating System and
Windows 902
20.13 Mach 902
20.14 Other Systems 904
Exercises 904
Bibliographical Notes 904

PART EIGHT APPENDICES

Appendix A BSD UNIX

A.1 UNIX History A1
A.2 Design Principles A6
A.3 Programmer Interface A8
A.4 User Interface A15
A.5 Process Management A18
A.6 Memory Management A22
A.7 File System A24
A.8 I/O System A32
A.9 Interprocess Communication A36
A.10 Summary A40
Exercises A41
Bibliographical Notes A42

Appendix B The Mach System

B.1 History of the Mach System B1
B.2 Design Principles B3
B.3 System Components B4
B.4 Process Management B7
B.5 Interprocess Communication B13
B.6 Memory Management B18
B.7 Programmer Interface B23
B.8 Summary B24
Exercises B25
Bibliographical Notes B26


مشخصات محصول

  • 741937
  • ناشر
  • Wiley
  • مولف
  • Abraham Silberschats – Peter Baer Galvin – Greg Gagne
  • تعداد صفحه
  • 944
  • نوبت چاپ
  • نهم
  • سال چاپ
  • 2013
  • شابک
  • 9781118063330

دیدگاه‌ها

مجموع دیدگاه‌ها:

شما هم درباره این کالا دیدگاه ثبت کنید

کاربر گرامی ، جهت درج دیدگاه لطفا با نام کاربری خود وارد شوید .

با ثبت دیدگاه و مشارکت در ارائه توضیحات این کالا، به سایر کاربران در انتخاب کمک کنید

متاسفانه هنوز دیدگاهی برای این محصول ثبت نشده

خانه دسته‌بندی سبد خرید حساب‌کاربری