Home > Store

Operating Systems: Internals and Design Principles, 6th Edition

Register your product to gain access to bonus material or receive a coupon.

Operating Systems: Internals and Design Principles, 6th Edition

Book

  • Sorry, this book is no longer in print.
Not for Sale

About

Features

Makes extensive use of a number of tools to boost student understanding critical basic concepts. This includes describing algorithms using plain English and C++ language fragments, the liberal use of illustrations, and an effort to avoid formal proofs.

Running case studies focused on how specific operating systems implement specific concepts are embedded throughout the text instead of end of book case studies. This enhances the student understanding of relevant concepts at the point of study.

A copy of all algorithms in an easy-to-read Pascal pseudocode is available on the author’s Web site.

Several types of projects are supported by the text, including:

Simulations, which students access via the Web, with no programming or platform involved.

Small projects, designed to take a week or two to complete.

Two major programming projects, one to build a shell (or command line interpreter) and one to build a process dispatcher, are included. The text describes the projects, and step-by-step exercises are included at the Instructors Resource Center. The exercises can be uploaded to the instructor’s Web site.

—A more extensive set of seven programming projects provide for more substantial two-person assignments

Projects are evenly split between system-level projects and kernel-level projects.

Detailed treatment of threads — one of the most important developments in operating systems — is included. The text helps students to understand the relationship between process and thread and the way in which threads are managed and used.

A unique comprehensive treatment of scheduling covers key recent developments in scheduling theory and design in the areas of multiprocessor scheduling and real-time scheduling.

Comprehensive, unified treatment of I/O offers broad and thorough coverage of this critical part of any operating system.

• Companion Website -- Access textbook-related resources and support materials for students and instructors maintained by the author.

• Student Resource Site -- Access a wealth of computer science-related information including mathematics reviews, how-to documents, research resources, and career explorations maintained by the author.

Description

  • Copyright 2009
  • Edition: 6th
  • Book
  • ISBN-10: 0-13-600632-9
  • ISBN-13: 978-0-13-600632-9

For a one-semester undergraduate course in operating systems for computer science, computer engineering, and electrical engineering majors.

Winner of the 2009 Textbook Excellence Award from the Text and Academic Authors Association (TAA)!

Operating Systems: Internals and Design Principles is a comprehensive and unified introduction to operating systems. By using several innovative tools, Stallings makes it possible to understand critical core concepts that can be fundamentally challenging. The new edition includes the implementation of web based animations to aid visual learners. At key points in the book, students are directed to view an animation and then are provided with assignments to alter the animation input and analyze the results.

The concepts are then enhanced and supported by end-of-chapter case studies of UNIX, Linux and Windows Vista. These provide students with a solid understanding of the key mechanisms of modern operating systems and the types of design tradeoffs and decisions involved in OS design. Because they are embedded into the text as end of chapter material, students are able to apply them right at the point of discussion. This approach is equally useful as a basic reference and as an up-to-date survey of the state of the art.

Sample Content

Table of Contents

WEB SITE FOR OPERATING SYSTEMS, INTERNALS AND DESIGN PRINCIPLES

PREFACE CHAPTER 0 READER'S GUIDE

          0.1  Outline of the Book

          0.2  Topic Ordering

          0.3  Internet and Web Resources

PART ONE  BACKGROUND Chapter 1 Computer System Overview

          1.1  Basic Elements

          1.2  Processor Registers

          1.3  Instruction Execution

          1.4  Interrupts

          1.5  The Memory Hierarchy

          1.6  Cache Memory

          1.7  I/O Communication Techniques

          1.8  Recommended Reading and Web Sites

          1.9  Key Terms, Review Questions, and Problems

          Appendix 1A   Performance Characteristics of Two-Level Memory

          Appendix 1B   Procedure Control

