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
Virtual Processor
6. Introduction
7. Virtualizing a CPU
8. Scheduling
9. A Look at the Linux Scheduler
File Systems
10. Introduction
11. File System Abstraction
12. A bit about Disks
13. File System Layout
14. Disk Layout:Tracking Used Space
15. Disk Layout:Tracking Free Space
16. Disk Layout:Implementing Name Space
17. Disk Layout:Dealing with Failures
18. Disk Layout:Examples of Real World File Systems
19. Kernel implementation
Virtual Memory
20. Introduction
21. Memory management before paged virtual memory
22. Paging
23. Page Tables
24. Memory reclaiming algorithms.
25. Page Sizes
26. Other topics
27. Buffer Cache
28. Memory Management Dynamics
29. Memory management in the real world
30. Conclusion
Concurrency
31. Introduction to Concurrency, Synchronization and Deadlock
32. Cooperating Processes and Inter-process Communication
33. The Critical Section Problem
34. Implementing Locks
35. Ordering Thread Events
36. Common Concurrency Bugs
37. Read-Dominated Workloads
38. Challenges of Modern Hardware
39. Locking in the Linux Kernel
Other Topics
40. Input and Output
41. More on Disks
42. Virtualization
Appendices
43. How to read this book
44. Contributing
45. Bibliography
repository
open issue
Index