Home > Store

Operating Systems: Internals and Design Principles, 8th Edition

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

Operating Systems: Internals and Design Principles, 8th Edition


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



Illustrate Concepts with Running Case Studies

  • Running case studies, focused on how specific operating systems implement specific concepts, are embedded throughout the text rather than assembled as a single chapter or appendix.
  • Design concepts discussed in a given chapter are immediately reinforced with real-world examples.
  • For convenience, all of the material for each of the example systems is also available online.
  • To illustrate the concepts and to tie them to real-world design choices that must be made, four operating systems serve as running examples:
    • NEW! Windows 8: A multitasking operating system for personal computers, workstations, servers, and mobile devices. This operating system incorporates many of the latest developments in operating system technology. In addition, Windows is one of the first important commercial operating systems to rely heavily on object-oriented design principles. This book covers the technology used in the most recent versions of Windows, known as Windows 8.
    • NEW! Android: Android is tailored for embedded devices, especially mobile phones. Focusing on the unique requirements of the embedded environment, the book provides details of Android internals.
    • UNIX: A multiuser operating system, originally intended for minicomputers, but implemented on a wide range of machines from powerful microcomputers to supercomputers. Several flavors of UNIX are included as examples. FreeBSD is a widely used system that incorporates many state-of-the-art features. Solaris is a widely used commercial version of UNIX.
    • Linux: An open-source version of UNIX that is now widely used.

Easily Integrate Projects in your Course
This book provides an unparalleled degree of support for including a projects component in the course. The Instructors Resource Center (IRC) not only includes guidance on how to assign and structure the various projects but also includes a set of user's manuals for various project types plus specific assignments, all written especially for this book. Instructors can assign work in the following areas:

  • OS/161 projects: OS/161 is an educational operating system that is becoming increasingly recognized as the preferred teaching platform for OS internals. It aims to strike a balance between giving students experience in working on a real operating system, and potentially overwhelming students with the complexity that exists in a fully-fledged operating system, such as Linux. Compared to most deployed operating systems, OS/161 is quite small (approximately 20,000 lines of code and comments), and therefore it is much easier to develop an understanding of the entire code base. The IRC includes:
    • A packaged set of html files that the instructor can upload to a course server for student access
    • A getting-started manual to be handed out to students to help them begin using OS/161
    • A set of exercises using OS/161, to be handed out to students
    • Model solutions to each exercise for the instructor's use
    • All of this material is cross-referenced with appropriate sections in the book, so that the student can read the textbook material and then do the corresponding OS/161 project.
  • Simulation Projects: The IRC provides support for assigning projects based on a set of seven simulations that cover key areas of OS design. The student can use a set of simulation packages to analyze OS design features. The simulators are all written in Java and can be run either locally as a Java application or online through a browser. The IRC includes assignments to give to students, telling them specifically what they are to do and what results are expected.
  • Kernel projects: The IRC includes complete instructor support for two different sets of Linux kernel programming projects, as well as a set of kernel programming projects for Android.
    • NEW! Linux kernel projects: The seventh edition included instructor support for kernel programming projects, both independent of any specific OS and projects that used Linux kernel concepts. In addition to continuing to provide these project assignments, this new edition provides complete instructor support for two different sets of Linux kernel programming projects. The sets are independent of one another and the two sets are of varying degrees of complexity and length, allowing the instructor to choose the depth and amount of student effort to be devoted to learning OS concepts by doing Linux kernel projects.
    • NEW! Android kernel projects: Complete instructor support is provided for teaching core OS concepts by assigning kernel development projects using Android.
  • Programming projects: 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.
  • Research projects: A series of research assignments that instruct the student to research a particular topic on the Internet and write a report.
  • Reading/report assignments: A list of papers that can be assigned for reading and writing a report, plus suggested assignment wording.
  • Writing assignments: A list of writing assignments to facilitate learning the material.
  • Discussion topics: These topics can be used in a classroom, chat room, or message board environment to explore certain areas in greater depth and to foster student collaboration.
  • In addition, information is provided on a software package known as BACI that serves as a framework for studying concurrency mechanisms.

