Operating System Concepts / Edition 8

Hardcover (Print)
Rent
Rent from BN.com
$24.99
(Save 88%)
Est. Return Date: 10/21/2014
Buy Used
Buy Used from BN.com
$121.95
(Save 39%)
Item is in good condition but packaging may have signs of shelf wear/aging or torn packaging.
Condition: Used – Good details
Used and New from Other Sellers
Used and New from Other Sellers
from $29.95
Usually ships in 1-2 business days
(Save 85%)
Other sellers (Hardcover)
  • All (17) from $29.95   
  • New (5) from $55.00   
  • Used (12) from $29.95   

Overview

By staying current, remaining relevant, and adapting to emerging course needs, this text has continued to define the operating systems course. This Seventh Edition not only presents the latest and most relevant systems, it also digs deeper to uncover those fundamental concepts that have remained constant throughout the evolution of today's operating systems. With this strong conceptual foundation in place, students can more easily understand the details related to specific systems.
Read More Show Less

Product Details

  • ISBN-13: 9780470128725
  • Publisher: Wiley
  • Publication date: 7/28/2008
  • Edition description: Older Edition
  • Edition number: 8
  • Pages: 992
  • Product dimensions: 9.90 (w) x 7.30 (h) x 1.50 (d)

Meet the Author

Abraham Silberschatz is the Sidney J. Weinberg Professor and Chair of Computer Science at Yale University. Prior to joining Yale, he was the Vice President of the Information Sciences Research Center at Bell Laboratories. Prior to that, he held a chaired professorship in the Department of Computer Sciences at the University of Texas at Austin.

Professor Silberschatz is an ACM Fellow and an IEEE Fellow. He received the 2002 IEEE Taylor L. Booth Education Award, the 1998 ACM Karl V. Karlstrom Outstanding Educator Award, and the 1997 ACM SIGMOD Contribution Award. In recognition of his outstanding level of innovation and technical excellence, he was awarded the Bell Laboratories President's Award for three different Projects -- the QTM Project (1998), the DataBlitz Project (1999), and the NetInventory Project (2004).

Professor Silberschatz' writings have appeared in numerous ACM and IEEE publications and other professional conferences and journals. He is a coauthor of the textbook Database System Concepts. He has also written Op-Ed articles for the New York Times, the Boston Globe, and the Hartford Courant, among others.

Peter Baer Galvin is the chief technologist for Corporate Technologies (www.cptech.com), a computer facility reseller and integrator. Before that, Mr. Galvin was the systems manager for Brown University's Computer Science Department. He is also Sun columnist for ;login: magazine. Mr. Galvin has written articles for Byte and other magazines, and has written columns for SunWorld and SysAdmin magazines. As a consultant and trainer, he has given talks and taught tutorials on security and system administration worldwide.

Greg Gagne is chair of the Computer Science department at Westminster College in Salt Lake City where he has been teaching since 1990. In addition to teaching operating systems, he also teaches computer networks, distributed systems, and software engineering. He also provides workshops to computer science educators and industry professionals.

Read More Show Less

Read an Excerpt


Chapter 3: Operating-System Structures

3.6.1 Implementation

Although the virtual machine concept is useful, it is difficult to implement. Much effort is required to provide an exact duplicate of the underlying machine. Remember that the underlying machine has two modes: user mode and monitor mode. The virtual-machine software can run in monitor mode, since it is the operating system. The virtual machine itself can execute in only user mode. Just as the physical machine has two modes, however, so must the virtual machine. Consequently, we must have a virtual user mode and a virtual monitor mode, both of which run in a physical user mode. Those actions that cause a transfer from user mode to monitor mode on a real machine (such as a system call or an attempt to execute a privileged instruction) must also cause a transfer from virtual user mode to virtual monitor mode on a virtual machine.

