iT邦幫忙

鐵人檔案

2026 iThome 鐵人賽
回列表
IT Operation

解構作業系統:30 天從 Process、Concurrency 到 Virtual Memory 系列

本系列將以作業系統為核心,從程式執行的角度逐步拆解 Process、Thread、System Call、Context Switch、Concurrency、Synchronization、Deadlock、CPU Scheduling、Virtual Memory、Paging、File System 等重要機制。
除了整理基本概念,也會進一步探討各項機制背後的設計原因、實際運作流程與彼此之間的關聯,並透過案例、圖解及簡單實驗輔助理解。
希望藉由 30 天的連續整理,建立對作業系統更完整且深入的系統性理解。

參賽天數 19 天 | 共 19 篇文章 | 1 人訂閱 訂閱系列文 RSS系列文
DAY 11

Day 11|Semaphore:如果資源不只一份,要怎麼管理?

但現在換一個問題。假設系統裡不是只有「一份」資源,而是:Database Connection PoolConnection 1Connection 2Conn...

2026-09-25 ‧ 由 lynn1119 分享
DAY 12

Day 12|Spinlock:為什麼明知道浪費 CPU,Kernel 還是要一直 Spin?

前兩天我們已經認識了兩種 Synchronization Mechanism:Mutex / Semaphore但是還有另一種 Lock,它的想法完全不同:Th...

2026-09-26 ‧ 由 lynn1119 分享
DAY 13

Day 13|Deadlock:為什麼大家都拿到 Lock,程式反而永遠動不了?

這幾天的核心想法幾乎都是:多個 Thread 會碰到 Shared State,那就建立 Synchronization Rule,避免大家毫無限制地同時操作。...

2026-09-27 ‧ 由 lynn1119 分享
DAY 14

Day 14|CPU Scheduling:100 個 Thread 都想跑,OS 到底先選誰?

前面我們花了很多天處理 Concurrency:Race Condition↓Atomicity↓Mutex↓Semaphore↓Spinlock↓Deadlo...

2026-09-28 ‧ 由 lynn1119 分享
DAY 15

Day 15|Priority Inversion:為什麼最高優先權的 Thread,反而要等最低優先權?

上一篇 CPU Scheduling 提到,Scheduler 不一定把所有 Thread 完全平等看待。系統會存在:PriorityHigh Priority...

2026-09-29 ‧ 由 lynn1119 分享
DAY 16

Day 16|Virtual Memory:明明 RAM 就這麼大,為什麼每個 Process 都覺得自己有一大片 Memory?

如果把每個 Process 看到的 Memory 全部加起來,甚至可能遠超過實際 RAM。Process A 可能使用:0x400000Process B 也可...

2026-09-30 ‧ 由 lynn1119 分享
DAY 17

Day 17|Multi-level Page Table:為什麼 Page Table 自己不會先把 RAM 吃光?

Virtual Page 0 → Physical Frame 18Virtual Page 1 → Physical Frame 52Virtual Page...

2026-10-01 ‧ 由 lynn1119 分享
DAY 18

Day 18|TLB:CPU 每次存取 Memory 都要查 Page Table,真的不會慢死嗎?

現代 Page Table 可能是: Virtual Address↓L4↓L3↓L2↓L1↓Physical Frame CPU 執行:x = a + b ;...

2026-10-02 ‧ 由 lynn1119 分享
DAY 19

Day 19|Page Fault:明明程式沒有寫錯,CPU 為什麼故意把它丟進 Kernel?

先看一個很普通的程式: int *p = malloc(4096); p[0] = 100; 從 Programmer 的角度:malloc()↓拿到 Mem...

2026-10-03 ‧ 由 lynn1119 分享