Here is the PDF version of this book.
Contents
- Chapter 0 Preface
- Chapter 1 </span><span style="font-size:medium">Compilation</span><span style="font-size:medium">
- 1.1 </span><span style="font-size:medium">Compiled and interpreted languages</span><span style="font-size:medium">
- 1.2 </span><span style="font-size:medium">Static types</span><span style="font-size:medium">
- 1.3 </span><span style="font-size:medium">The compilation process</span><span style="font-size:medium">
- 1.4 </span><span style="font-size:medium">Object code</span><span style="font-size:medium">
- 1.5 </span><span style="font-size:medium">Assembly code</span><span style="font-size:medium">
- 1.6 </span><span style="font-size:medium">Preprocessing</span><span style="font-size:medium">
- 1.7 </span><span style="font-size:medium">Understanding errors</span><span style="font-size:medium">
- Chapter 2 </span><span style="font-size:medium">Processes</span><span style="font-size:medium">
- 2.1 </span><span style="font-size:medium">Abstraction and virtualization</span><span style="font-size:medium">
- 2.2 </span><span style="font-size:medium">Isolation</span><span style="font-size:medium">
- 2.3 </span><span style="font-size:medium">UNIX processes</span><span style="font-size:medium">
- Chapter 3 </span><span style="font-size:medium">Virtual memory</span><span style="font-size:medium">
- 3.1 </span><span style="font-size:medium">A bit of information theory</span><span style="font-size:medium">
- 3.2 </span><span style="font-size:medium">Memory and storage</span><span style="font-size:medium">
- 3.3 </span><span style="font-size:medium">Address spaces</span><span style="font-size:medium">
- 3.4 </span><span style="font-size:medium">Memory segments</span><span style="font-size:medium">
- 3.5 </span><span style="font-size:medium">Static local variables</span><span style="font-size:medium">
- 3.6 </span><span style="font-size:medium">Address translation</span><span style="font-size:medium">
- Chapter 4 </span><span style="font-size:medium">Files and file systems</span><span style="font-size:medium">
- 4.1 </span><span style="font-size:medium">Disk performance</span><span style="font-size:medium">
- 4.2 </span><span style="font-size:medium">Disk metadata</span><span style="font-size:medium">
- 4.3 </span><span style="font-size:medium">Block allocation</span><span style="font-size:medium">
- 4.4 </span><span style="font-size:medium">Everything is a file?</span><span style="font-size:medium">
- Chapter 5 </span><span style="font-size:medium">More bits and bytes</span><span style="font-size:medium">
- 5.1 </span><span style="font-size:medium">Representing integers</span><span style="font-size:medium">
- 5.2 </span><span style="font-size:medium">Bitwise operators</span><span style="font-size:medium">
- 5.3 </span><span style="font-size:medium">Representing floating-point numbers</span><span style="font-size:medium">
- 5.4 </span><span style="font-size:medium">Unions and memory errors</span><span style="font-size:medium">
- 5.5 </span><span style="font-size:medium">Representing strings</span><span style="font-size:medium">
- Chapter 6 </span><span style="font-size:medium">Memory management</span><span style="font-size:medium">
- 6.1 </span><span style="font-size:medium">Memory errors</span><span style="font-size:medium">
- 6.2 </span><span style="font-size:medium">Memory leaks</span><span style="font-size:medium">
- 6.3 </span><span style="font-size:medium">Implementation</span><span style="font-size:medium">
- Chapter 7 </span><span style="font-size:medium">Caching</span><span style="font-size:medium">
- 7.1 </span><span style="font-size:medium">How programs run</span><span style="font-size:medium">
- 7.2 </span><span style="font-size:medium">Cache performance</span><span style="font-size:medium">
- 7.3 </span><span style="font-size:medium">Locality</span><span style="font-size:medium">
- 7.4 </span><span style="font-size:medium">Measuring cache performance</span><span style="font-size:medium">
- 7.5 </span><span style="font-size:medium">Programming for cache performance</span><span style="font-size:medium">
- 7.6 </span><span style="font-size:medium">The memory hierarchy</span><span style="font-size:medium">
- 7.7 </span><span style="font-size:medium">Caching policy</span><span style="font-size:medium">
- 7.8 </span><span style="font-size:medium">Paging</span><span style="font-size:medium">
- Chapter 8 </span><span style="font-size:medium">Multitasking</span><span style="font-size:medium">
- 8.1 </span><span style="font-size:medium">Hardware state</span><span style="font-size:medium">
- 8.2 </span><span style="font-size:medium">Context switching</span><span style="font-size:medium">
- 8.3 </span><span style="font-size:medium">The process life cycle</span><span style="font-size:medium">
- 8.4 </span><span style="font-size:medium">Scheduling</span><span style="font-size:medium">
- 8.5 </span><span style="font-size:medium">Real-time scheduling</span><span style="font-size:medium">
- Chapter 9 </span><span style="font-size:medium">Threads</span><span style="font-size:medium">
- 9.1 </span><span style="font-size:medium">Creating threads</span><span style="font-size:medium">
- 9.2 </span><span style="font-size:medium">Creating threads</span><span style="font-size:medium">
- 9.3 </span><span style="font-size:medium">Joining threads</span><span style="font-size:medium">
- 9.4 </span><span style="font-size:medium">Synchronization errors</span><span style="font-size:medium">
- 9.5 </span><span style="font-size:medium">Mutex</span><span style="font-size:medium">
- Chapter 10 </span><span style="font-size:medium">Condition variables</span><span style="font-size:medium">
- 10.1 </span><span style="font-size:medium">The work queue</span><span style="font-size:medium">
- 10.2 </span><span style="font-size:medium">Producers and consumers</span><span style="font-size:medium">
- 10.3 </span><span style="font-size:medium">Mutual exclusion</span><span style="font-size:medium">
- 10.4 </span><span style="font-size:medium">Condition variables</span><span style="font-size:medium">
- 10.5 </span><span style="font-size:medium">Condition variable implementation</span><span style="font-size:medium">
- Chapter 11 </span><span style="font-size:medium">Semaphores in C</span><span style="font-size:medium">
- 11.1 </span><span style="font-size:medium">POSIX Semaphores</span><span style="font-size:medium">
- 11.2 </span><span style="font-size:medium">Producers and consumers with semaphores</span><span style="font-size:medium">
- 11.3 </span><span style="font-size:medium">Make your own semaphores</span><span style="font-size:medium">