This transfer can generally be done fairly easily. When a system call, for example, is made by a program running on a virtual machine, in virtual user mode, it will cause a transfer to the virtual-machine monitor in the real machine. When the virtual-machine monitor gains control, it can change the register contents and program counter for the virtual machine to simulate the effect of the system call. It can then restart the virtual machine, noting that it is now in virtual monitor mode. If the virtual machine then tries, for example, to read from its virtual card reader, it will execute a privileged I/O instruction. Because the virtual machine is running in physical user mode, this instruction will trap to the virtual-machine monitor. The virtual-machine monitor must then simulate the effect of the I/O instruction. First, it finds the spooled file that implements the virtual card reader. Then, it translates the read of the virtual card reader into a read on the spooled disk file, and transfers the next virtual "card image" into the virtual memory of the virtual machine. Finally, it can restart the virtual machine. The state of the virtual machine has been modified exactly as though the I/O instruction had been executed with a real card reader for a real machine executing in a real monitor mode.

The major difference is, of course, time. Whereas the real I/O might have taken 100 milliseconds, the virtual I/O might take less time (because it is spooled) or more (because it is interpreted). In addition, the CPU is being multiprogrammed among many virtual machines, further slowing down the virtual machines in unpredictable ways. In the extreme case, it may be necessary to simulate all instructions to provide a true virtual machine. VM works for IBM machines because normal instructions for the virtual machines can execute directly on the hardware. Only the privileged instructions (needed mainly for I/O) must be simulated and hence execute more slowly.

3.6.2 Benefits

The virtual-machine concept has several advantages. Notice that in this environment there is complete protection of the various system resources. Each virtual machine is completely isolated from all other virtual machines, so there are no security problems. On the other hand, there is no direct sharing of resources. To provide sharing, two approaches have been implemented. First, it is possible to share a minidisk. This scheme is modeled after a physical shared disk, but is implemented by software. With this technique, files can be shared. Second, it is possible to define a network of virtual machines, each of which can send information over the virtual communications network. Again, the network is modeled after physical communication networks, but is implemented in software.

Such a virtual-machine system is a perfect vehicle for operating-systems research and development. Normally, changing an operating system is a difficult task. Because operating systems are large and complex programs, it is difficult to be sure that a change in one point will not cause obscure bugs in some other part. This situation can be particularly dangerous because of the power of the operating system. Because the operating system executes in monitor mode, a wrong change in a pointer could cause an error that would destroy the entire file system. Thus, it is necessary to test all changes to the operating system carefully.

The operating system, however, runs on and controls the entire machine. Therefore, the current system must be stopped and taken out of use while changes are made and tested. This period is commonly called system-development time. Since it makes the system unavailable to users, system-development time is often scheduled late at night or on weekends, when system load is low.

A virtual-machine system can eliminate much of this problem. System programmers are given their own virtual machine, and system development is done on the virtual machine, instead of on a physical machine. Normal system operation seldom needs to be disrupted for system development.

Virtual machines are coming back into fashion as a means of solving system compatibility problems. For instance, there are thousands of programs available for MS-DOS on Intel CPU-based systems. Computer vendors like Sun Microsystems and Digital Equipment Corporation (DEC) use other, faster processors, but would like their customers to be able to run these MS-DOS programs. The solution is to create a virtual Intel machine on top of the native processor. An MS-DOS program is run in this environment, and its Intel instructions are translated into the native instruction set. MS-DOS is also run in this virtual machine, so the program can make its system calls as usual. The net result is a program which appears to be running on an Intel-based system but is really executing on a very different processor. If the processor is sufficiently fast, the MS-DOS program will run quickly even though every instruction is being translated into several native instructions for execution. Similarly, the PowerPC-based Apple Macintosh includes a Motorola 68000 virtual machine to allow execution of binaries that were written for the older 68000-based Macintosh.

3.6.3 Java

