Operating Systems: Internals and Design Principles, 9th edition

Published by Pearson (March 13, 2017) © 2018

  • William Stallings

eTextbook

per month

  • Anytime, anywhere learning with the Pearson+ app
  • Easy-to-use search, navigation and notebook
  • Simpler studying with flashcards
$191.99

  • Hardcover, paperback or looseleaf edition
  • Affordable rental option for select titles

For one- or two-semester undergraduate courses in operating systems for computer science, computer engineering, and electrical engineering majors

An introduction to operating systems with up-to-date and comprehensive coverage

Now in its 9th Edition, Operating Systems: Internals and Design Principles provides a comprehensive, unified introduction to operating systems topics aimed at computer science, computer engineering, and electrical engineering majors. Author William Stallings emphasizes both design issues and fundamental principles in contemporary systems, while providing readers with 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 text illustrates and reinforces design concepts, tying them to real-world design choices with case studies in Linux, UNIX, Android, and Windows 10.

With an unparalleled degree of support for integrating projects into the course, plus comprehensive coverage of the latest trends and developments in operating systems, including cloud computing and the Internet of Things (IoT), the text provides everything students and instructors need to keep pace with a complex and rapidly changing field. The 9th Edition has been extensively revised and contains new material, new projects, and updated chapters.

About the Book

Comprehensive and updated coverage on the field operating systems

  • REVISED! This edition was extensively reviewed by a number of professors who teach the subject and by professionals working in the field. As a result, the narrative has been clarified and tightened, and illustrations have been improved.
  • Four operating systems serve as running examples to illustrate the concepts and to tie them to real-world design choices that must be made: Linux, UNIX, Android, and Windows 10.
  • The book includes a number of pedagogic features, including the use of animations and videonotes and numerous figures and tables to clarify the discussion.
    • Each chapter includes a list of keywords, review questions, and homework problems.
  • Design concepts discussed in a given chapter are immediately reinforced with real-world examples.
  • Running case studies, focused on how specific operating systems implement specific concepts, illustrate concepts and are embedded throughout the text, rather than assembled as a single chapter or appendix.
  • Projects: This text provides an unparalleled degree of support for including a projects component in the course. The Instructor’s 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
    • Simulation projects
    • Semaphore projects
    • Kernel projects
    • Linux kernel projects
    • Android kernel projects
    • Programming projects
    • Research projects
    • Reading/report assignments
    • Writing assignments
    • Discussion topics

About the Book

  • This edition was extensively reviewed by a number of professors who teach the subject and by professionals working in the field. As a result, the narrative has been clarified and tightened, and illustrations have been improved.
  • Linux coverage: The Linux material has been updated and expanded to reflect changes in the Linux kernel since the 8th Edition.
  • Android coverage: The Android material has been updated and expanded to reflect changes in the Android kernel since the 8th Edition.
  • Virtualization coverage: The chapter on virtual machines has been completely rewritten to provide better organization and an expanded and more up-to-date treatment. In addition, a new section has been added on the use of containers.
  • Cloud operating systems: New to this edition is the coverage of cloud operating systems, including an overview of cloud computing, a discussion of the principles and requirements for a cloud operating system, and a discussion of a OpenStack, a popular open-source Cloud OS.
  • IoT operating systems: New to this edition is the coverage of operating systems for the Internet of Things. The coverage includes an overview of the IoT, a discussion of the principles and requirements for an IoT operating system, and a discussion of a RIOT, a popular open-source IoT OS.
  • Embedded operating systems: This chapter has been substantially revised and expanded, including:
    • The section on embedded systems has been expanded and now includes discussions of microcontrollers and deeply embedded systems.
    • The overview section on embedded OSs has been expanded and updated.
    • The treatment of embedded Linux has been expanded, and a new discussion of a popular embedded Linux system, µClinux, has been added.
  • Concurrency: New projects have been added to the Projects Manual to better help the student understand the principles of concurrency.

Table of Contents

  • Online Chapters and Appendices
  • VideoNotes
  • Preface
  • About the Author

I. Background

  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. Key Terms, Review Questions, and Problems
    • 1A. Performance Characteristics of Two-Level Memories
  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. Fault Tolerance
    • 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. Key Terms, Review Questions, and Problems

