Table of Contents
Table of Contents
- Online Chapters and Appendices
- VideoNotes
- Preface
- About the Author
I. Background
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
About the Author
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.