位址空間、relocation、base-and-bound 與保護|Stanford CS111 第 13 堂
第 13 講從 single-tasking 與 load-time relocation 的失敗出發,以 MMU 的 base/bound 建立 virtual/physical address spaces、透明隔離與 traps,再用 segmentation 解開單一連續區域的限制。
第 13 講從 single-tasking 與 load-time relocation 的失敗出發,以 MMU 的 base/bound 建立 virtual/physical address spaces、透明隔離與 traps,再用 segmentation 解開單一連續區域的限制。
Lecture 14 的官方 PDF 與 Lecture 13 逐位元組相同;本文明示此缺口,聚焦 segmentation 如何以多組 base/bound/protection 支援 growth、sharing、compaction,以及 fixed-count、fragmentation、rigid layout 限制。
第 15 講以固定大小 pages 消除跨 process external fragmentation,再拆解 x86-64 四層 page-table walk、sharing/aliasing 與 TLB,說明 translation speed、table sparsity、context switch 和 page size 的連動取捨。
Demand paging 只在需要時載入頁面;present bit、精確例外與可重啟指令讓核心能從 executable、zero-fill 或 backing store 安全補頁。
第 17 講把 demand paging 分成 fetching 與 replacement:MIN 無法預知未來,精確 LRU 成本過高,Clock 只靠 reference/dirty bits 找夠舊的 page;active working sets 放不進 RAM 時,1% fault rate 就可能帶來約 1,000 倍 slowdown。
磁碟把機械式 seek 與 rotation 隱藏成線性 block API;現代 I/O 再用 memory-mapped registers、DMA queues 與 interrupts,讓 CPU 只負責下命令和收完成通知。
檔案系統把耐久 byte collection 映射到磁碟 blocks;contiguous、linked 與 FAT 分別交換 locality、成長彈性、random access 與 metadata 成本。
4.3BSD inode 用 direct、single-indirect 與 double-indirect pointers 讓 lookup depth 隨檔案大小分級;FIFO、SPTF、SCAN 與 CSCAN 則交換 seek cost、公平性與等待時間。
Block cache 把熱索引留在 DRAM,bitmap 與保留空間維持配置選擇,fragments 和 delayed allocation 則用較晚、較完整的資訊換取 locality。
Directory 把文字名稱映射到 file-system-local i-number;hard link 共享 inode 與 reference count,symbolic link 則保存 pathname,換得跨檔案系統能力但可能形成 loop 或 dangling link。
檔案系統一次操作會改動多個 block,崩潰卻可能發生在任兩次寫入之間;本講比較 fsck、ordered writes 與 write-ahead logging 如何交換復原時間、效能、耐久性與一致性。
第 24 講從 WAL 入口往下拆 transaction、idempotent replay 與 checkpoint,說明一致性不等於 durability,journal 也不能取代 fsync 與備份。
第 25 講把 trust 拆成假設、推論與替代三種建立方式,再檢視社群推薦、生成式 AI 與合成媒體如何放大過度信任;實務答案是保留來源、交叉驗證並協調責任。
Flash 只能逐頁 program、整個 erase unit 清除;FTL 以 out-of-place mapping 隱藏不對稱,再用 garbage collection、temperature segregation、wear leveling 與 TRIM 管理放大成本。
VM 把 process interface 擴成完整硬體介面;hypervisor 讓普通指令直接執行、攔截 privileged operations,並虛擬化 interrupts、I/O 與兩層位址轉譯。
第 28 講把整學期收斂成並行、記憶體、儲存三條主線,再用 virtualization、atomicity、locality、layering 四個觀念解釋作業系統如何管理共享資源。
Stanford 沒有 AI 學位,AI 是 CS 底下的一條 track;CMU 2018 年開出全美第一個 B.S. in Artificial Intelligence,把 AI 拆成四個 cluster 並強制各修一門,還把倫理課列進畢業要求。碩士這條線則是 MSAII——不在 CS 系,在語言技術研究所,195 學分裡有 84 分是創業流程,最後要交一個能拿去募資的 capstone。查證時發現兩處官方頁面自己打架:AI Core 是 2 門還 3 門、總學分是 192 還 195。
AI Engineer YouTube 三年衝到 60 萬訂閱,不是因為他們很會做影片,而是因為他們根本不需要「做」影片——一年八場會議的錄影副產品,就是取之不盡的 YouTube 素材。內容創作的真正瓶頸不是技能,是結構。
CS103 是 Stanford 的計算數學基礎課:前半教集合、邏輯、圖與歸納法的證明寫作,後半教有限自動機、圖靈機、可判定性與 P 對 NP。投影片、作業題目、起始檔與自製講義全部公開,自動評分的題目可以在本機自測;解答、練習考題與上課錄影要 Stanford 登入。
CS107 是 Stanford 的計算機系統課:從位元、C 字串與指標,走到 x86-64 組合語言與執行期堆疊,最後自己寫 heap allocator,共七份作業。講義、作業說明與 lab 的逐題解答都公開;作業起始碼放在 Stanford 的 AFS 上,沒有校內帳號拿不到。