Chapter 2 Operating System Overview

          2.1  Operating System Objectives and Functions

          2.2  The Evolution of Operating Systems

          2.3  Major Achievements

          2.4  Characteristics of Modern Operating Systems

      2.5  Windows Vista Overview

      2.6  Traditional UNIX Systems

      2.7  Modern UNIX Systems

      2.8  Linux

          2.9  Recommended Reading and Web Sites

          2.10 Key Terms, Review Questions, and Problems

PART TWO  PROCESSES Chapter 3     Process Description and Control

          3.1  What is a Process?

          3.2  Process States

          3.3  Process Description

          3.4  Process Control

      3.5  UNIX FreeBSD Process Management

          3.6  Summary

          3.7  Recommended Reading

          3.8  Key Terms, Review Questions, and Problems

Programming Project 1     Developing a Shell Chapter 4     Threads, SMP, and Microkernels

          4.1  Processes and Threads

          4.2  Symmetric Multiprocessing (SMP)

          4.3  Microkernels

      4.4  Windows Vista Thread and SMP Management

      4.5  Solaris Thread and SMP Management

      4.6  Linux Process and Thread Management

          4.7  Summary

          4.8  Recommended Reading

          4.9  Key Terms, Review Questions, and Problems

Chapter 5 Concurrency: Mutual Exclusion and Synchronization

          5.1  Principles of Concurrency

          5.2  Mutual Exclusion: Hardware Support

          5.3  Semaphores

          5.4  Monitors

          5.5  Message Passing

          5.6  Readers/Writers Problem

          5.7  Summary

          5.8  Recommended Reading

          5.9  Key Terms, Review Questions, and Problems

Chapter 6 Concurrency: Deadlock and Starvation

          6.1  Principles of Deadlock

          6.2  Deadlock Prevention

          6.3  Deadlock Avoidance

          6.4  Deadlock Detection

          6.5  An Integrated Deadlock Strategy

          6.6  Dining Philosophers Problem

      6.7  UNIX Concurrency Mechanisms

      6.8  Linux Kernel Concurrency Mechanisms

      6.9  Solaris Thread Synchronization Primitives

      6.10 Windows Vista Concurrency Mechanisms

          6.11 Summary

          6.12 Recommended Reading

          6.13 Key Terms, Review Questions, and Problems

PART THREE  MEMORY Chapter 7 Memory Management

          7.1  Memory Management Requirements

          7.2  Memory Partitioning

          7.3  Paging

          7.4  Segmentation

          7.5  Summary

          7.6  Recommended Reading

          7.7  Key Terms, Review Questions, and Problems

          Appendix 7A  Loading and Linking

Chapter 8 Virtual Memory

          8.1  Hardware and Control Structures

          8.2  Operating System Software

      8.3  UNIX and Solaris Memory Management

      8.4  Linux Memory Management

      8.5  Windows Vista Memory Management

          8.6  Summary

          8.7  Recommended Reading and Web Sites

          8.8  Key Terms, Review Questions, and Problems

          Appendix 8A   Hash Tables

PART FOUR  SCHEDULING Chapter 9 Uniprocessor Scheduling

          9.1  Types of Scheduling

          9.2  Scheduling Algorithms

      9.3  Traditional UNIX Scheduling

          9.4  Summary

          9.5  Recommended Reading

          9.6  Key Terms, Review Questions, and Problems

          Appendix 9A   Response Time

          Appendix 9B   Queuing Systems

Programming Project 2     The HOST Dispatcher Shell Chapter 10    Multiprocessor and Real-Time Scheduling

          10.1 Multiprocessor Scheduling

          10.2 Real-Time Scheduling

      10.3 Linux Scheduling

      10.4 UNIX FreeBSD Scheduling

      10.5 Windows Vista Scheduling

          10.6 Summary

          10.7 Recommended Reading

          10.8 Key Terms, Review Questions, and Problems