Keep Your Course Current with Updated Technical Content

  • NEW! Embedded Linux: The use of a minimal version of Linux for embedded systems has grown in popularity. This new edition provides an overview of the key elements of the embedded Linux approach.
  • NEW! Virtual machines: Server virtualization and other forms of virtual machines are becoming increasingly widespread. A new chapter deals with the operating system design issues for virtual machines.
  • NEW! Multicore design issues: The dominant computer architecture is now multicore. This raises new OS design issues that are addressed in this new edition.
  • NEW! I/O standards: The book has been updated to reflect the latest developments, including Thunderbolt.
  • NEW! Storage hardware: The discussion of storage hardware has been updated and now includes discussion of solid-state drives.
  • NEW! Fault tolerance: The ACM/IEEE Computer Science Curricula 2013 lists fault tolerance as one of the core topics for an OS course. A new section provides an overview of fault tolerance.

Provide Extensive Support Material to Instructors and Students

Instructor Resources
The major goal of this text is to make it as effective a teaching tool for this fundamental yet evolving subject as possible.

  • Instructor Resource Center (IRC): Access the following resources on the publisher’s Web site www.pearsonhighered.com/stallings:
    • Solutions manual: Solutions to end-of-chapter Review Questions and Problems.
    • Projects manual: Suggested programming projects that cover a broad range of topics and that can be implemented in any suitable language on any platform.
    • PowerPoint slides: A set of slides covering all chapters, suitable for use in lecturing.
    • PDF files: Reproductions of all figures and tables from the book.
    • Test bank: A chapter-by-chapter set of questions with a separate file of answers.
    • VideoNotes on concurrency: Professors perennially cite concurrency as perhaps the most difficult concept in the field of operating systems for students to grasp. The edition is accompanied by a number of VideoNotes lectures discussing the various concurrency algorithms defined in the book.
    • Sample syllabuses: The text contains more material than can be conveniently covered in one semester. Accordingly, instructors are provided with several sample syllabuses that guide the use of the text within limited time. These samples are based on real-world experience by professors with the seventh edition.
  • Companion Web site: Access the following resources on the Companion Web site, at www.WilliamStallings.com/OperatingSystems  (click on Instructor Resources link):
    • Links to Web sites for other courses being taught using this book.
    • Sign-up information for an Internet mailing list for instructors using this book to exchange information, suggestions, and questions with each other and with the author.

Student Support Materials
For this new edition, a substantial amount of original supporting material for students has been made available online, at two Web locations.

  • Companion Web site: A list of relevant links organized by chapter and an errata sheet for the book is located at www.WilliamStallings.com/OperatingSystems (click on Student Resources link).
  • Premium Content site: Purchasing this textbook new also grants the reader six months of access to the Premium Content site. Click on the Premium Content link at the Companion Web site or at www.pearsonhighered.com/stallings and enter the student access code found on the card in the front of the book to access the following:
    • Online chapters: To limit the size and cost of the book, two chapters of the book, covering security, are provided in PDF format.
    • Online appendices: There are numerous interesting topics that support material found in the text but whose inclusion is not warranted in the printed text. A total of 18 online appendices cover these topics for the interested student.
    • Homework problems and solutions: To aid the student in understanding the material, a separate set of homework problems with solutions is available.
    • Animations: Animations provide a powerful tool for understanding the complex mechanisms of a modern OS. A total of 53 animations are used to illustrate key functions and algorithms in OS design. The animations are used for Chapters 3, 5, 6, 7, 8, 9, and 11.


  • Copyright 2015
  • Dimensions: 7" x 9-1/8"
  • Pages: 800
  • Edition: 8th
  • Book
  • ISBN-10: 0-13-380591-3
  • ISBN-13: 978-0-13-380591-8

Operating Systems: Internals and Design Principles is intended for use in a one- or two-semester undergraduate course in operating systems for computer science, computer engineering, and electrical engineering majors. It also serves as a useful reference for programmers, systems engineers, network designers and others involved in the design of computer products, information system and computer system personnel.

