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

 Think OS

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

 Think OS

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

 Think OS

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

 Think OS

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

 Think OS

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

 Think OS

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

 Think OS

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

 Think OS

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

 Think OS

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

 Think OS

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

 Think OS

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

 Think OS

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