II. Processes

  1. 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. Key Terms, Review Questions, and Problems
  2. Threads
    • 4.1. Processes and Threads
    • 4.2. Types of Threads
    • 4.3. Multicore and Multithreading
    • 4.4. Windows 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. Key Terms, Review Questions, and Problems
  3. Concurrency: Mutual Exclusion and Synchronization
    • 5.1. Mutual Exclusion: Software Approaches
    • 5.2. Principles of Concurrency
    • 5.3. Mutual Exclusion: Hardware Support
    • 5.4. Semaphores
    • 5.5. Monitors
    • 5.6. Message Passing
    • 5.7. Readers/Writers Problem
    • 5.8. Summary
    • 5.9. Key Terms, Review Questions, and Problems
  4. 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 Communication
    • 6.12. Summary
    • 6.13. Key Terms, Review Questions, and Problems

III. Memory

  1. Memory Management
    • 7.1. Memory Management Requirements
    • 7.2. Memory Partitioning
    • 7.3. Paging
    • 7.4. Segmentation
    • 7.5. Summary
    • 7.6. Key Terms, Review Questions, and Problems
    • 7A. Loading and Linking
  2. 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. Key Terms, Review Questions, and Problems

IV. Scheduling

  1. Uniprocessor Scheduling
    • 9.1. Types of Processor Scheduling
    • 9.2. Scheduling Algorithms
    • 9.3. Traditional Unix Scheduling
    • 9.4. Summary
    • 9.5. Key Terms, Review Questions, and Problems
  2. Multiprocessor, Multicore, 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. Key Terms, Review Questions, and Problems

V. Input/Output and Files

  1. 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 Svr4 I/O
    • 11.9. Linux I/O
    • 11.10. Windows I/O
    • 11.11. Summary
    • 11.12. Key Terms, Review Questions, and Problems
  2. 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. Key Terms, Review Questions, and Problems

VI. Embedded Systems

  1. Embedded Operating Systems
    • 13.1. Embedded Systems
    • 13.2. Characteristics of Embedded Operating Systems
    • 13.3. Embedded Linux
    • 13.4. Tinyos
    • 13.5. Key Terms, Review Questions, and Problems
  2. Virtual Machines
    • 14.1. Virtual Machine Concepts
    • 14.2. Hypervisors
    • 14.3. Container Virtualization
    • 14.4. Processor Issues
    • 14.5. Memory Management
    • 14.6. I/O Management
    • 14.7. Vmware Esxi
    • 14.8. Microsoft Hyper-V and Xen Variants
    • 14.9. Java Vm
    • 14.10. Linux Vserver Virtual Machine Architecture
    • 14.11. Summary
    • 14.12. Key Terms, Review Questions, and Problems
  3. 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. Summary
    • 15.9. Key Terms, Review Questions, and Problems
  4. Cloud and IoT Operating Systems
    • 16.1. Cloud Computing
    • 16.2. Cloud Operating Systems
    • 16.3. The Internet of Things
    • 16.4. IoT Operating Systems
    • 16.5. Key Terms and Review Questions

Appendix A. Topics in Concurrency

Appendix B. Programming and Operating System Projects

References

Credits

Index

Dr. William Stallings has authored 18 titles, and including the revised editions, over 40 books on computer security, computer networking, and computer architecture. His writings have appeared in numerous publications, including the Proceedings of the IEEE, ACM Computing Reviews and Cryptologia. He has received the Best Computer Science textbook of the Year award 13 times from the Text and Academic Authors Association.

In over 30 years in the field, he has been a technical contributor, technical manager, and an executive with several high-technology firms. He has designed and implemented both TCP/IP-based and OSI-based protocol suites on a variety of computers and operating systems, ranging from microcomputers to mainframes. As a consultant, he has advised government agencies, computer and software vendors, and major users on the design, selection, and use of networking software and products.


He created and maintains the Computer Science Student Resource Site at ComputerScienceStudent.com. This site provides documents and links on a variety of subjects of general interest to computer science students (and professionals). He is a member of the editorial board of Cryptologia, a scholarly journal devoted to all aspects of cryptology. Dr. Stallings holds a Ph.D. from M.I.T. in Computer Science and a B.S. from Notre Dame in electrical engineering.

Need help? Get in touch

Pearson+

All in one place. Pearson+ offers instant access to eTextbooks, videos and study tools in one intuitive interface. Students choose how they learn best with enhanced search, audio and flashcards. The Pearson+ app lets them read where life takes them, no wi-fi needed. Students can access Pearson+ through a subscription or their MyLab or Mastering course.

Video
Play
Privacy and cookies
By watching, you agree Pearson can share your viewership data for marketing and analytics for one year, revocable upon changing cookie preferences. Disabling cookies may affect video functionality. More info...

Pearson eTextbook: What’s on the inside just might surprise you

They say you can’t judge a book by its cover. It’s the same with your students. Meet each one right where they are with an engaging, interactive, personalized learning experience that goes beyond the textbook to fit any schedule, any budget, and any lifestyle.Â