Operating Systems provides a comprehensive and unified introduction to operating systems topics. Stallings emphasizes both design issues and fundamental principles in contemporary systems and gives readers a solid understanding of the key structures and mechanisms of operating systems. He discusses design trade-offs and the practical decisions affecting design, performance and security. The book illustrates and reinforces design concepts and ties them to real-world design choices through the use of case studies in Linux, UNIX, Android, and Windows 8.

Teaching and Learning Experience

This program presents a better teaching and learning experience–for you and your students. It will help:

  • Illustrate Concepts with Running Case Studies: To illustrate the concepts and to tie them to real-world design choices that must be made, four operating systems serve as running examples.
  • Easily Integrate Projects in your Course: This book provides an unparalleled degree of support for including a projects component in the course.
  • Keep Your Course Current with Updated Technical Content: This edition covers the latest trends and developments in operating systems.
  • Provide Extensive Support Material to Instructors and Students: Student and instructor resources are available to expand on the topics presented in the text.

Sample Content

Table of Contents

Chapter 0       Guide for Readers and Instructors

0.1         Outline of the Book

0.2         A Roadmap for Readers and Instructors

0.3         Internet and Web Resources

PART ONE  BACKGROUND Chapter 1       Computer System Overview

1.1         Basic Elements

1.2         Evolution of the Microprocessor

1.3         Instruction Execution

1.4         Interrupts

1.5         The Memory Hierarchy

1.6         Cache Memory

1.7         Direct Memory Access

1.8         Multiprocessor and Multicore Organization

1.9         Recommended Reading and Web Sites

1.10         Key Terms, Review Questions, and Problems

Appendix 1A         Performance Characteristics of Two-Level Memory

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         Developments Leading to Modern Operating Systems

2.5         Virtual Machines

2.6         OS Design Considerations for Multiprocessor and Multicore

2.7         Microsoft Windows Overview

2.8         Traditional UNIX Systems

2.9         Modern UNIX Systems

2.10         Linux

2.11         Android

2.12         Recommended Reading and Web Sites

2.13         Key Terms, Review Questions, and Problems

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         Execution of the Operating System

3.6         UNIX SVR4 Process Management

3.7         Summary

3.8         Recommended Reading and Animations

3.9         Key Terms, Review Questions, and Problems

Chapter 4        Threads

4.1         Processes and Threads

4.2         Types of Threads

4.3         Multicore and Multithreading

4.4         Windows 8 Process and Thread Management

4.5         Solaris Thread and SMP Management

4.6         Linux Process and Thread Management

4.7         Android Process and Thread Management

4.8         Mac OS X Grand Central Dispatch

4.9         Summary

4.10         Recommended Reading

4.11         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 and Animations

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 Concurrency Mechanisms

6.11         Android Interprocess Communications

6.12         Summary

6.13         Recommended Reading

6.14         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 and Animations

7.8         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 Memory Management

8.6         Android Memory Management

8.7         Summary

8.8         Recommended Reading and Web Sites

8.9         Key Terms, Review Questions, and Problems

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 and Animations

9.6         Key Terms, Review Questions, and Problems

Chapter 10       Multiprocessor and Real-Time Scheduling

10.1         Multiprocessor and Multicore Scheduling

10.2         Real-Time Scheduling

10.3         Linux Scheduling

10.4         UNIX SVR4 Scheduling

10.5         UNIX FreeBSD Scheduling

10.6         Windows Scheduling

10.7         Summary

10.8         Recommended Reading

10.9         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 I/O

11.9         Linux I/O

11.10         Windows I/O

11.11         Summary

11.12         Recommended Reading

11.13         Key Terms, Review Questions, and Problems

Chapter 12       File Management

12.1         Overview

12.2         File Organization and Access

12.3         B-Trees

12.4         File Directories

12.5         File Sharing

12.6         Record Blocking

12.7         Secondary Storage Management

12.8         UNIX File Management

12.9         Linux Virtual File System