Another example of the continued utility of virtual machines involves the Java language. Java is a very popular language designed by Sun Microsystems. Java is implemented by a compiler that generates bytecode output. These bytecodes are the instructions that run on the Java Virtual Machine (JVM). For Java programs to run on a platform, that platform must have a JVM running on it. The JVM runs on many types of computer, including IBM-Compatible PC, Macintosh, Unix workstation and server, and IBM minicomputer and mainframe. The JVM is also implemented within web browsers such as Microsoft Internet Explorer and Netscape Communicator. These browsers, in turn, run on top of varying hardware and operating systems. The JVM is also implemented on the small JavaOS, which implements the JVM directly on hardware to avoid the overhead imposed by running Java on general-purpose operating systems. Finally, single-purpose devices such as cellular phones can be implemented via Java through the use of microprocessors that execute Java bytecodes as native instructions.

The Java Virtual Machine implements a stack-based instruction set that includes the expected arithmetic, logical, data movement, and flow control instructions. Because it is a virtual machine, it can also implement instructions that are too complex to be built in hardware, including object creation, manipulation, and method invocation instructions. Java compilers can simply emit these bytecode instructions, and the JVM must implement the necessary functionality on each platform.

The design of Java takes advantage of the complete environment that a virtual machine implements. For instance, the bytecodes are checked for instructions that could compromise the security or reliability of the underlying machine. The Java program is not allowed to run if it fails this check. Through the implementation of Java as a language that executes on a virtual machine, Sun has created an efficient, dynamic, secure, and portable object-oriented facility. Although Java programs are not as fast as programs that compile to the native hardware instruction set, they nevertheless are more efficient than interpreted programs and have several advantages over native-compilation languages such as C.

3.7.0 System Design and Implementation

In this section, we discuss the problems of designing and implementing a system. There are, of course, no complete solutions to the design problems, but there are approaches that have been successful.

3.7.1 Design Goals

The first Problem in designing a system is to define the goals and specifications of the system. At the highest level, the design of the system will be affected.....

Read More Show Less

Table of Contents

PART ONE. OVERVIEW.

Chapter 1. Introduction.
1.1 What Operating Systems Do.
1.2 Computer-System Organization.
1.3 Computer-System Architecture.
1.4 Operating-System Structure.
1.5 Operating-System Operations.
1.6 Process Management.
1.7 Memory Management.
1.8 Storage Management.
1.9 Protection and Security.
1.10 Distributed Systems.
1.11 Special-Purpose Systems.
1.12 Computing Environments.
1.13 Open-Source Operating Systems.
1.14 Summary.
Exercises.
Bibliographical Notes.
Chapter 2. Operating-System Structures.
2.1 Operating-System Services.
2.2 User Operating-System Interface.
2.3 System Calls.
2.4 Types of System Calls.
2.5 System Programs.
2.6 Operating-System Design and Implementation.
2.7 Operating-System Structure.
2.8 Virtual Machines.
2.9 Operating-System Debugging.
2.10 Operating-System Generation.
2.11 System Boot.
2.12 Summary.
Exercises.
Bibliographical Notes.

PART TWO. PROCESS MANAGEMENT.

Chapter 3. Processes.
3.1 Process Concept.
3.2 Process Scheduling.
3.3 Operations on Processes.
3.4 Interprocess Communication.
3.5 Examples of IPC Systems.
3.6 Communication in Client–Server Systems.
3.7 Summary.
Exercises.
Bibliographical Notes.
Chapter 4. Threads.
4.1 Overview.
4.2 Multithreading Models.
4.3 Thread Libraries.
4.4 Threading Issues.
4.5 Operating-System Examples.
4.6 Summary.
Exercises.
Bibliographical Notes.
Chapter 5. CPU Scheduling.
5.1 Basic Concepts.
5.2 Scheduling Criteria.
5.3 Scheduling Algorithms.
5.4 Thread Scheduling.
5.5 Multiple-Processor Scheduling.
5.6 Operating System Examples.
5.7 Algorithm Evaluation.
5.8 Summary.
Exercises.
Bibliographical Notes.
Chapter 6. Process Synchronization.
6.1 Background.
6.2 The Critical-Section Problem.
6.3 Peterson’s Solution.
6.4 Synchronization Hardware.
6.5 Semaphores.
6.6 Classic Problems of Synchronization.
6.7 Monitors.
6.8 Synchronization Examples.
6.9 Atomic Transactions.
6.10 Summary.
Exercises.
Bibliographical Notes.
Chapter 7. Deadlocks.
7.1 System Model.
7.2 Deadlock Characterization.
7.3 Methods for Handling Deadlocks.
7.4 Deadlock Prevention.
7.5 Deadlock Avoidance.
7.6 Deadlock Detection.
7.7 Recovery from Deadlock.
7.8 Summary.
Exercises.
Bibliographical Notes.

