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

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

Instructors: Interested in evaluating this zyBook for your class? Sign up for a Free Trial and check out the first chapter of any zyBook today!

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.

“It is already clear that this represents the future of programming text books. Its basic expository content is the equal of any paper text, but it really shines in using the natural advantages of online vs. static teaching material ­ animation and interactivity ­ to excellent effect, giving the student an additional dimension of insight.”

Brian LinardLecturer, UC Riverside

Authors

Lubomir Bic
Professor of Computer Science
University of California, Irvine