Table of Contents
1. Introduction
1.1 The role of an operating system
1.2 The OS structure
1.3 The evolution and scope of OSs
2. Processes, Threads, and Resources
2.1 The process concept
2.2 Why processes
2.3 The process control block
2.4 Operations on processes
2.5 Resources
2.6 Threads
3. Scheduling
3.1 Principles of scheduling
3.2 Scheduling of batch processes
3.3 Scheduling of interactive processes
3.4 Scheduling of real-time processes
3.5 Combined approaches
4. Concurrency
4.1 Process interactions
4.2 Semaphores
4.3 Implementation of semaphores
4.4 Monitors
4.5 Classic synchronization problems
5. Deadlock
5.1 A system model for deadlocks
5.2 Deadlock detection
5.3 Dynamic deadlock avoidance
5.4 Static deadlock prevention
6. Memory Management
6.1 Requirements for efficient memory management
6.2 Managing insufficient memory
6.3 Paging
6.4 Segmentation and paging
7. Virtual Memory
7.1 Principles of virtual memory
7.2 Page replacement with fixed numbers of frames
7.3 Approximations of the LRU algorithm
7.4 Page replacement with variable numbers of frames
7.5 Time and space efficiency of virtual memory
8. File System
8.1 Files
8.2 File directories
8.3 Implementation of file directories
8.4 Operations on files
8.5 Disk block allocation
9. Input/Output
9.1 The hardware-software interface
9.2 Data buffering and caching
9.3 Disk scheduling
9.4 Error handling
10. Protection and Security
10.1 Security goals and threats
10.2 User authentication
10.3 Access control
10.4 Secure communication
11. Programming projects
11.1 Two versions of the process creation hierarchy
11.2 Batch scheduling algorithms
11.3 Race condition with a shared buffer
11.4 The Banker’s algorithm
11.5 Memory allocation strategies
11.6 Page replacement algorithms
11.7 Disk scheduling algorithms
11.8 Stable storage
11.9 Buffer overflow attack
Teach fundamentals of operating systems with this hands-on, interactive zyBook
The Operating Systems zyBook provides a highly interactive introduction to operating systems, providing insight into the underlying relationship between software and hardware.
- Core topics include processes, threads, resources, scheduling, concurrency, memory management, file systems, I/O, security, and distributed systems
- New distributed systems chapter covers message-based process communication, remote procedure calls, distributed shared memory, and more
- 400+ participation activities, including animations and learning questions
- Adopters have access to a test bank with questions for every chapter
Animations embedded into the Operating Systems zyBook
What is a zyBook?
Operating Systems is a web-native, interactive zyBook that helps students visualize concepts to learn faster and more effectively than with a traditional textbook. (Check out our research.)
Since 2012, over 1,700 academic institutions have adopted digital zyBooks to transform their STEM education.
zyBooks benefit both students and instructors:
- Instructor benefits
- Customize your course by reorganizing existing content, or adding your own content
- Continuous publication model updates your course with the latest content and technologies
- Robust reporting gives you insight into students’ progress, reading and participation
- Save time with auto-graded labs and challenge activities that seamlessly integrate with your LMS gradebook
- Build quizzes and exams with embedded questions
- Student benefits
- Learning questions and other content serve as an interactive form of reading
- Instant feedback on labs and homework
- Concepts come to life through extensive animations embedded into the interactive content
- Review learning content before exams with different questions and challenge activities
- Save chapters as PDFs to reference the material at any time
Author
Lubomir Bic
Professor of Computer Science, University of California, Irvine