PART THREE. MEMORY MANAGEMENT.

Chapter 8. Main Memory.
8.1 Background.
8.2 Swapping.
8.3 Contiguous Memory Allocation.
8.4 Paging.
8.5 Structure of the Page Table.
8.6 Segmentation.
8.7 Example: The Intel Pentium.
8.8 Summary.
Exercises.
Bibliographical Notes.
Chapter 9. Virtual Memory.
9.1 Background.
9.2 Demand Paging.
9.3 Copy-on-Write.
9.4 Page Replacement.
9.5 Allocation of Frames.
9.6 Thrashing.
9.7 Memory-Mapped Files.
9.8 Allocating Kernel Memory.
9.9 Other Considerations.
9.10 Operating-System Examples.
9.11 Summary.
Exercises.
Bibliographical Notes.

PART FOUR. STORAGE MANAGEMENT.

Chapter 10. File-System Interface.
10.1 File Concept.
10.2 Access Methods.
10.3 Directory and Disk Structure.
10.4 File-System Mounting.
10.5 File Sharing.
10.6 Protection.
10.7 Summary.
Exercises.
Bibliographical Notes.
Chapter 11. File-System Implementation.
11.1 File-System Structure.
11.2 File-System Implementation.
11.3 Directory Implementation.
11.4 Allocation Methods.
11.5 Free-Space Management.
11.6 Efficiency and Performance.
11.7 Recovery.
11.8 NFS.
11.9 Example: The WAFL File System.
11.10 Summary.
Exercises.
Bibliographical Notes.
Chapter 12. Mass-Storage Structure.
12.1 Overview of Mass-Storage Structure.
12.2 Disk Structure.
12.3 Disk Attachment.
12.4 Disk Scheduling.
12.5 Disk Management.
12.6 Swap-Space Management.
12.7 RAID Structure.
12.8 Stable-Storage Implementation.
12.9 Tertiary-Storage Structure.
12.10 Summary.
Exercises.
Bibliographical Notes.
Chapter 13. I/O Systems.
13.1 Overview.
13.2 I/O Hardware.
13.3 Application I/O Interface.
13.4 Kernel I/O Subsystem.
13.5 Transforming I/O Requests to Hardware Operations.
13.6 STREAMS.
13.7 Performance.
13.8 Summary.
Exercises.
Bibliographical Notes.

PART FIVE. PROTECTION AND SECURITY.

Chapter 14. Protection.
14.1 Goals of Protection.
14.2 Principles of Protection.
14.3 Domain of Protection.
14.4 Access Matrix.
14.5 Implementation of Access Matrix.
14.6 Access Control.
14.7 Revocation of Access Rights.
14.8 Capability-Based Systems.
14.9 Language-Based Protection.
14.10 Summary.
Exercises.
Bibliographical Notes.
Chapter 15. Security.
15.1 The Security Problem.
15.2 Program Threats.
15.3 System and Network Threats.
15.4 Cryptography as a Security Tool.
15.5 User Authentication.
15.6 Implementing Security Defenses.
15.7 Firewalling to Protect Systems and Networks.
15.8 Computer-Security Classifications.
15.9 An Example: Windows XP.
15.10 Summary.
Exercises.
Bibliographical Notes.

PART SIX. DISTRIBUTED SYSTEMS.

