本系列將以作業系統為核心,從程式執行的角度逐步拆解 Process、Thread、System Call、Context Switch、Concurrency、Synchronization、Deadlock、CPU Scheduling、Virtual Memory、Paging、File System 等重要機制。
除了整理基本概念,也會進一步探討各項機制背後的設計原因、實際運作流程與彼此之間的關聯,並透過案例、圖解及簡單實驗輔助理解。
希望藉由 30 天的連續整理,建立對作業系統更完整且深入的系統性理解。
關於我,為什麼想寫這個系列 嗨!我是目前讀數位相關科系的大三學生。而作業系統就是其中一門讓我覺得「好像懂了,但仔細想又沒有真的懂」的課。以前在寫程式的時候,我比...
上一篇提到,一般程式通常在 User Mode 下執行,不能隨意存取硬體或執行具有高權限的操作。 但問題也跟著來了: 既然 User Mode 權限受到限制,程...
上一篇談到 System Call:當 User Program 需要 Kernel 提供服務時,可以透過受控制的方式切換 Kernel Mode。今天要看的問...
前三天我們一直提到一個詞:Process。 例如 CPU 正在執行 Process A、System Call 由某個 Process 發出,甚至 Interr...
上一篇提到,一個 Process 不只有程式碼。 當它正在 CPU 上執行時,還有一組很重要的 CPU Execution State,例如: Program...
上一篇談到 Context Switch 時,我們知道 OS 可以在不同 Process 之間切換。那這些 Process 到底是怎麼被建立出來的? 在 Uni...
前幾天我們花了很多時間理解 Process。一個 Process 有自己的 Virtual Address Space、系統資源與執行環境,而 CPU 又可以透...
上一篇談 Thread 時,我們最後留下了一個問題,假設同一個 Process 裡有兩條 Thread,而且它們共享:int counter = 0;現在兩條...