Think OS
“Think OS” is a comprehensive resource that delves into the intricacies of operating systems, offering a deep exploration of fundamental concepts and practical applications. The document covers a wide array of topics, including the structure of operating systems, process management, memory management, file systems, and more. It provides valuable insights into how operating systems function, the challenges they face, and the strategies employed to optimize their performance. By drawing from various referenced documents, “Think OS” offers a well-rounded and informative overview of operating system principles and practices, making it a valuable resource for both beginners and experienced individuals in the field.
Chapter 3 Virtual memory
3.1 A bit of information theory A bit is a binary digit; it is also a unit of information. If you have one bit, you can specify one of two possibilities, usually written 0 and 1. If you have two bits,...
📚 Read more at Think OS🔎 Find similar documents
Chapter 7 Caching
7.1 How programs run In order to understand caching, you have to understand how computers execute programs. For a deep understanding of this topic, you should study computer architecture. My goal in t...
📚 Read more at Think OS🔎 Find similar documents
Chapter 6 Memory management
C provides 4 functions for dynamic memory allocation: malloc , which takes an integer size, in bytes, and returns a pointer to a newly-allocated chunk of memory with (at least) the given size. If it c...
📚 Read more at Think OS🔎 Find similar documents
Contents
Chapter 0 Preface 0.1 Using the code 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 lang...
📚 Read more at Think OS🔎 Find similar documents
Chapter 11 Semaphores in C
Semaphores are a good way to learn about synchronization, but they are not as widely used, in practice, as mutexes and condition variables. Nevertheless, there are some synchronization problems that c...
📚 Read more at Think OS🔎 Find similar documents
Chapter 4 Files and file systems
When a process completes (or crashes), any data stored in main memory is lost. But data stored on a hard disk drive (HDD) or solid state drive (SSD) is “persistent;” that is, it survives after the pro...
📚 Read more at Think OS🔎 Find similar documents
Chapter 5 More bits and bytes
5.1 Representing integers You probably know that computers represent numbers in base 2, also known as binary. For positive numbers, the binary representation is straightforward; for example, the repre...
📚 Read more at Think OS🔎 Find similar documents
Chapter 2 Processes
2.1 Abstraction and virtualization Before we talk about processes, I want to define a few words: Abstraction: An abstraction is a simplified representation of something complicated. For example, if yo...
📚 Read more at Think OS🔎 Find similar documents
Chapter 9 Threads
When I mentioned threads in Section 2.3 , I said that a thread is a kind of process. Now I will provide a more careful explanation. When you create a process, the operating system creates a new addres...
📚 Read more at Think OS🔎 Find similar documents
Chapter 0 Preface
In many computer science programs, Operating Systems is an advanced topic. By the time students take it, they know how to program in C, and they have probably taken a class in Computer Architecture. U...
📚 Read more at Think OS🔎 Find similar documents
Chapter 10 Condition variables
Many simple synchronization problems can be solved using mutexes as shown in the previous chapter. In this chapter I introduce a bigger challenge, the well-known “Producer-Consumer problem”, and a new...
📚 Read more at Think OS🔎 Find similar documents
Chapter 8 Multitasking
In many current systems, the CPU contains multiple cores, which means it can run several processes at the same time. In addition, each core is capable of “multitasking”, which means it can switch from...
📚 Read more at Think OS🔎 Find similar documents