Chapter 16. Distributed System Structures.
16.1 Motivation.
16.2 Types of Network based Operating Systems.
16.3 Network Structure.
16.4 Network Topology.
16.5 Communication Structure.
16.6 Communication Protocols.
16.7 Robustness.
16.8 Design Issues.
16.9 An Example: Networking.
16.10 Summary.
Exercises.
Bibliographical Notes.
Chapter 17. Distributed File Systems.
17.1 Background.
17.2 Naming and Transparency.
17.3 Remote File Access.
17.4 Stateful Versus Stateless Service.
17.5 File Replication.
17.6 An Example: AFS.
17.7 Summary.
Exercises.
Bibliographical Notes.
Chapter 18. Distributed Coordination.
18.1 Event Ordering.
18.2 Mutual Exclusion.
18.3 Atomicity.
18.4 Concurrency Control.
18.5 Deadlock Handling.
18.6 Election Algorithms.
18.7 Reaching Agreement.
18.8 Summary.
Exercises.
Bibliographical Notes.

PART SEVEN. SPECIAL PURPOSE SYSTEMS.

Chapter 19. Real-Time Systems.
19.1 Overview.
19.2 System Characteristics.
19.3 Features of Real-Time Kernels.
19.4 Implementing Real-Time Operating Systems.
19.5 Real-Time CPU Scheduling.
19.6 An Example: VxWorks 5.x.
19.7 Summary.
Exercises.
Bibliographical Notes.
Chapter 20. Multimedia Systems.
20.1 What Is Multimedia?
20.2 Compression.
20.3 Requirements of Multimedia Kernels.
20.4 CPU Scheduling.
20.5 Disk Scheduling.
20.6 Network Management.
20.7 An Example: CineBlitz.
20.8 Summary.
Exercises.
Bibliographical Notes.

PART EIGHT. CASE STUDIES.

Chapter 21. The Linux/System.
21.1 Linux History.
21.2 Design Principles.
21.3 Kernel Modules.
21.4 Process Management.
21.5 Scheduling.
21.6 Memory Management.
21.7 File Systems.
21.8 Input and Output.
21.9 Interprocess Communication.
21.10 Network Structure.
21.11 Security.
21.12 Summary.
Exercises.
Bibliographical Notes.
Chapter 22. Windows XP.
22.1 History.
22.2 Design Principles.
22.3 System Components.
22.4 Environmental Subsystems.
22.5 File System.
22.6 Networking.
22.7 Programmer Interface.
22.8 Summary.
Exercises.
Bibliographical Notes.
Chapter 23. Influential Operating Systems.
23.1 Feature Migration.
23.2 Early Systems.
23.3 Atlas.
23.4 XDS-940.
23.5 THE.
23.6 RC 4000.
23.7 CTSS.
23.8 MULTICS.
23.9 IBM OS/360.
23.10 TOPS-20.
23.11 CP/M and MS/DOS.
23.12 Macintosh Operating System and Windows.
23.13 Mach.
23.14 Other Systems.
Exercises.

PART NINE. APPENDICES.

Appendix A. BSD UNIX (contents online).
A.1 UNIX History.
A.2 Design Principles.
A.3 Programmer Interface.
A.4 User Interface.
A.5 Process Management.
A.6 Memory Management.
A.7 File System.
A.8 I/O System.
A.9 Interprocess Communication.
A.10 Summary.
Exercises.
Bibliographical Notes.
Appendix B. The Mach System (contents online).
B.1 History of the Mach System.
B.2 Design Principles.
B.3 System Components.
B.4 Process Management.
B.5 Interprocess Communication.
B.6 Memory Management.
B.7 Programmer Interface.
B.8 Summary.
Exercises.
Bibliographical Notes.
Appendix C. Windows 2000 (contents online).
C.1 History.
C.2 Design Principles.
C.3 System Components.
C.4 Environmental Subsystems.
C.5 File System.
C.6 Networking.
C.7 Programmer Interface.
C.8 Summary.
Exercises.
Bibliographical Notes.
Bibliography.
Credits.
Index.

Read More Show Less