12.10         Windows File System

12.11         Android File Management

12.12         Summary

12.13         Recommended Reading

12.14         Key Terms, Review Questions, and Problems

PART SIX  ADVANCED TOPICS Chapter 13       Embedded Operating Systems

13.1         Embedded Systems

13.2         Characteristics of Embedded Operating Systems

13.3         Embedded Linux

13.4         TinyOS

13.5         Embedded Linux

13.5         Recommended Reading

13.6         Key Terms, Review Questions, and Problems

Chapter 14       Virtual Machines

14.1         Approaches to Virtualization

14.2         Processor Issues

14.3         Memory Management

14.4         I/O Management

14.5         VMware ESXi

14.6         Microsoft Hyper-V and Xen Variants

14.7         Java VM

14.8         Linux VServer Virtual Machine Architecture

14.9         Android Virtual Machine

14.10         Recommended Reading

14.11         Key Terms, Review Questions, and Problems

Chapter 15       Operating System Security

15.1         Intruders and Malicious Software

15.2         Buffer Overflow

15.3         Access Control

15.4         UNIX Access Control

15.5         Operating Systems Hardening

15.6         Security Maintenance

15.7         Windows Security

15.8         Recommended Reading

15.9         Key Terms, Review Questions, and Problems

Chapter 16       Distributed Processing, Client/Server, and Clusters

16.1         Client/Server Computing

16.2         Distributed Message Passing

16.3         Remote Procedure Calls

16.4         Clusters

16.5         Windows Cluster Server

16.6         Beowulf and Linux Clusters

16.7         Summary

16.8         Recommended Reading

16.9         Key Terms, Review Questions, and Problems


Appendix A  Topics in Concurrency

Appendix B       Programming and Operating System Projects References



ONLINE CHAPTERS AND APPENDICES[1] Chapter 17       Network Protocols

17.1         The Need for a Protocol Architecture

17.2         The TCP/IP Protocol Architecture

17.3         Sockets

17.4         Linux Networking

17.5         Summary

17.6         Recommended Reading and Web Sites

17.7         Key Terms, Review Questions, and Problems

Appendix 17A  The Trivial File Transfer Protocol

Chapter 18       Distributed Process Management

18.1         Process Migration

18.2         Distributed Global States

18.3         Distributed Mutual Exclusion

18.4         Distributed Deadlock

18.5         Summary

18.6         Recommended Reading

18.7         Key Terms, Review Questions, and Problems

Chapter 19       Overview of Probability and Stochastic Processes

19.1            Probability

19.2            Random Variables

19.3            Elementary Concepts of Stochastic Processes

19.4            Recommended Reading and Web Sites

19.5            Key Terms, Review Questions, and Problems

Chapter 20       Queueing Analysis

20.1            How Queues Behave—A Simple Example

20.2            Why Queuing Analysis?

20.3            Queueing Models

20.4            Single-Server Queues

20.5            Multiserver Queues

20.6            Examples

20.7            Queues with Priorities

20.8            Networks of Queues

20.9            Other Queueing Models

20.10            Estimating Model Parameters

20.11            Recommended Reading and Web Sites

20.12            Key Terms, Review Questions, and Problems

Programming Project One     Developing a Shell
Programming Project Two     The HOST Dispatcher Shell Appendix C Topics in Computer Organization
Appendix D Object-Oriented Design

Appendix E Amdahl's Law

Appendix F Hash Tables
Appendix G Response Time
Appendix H Queueing System Concepts
Appendix I The Complexity of Algorithms

Appendix J Disk Storage Devices 
Appendix K Cryptographic Algorithms

Appendix L Standards Organizations

Appendix M Sockets: A Programmer's Introduction 
Appendix N The International Reference Alphabet

Appendix O BACI: The Ben-Ari Concurrent Programming System

Appendix P Procedure Control

Appendix Q  eCOS

[1]      Online chapters, appendices, and other documents are Premium Content, available via the access card at the front of the book.


Submit Errata

More Information

Unlimited one-month access with your purchase
Free Safari Membership