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
What You’ll Find In This zyBook:
More action with less text.
- Provides a highly-interactive introduction to underlying principles of operating systems
- 400+ participation activities: Animations and learning questions
- Topics include process and resource management, scheduling, concurrency, deadlocks, memory management, file systems, I/O, and protection and security
The zyBooks Approach
Less text doesn’t mean less learning.
This zyBook provides a highly-interactive introduction to Operating Systems. Operating systems are highly complex and dynamic systems. Understanding the fundamental concepts of operating systems requires observing and grasping the changes in diverse data structures and objects in the time dimension. This zyBook uses extensive animations to illustrate how these changes unfold in discrete steps. This material provides insight into the underlying relationship between the software and hardware. Each section is followed by a set of constructive, problem-solving exercises suitable for homework assignments. Detailed solutions to all exercises are available.
Concepts are taught not just through text and figures, but also through animations and learning questions. Animations help provide tremendous insight into numerous topics, greatly aiding student understanding. If “a picture is worth a thousand words,” an animation is worth five thousand. Learning questions help students thoroughly understand topics, via carefully-created incremental steps that not only keep students engaged, but provide thorough explanations of not only the right answers but also of wrong answers. This helps break down common student misconceptions, as necessary to enable learning.
Authors
Lubomir Bic
Professor of Computer Science
University of California, Irvine