Customer Reviews

Average Rating 4
( 9 )
Rating Distribution

5 Star

(4)

4 Star

(2)

3 Star

(2)

2 Star

(1)

1 Star

(0)

Your Rating:

Your Name: Create a Pen Name or

Barnes & Noble.com Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & Noble.com that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & Noble.com does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at BN.com or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation

Reminder:

  • - By submitting a review, you grant to Barnes & Noble.com and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Noble.com Terms of Use.
  • - Barnes & Noble.com reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & Noble.com also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on BN.com. It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

 
Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously
Sort by: Showing all of 6 Customer Reviews
  • Posted August 14, 2011

    more from this reviewer

    powerful Wiley Plus website that is a companion to book

    The authors provide a quite exhaustive and up to date [circa 2011] explanation of the main operating systems in deployment. The level of the narrative is suited for an undergraduate senior level or graduate level class in computing.

    The book is well reinforced by an integration with the online Wiley Plus website. On this you can get source code appropriate to each chapter, as well as solutions to the practice exercises. This frees up the text from having to provide space to list the source code or answers, which you often see in other texts.

    The chapters are configured with 2 sets of exercises; the practice ones being the first set and simpler. This format lets you, if you are the instructor for a college course, assign the second set as homework. Also, the website offers more problems and answers to those. For the instructor or dedicated student, this is a value added bonus. Plus the website has another nifty feature - a simulator of an operating system. Instructors who have been in this field long enough might have seen cases where a computer course might have had this, but implemented locally on that department's machines, so that students had something tangible they could run their assembly code on. While this is vital, the problem was the effort needed in writing that simulator. It is a great timesaver to have it here as the book's companion.

    Overall, the pedagogy strikes a good balance between the traditional book-only mode of instruction and going the much ballyhooed pure DVD or web or e-book reader approach.

    Chapter 8 on the main memory is a well written account of how a user program goes from source code to run time. It explains the key ideas of the functioning of a memory management unit and logical and physical addresses. Related to this are static and dynamic loading, where the latter uses dynamically linked libraries. If you are a student who has probably already used computers, you have heard these terms before. But the book now gives you a firm grasp on what these actually mean.

    Chapters 10 and 11 on the file system should be read as one logical entity. These offer the idea that at the level of the operating system, it operates on user data at the level of files. That file management is the central duty of any operating system, from the user's standpoint.

    The book also has a nice discussion of the notorious Morris Internet worm, which was unleashed in 1988 on Vaxes and Suns. I remember it quite well when I was at the Los Alamos National Laboratory. There was briefly some anxious concern about a malign penetration of the Lab, but the infected machines were quickly fixed and no data was corrupted or copied over the network. The global extent of the worm and the lack of damage to the filesystems now seems quaint compared to the more virulent malware in circulation on an Internet of computers some 3 or 4 orders of magnitude larger.

    By the way, there is relatively little [effectively none] discussion about the Internet Protocol, either in its 32 bit v4 or 128 bit v6 versions. This reflects the fact that even today the concepts and implementations of an operating system are largely independent of and orthogonal to the IP. While the book goes into networks of machines, the focus is clearly on how single machines work. And when there are indeed discussions of higher level network protocols, notably the seminal Network File Systems, these require little or no low level forays into IP details.

    Was this review helpful? Yes  No   Report this review
  • Posted February 2, 2009

    Computer note for all

    if you want an information about computer plz see us.

    0 out of 2 people found this review helpful.

    Was this review helpful? Yes  No   Report this review
  • Anonymous

    Posted January 9, 2010

    No text was provided for this review.

  • Anonymous

    Posted June 20, 2010

    No text was provided for this review.

  • Anonymous

    Posted September 24, 2013

    No text was provided for this review.

  • Anonymous

    Posted April 8, 2009

    No text was provided for this review.

Sort by: Showing all of 6 Customer Reviews

If you find inappropriate content, please report it to Barnes & Noble
Why is this product inappropriate?
Comments (optional)