虛擬記憶體
頁框(page frame)
如果一頁(page)是固定大小的箱子,那麼頁框(page frame)就是真實倉庫裡剛好那個大小的架位。頁框是分頁被放進去的實體槽位。分頁是程式虛擬世界裡的邏輯區塊;頁框則是真實記憶體裡能容納一頁的實體區塊。把這兩個詞分清楚,理解虛擬記憶體就成功了一半。
具體來說,實體記憶體被切成固定數量、大小相等的頁框,編號 0、1、2 等等。每個頁框與一頁同樣大小(常見為 4 KiB),所以任何虛擬分頁都能被載入到任何空閒頁框。作業系統維護一份清單(或位元圖)記錄哪些頁框空閒、哪些在使用中。當程式需要把某一頁載入記憶體時,作業系統取一個空閒頁框、把該頁內容複製進去、並把這個對應記到分頁表裡。若沒有空閒頁框,作業系統必須先從某個頁框逐出某一頁(替換決策),才能重用那個頁框。
為何重要:頁框是稀缺、共享、有限的資源——數量等於安裝的 RAM 除以分頁大小,而每個執行中的程式都在搶。一個程式目前用到的頁框數量大致就是它的常駐集合;若所有程式的工作集合加起來超過可用頁框,系統就會輾轉(thrashing),花在搬進搬出分頁上的時間比計算還多。所以頁框正是作業系統實際用來編列與記帳實體記憶體的單位。
一台有 16 GiB RAM、4 KiB 頁框的機器,約有 400 萬個頁框。作業系統在程式需要分頁時一次發一個出去,並在程式結束或分頁被逐出時回收。
頁框是有限的實體槽位;眾多分頁競相佔用它們。
留意詞彙:「分頁」=虛擬區塊,「頁框」=實體槽位。學這個主題時,最常見的口誤就是把該說「頁框」的地方說成「分頁」。
又称
另见