Toggle navigation sidebar
Toggle in-page Table of Contents
Introduction to Operating Systems
Preface
Getting started
1. Introduction
2. Purpose of operating systems
3. Operating System Structure & Unix/Linux
4. Operating System Abstractions
5. What you should know
5.1. The C Programming Language
5.2. Shell
5.3. Editors
5.4. Make
5.5. Testing
5.6. Git Basics
5.7. GDB
Virtual Processor
6. Introduction
7. The Process: A virtual Computer
8. Virtualizing the CPU
9. The Thread: A Virtual CPU
10. Scheduling
10.1. Scheduling Goals
10.2. Simple Examples of Scheduling Policies
10.3. Scheduling with Priorities
10.4. Scheduling in the real world
11. Review Questions
Virtual Memory
12. Introduction
13. Memory management before paged virtual memory
14. Paged Virtual memory
14.1. Abstracting a useful interface for memory management.
14.2. Paging
14.3. Page Tables
14.4. Memory reclaiming algorithms.
14.5. Page Sizes
14.6. Memory Management Page Faults
15. Buffer Cache
16. Memory management in the real world
17. Conclusion
18. Review
File Systems
19. Introduction
20. File System Abstraction
21. A bit about Disks
22. Implementation
22.1. File System Layout
22.2. Disk Layout:Tracking Used Space
22.3. Disk Layout:Tracking Free Space
22.4. Disk Layout:Implementing Name Space
22.5. Disk Layout:Dealing with Failures
22.6. Disk Layout:Examples of Real World File Systems
22.7. Kernel implementation
23. Review
Concurrency
24. Introduction
25. Basic Synchronization
25.1. Cooperating Processes and Inter-process Communication
25.2. The Critical Section Problem
25.3. Implementing Locks
25.4. Ordering Thread Events
26. Common Concurrency Bugs
27. Advanced Synchronization
27.1. Read-Dominated Workloads
27.2. Challenges of Modern Hardware
27.3. Locking in the Linux Kernel
28. Review
Other Topics
29. Input and Output
30. More on Disks
31. Virtualization
32. Security
Appendices
33. How to read this book
34. Contributing
34.1. Examples
34.2. Contributors
34.3. Contributing
34.6. Resources to look at
34.7. Out of date
35. Bibliography
JupyterHub
repository
open issue
suggest edit
.ipynb
.pdf
Conclusion
17.
Conclusion
#