PART FIVE  INPUT/OUTPUT AND FILES Chapter 11    I/O Management and Disk Scheduling

          11.1 I/O Devices

          11.2 Organization of the I/O Function

          11.3 Operating System Design Issues

          11.4 I/O Buffering

          11.5 Disk Scheduling

          11.6 RAID

          11.7 Disk Cache

      11.8 UNIX FreeBSD I/O

      11.9 Linux I/O

      11.10     Windows Vista I/O

          11.11     Summary

          11.12     Recommended Reading

          11.13     Key Terms, Review Questions, and Problems

          Appendix 11A Disk Storage Devices

Chapter 12    File Management

          12.1 Overview

          12.2 File Organization and Access

          12.3 File Directories

          12.4 File Sharing

          12.5 Record Blocking

          12.6 Secondary Storage Management

      12.7 UNIX File Management

      12.8 Linux File Management

      12.9 Windows Vista File System

          12.10     Summary

          12.11     Recommended Reading

          12.12     Key Terms, Review Questions, and Problems

PART SIX  EMBEDDED SYSTEMS Chapter 13    Embedded Operating Systems

          13.1 The Role of Embedded Operating Systems

          13.2 Embedded OS Requirements

          13.3 Scheduling

          13.4 Other Embedded OS Functions

          13.5 Example System: eCOS

          13.6 Example System: TinyOS

          13.7 Recommended Reading and Web Sites

          13.8 Key Terms, Review Questions, and Problems

PART SEVEN  DISTRIBUTED SYSTEMS (ONLINE) Chapter 14    Networking

          14.1 The Need for a Protocol Architecture

          14.2 The TCP/IP Protocol Architecture

          14.3 Sockets

          14.4 Linux Networking

          14.5 Summary

          14.6 Recommended Reading and Web Sites

          14.7 Key Terms, Review Questions, and Problems

          Appendix 14A  The Trivial File Transfer Protocol

Chapter 15    Distributed Processing, Client/Server, and Clusters

          15.1 Client/Server Computing

          15.2 Distributed Message Passing

          15.3 Remote Procedure Calls

          15.4 Clusters

          15.5 Windows Vista Cluster Server

15.6 Sun Cluster

15.7 Beowulf and Linux Clusters

          15.8 Summary

          15.9 Recommended Reading

          15.10     Key Terms, Review Questions, and Problems

Chapter 16    Distributed Process Management

          16.1 Process Migration

          16.2 Distributed Global States

          16.3 Distributed Mutual Exclusion

          16.4 Distributed Deadlock

          16.5 Summary

          16.6 Recommended Reading

          16.7 Key Terms, Review Questions, and Problems

PART EIGHT  SECURITY (ONLINE) Chapter 17    Computer Security

          17.1 Security Threats

          17.2 Protection

          17.3 Intruders

          17.4 Malicious Software

          17.5 Trusted Systems

17.6 Windows Vista Security

          17.7 Summary

          17.8 Recommended Reading

          17.9 Key Terms, Review Questions, and Problems

          Appendix 17A  Encryption

APPENDICES Appendix A  Topics in Concurrency

          A.1  Mutual Exclusion: Software Approaches

          A.2  Race Conditions and Semaphores

          A.3  A Barbershop Problem

          A.4  Problems

Appendix B    Object-Oriented Design

          B.1  Motivation

          B.2  Object-Oriented Concepts

          B.3  Benefits of Object-Oriented Design

          B.4  CORBA

          B/5  Recommended Reading and Web Site

Appendix C    Programming and Operating System Projects

          C.1  Projects for Teaching Operating Systems

          C.2  NACHOS

          C.3  Research Projects

          C.4  Programming Projects

          C.5  Reading/Report Assignments

Appendix D    OSP: An Environment for Operating Systems Projects

          D.1  Overview

          D.2  Innovative Aspects of OSP

          D.3  Comparison with Other Operating System Courseware

Appendix E    BACI: The Ben-Ari Concurrent Programming System

          E.1  Introduction

          E.2  BACI

          E.3  Examples of BACI Programs

          E.4  BACI Projects

          E.5  Enhancements to the BACK System

GLOSSARY

REFERENCES

INDEX

ACRONYMS

Updates

Submit Errata

More Information