1. 程式人生 > >第八章—虛擬記憶體【計算機作業系統】

第八章—虛擬記憶體【計算機作業系統】

8.1 簡單分頁與虛擬分頁有什麼區別?

簡單分頁:一個程式中的所有的頁都必須在主儲存器中程式才能正常執行,除非使用覆蓋技術。

擬記憶體分頁:不是程式的每一頁都必須在主儲存器的幀中來使程式執行,頁在需要的時候進行讀取。

8.2 解釋什麼是抖動。

虛擬記憶體結構的震動現象,在這個過程中處理器大部分的時間都用於交換塊,而不是執行指令。

8.3 為什麼在使用虛擬記憶體時,區域性性原理是至關重要的?

可以根據區域性性原理設計演算法來避免抖動。總的來說,區域性性原理允許演算法預測哪一個當前頁在最近的未來是最少可能被使用的,並由此就決定候選的替換出的頁。

8.4 哪些元素是頁表項中可以找到的元素?簡單定義每個元素。

幀號:用來表示主存中的頁來按順序排列的號碼。

存在位(P):表示這一頁是否當前在主存中。

修改位(M):表示這一頁在放進主存後是否被修改過。

8.5 轉移後備緩衝器的目的是什麼?

轉移後備緩衝器(TLB)是一個包含最近經常被使用過的頁表項的高速緩衝儲存器。它的目的是為了減少從磁碟中恢復一個頁表項所需的時間。

8.6 簡單定義兩種可供選擇的頁讀取策略。

在請求式分頁中,只有當訪問到某頁中的一個單元時才將該頁取入主存。

在預約式分頁中,讀取的並不是頁錯誤請求的頁。

8.7 駐留集管理和頁替換策略有什麼區別?

駐留集管理主要關注以下兩個問題:(1)給每個活動程序分配多少個頁幀。(2)被考慮替換的頁集是僅限在引起頁錯誤的程序的駐留集中選擇還是在主存中所有的頁幀中選擇。

頁替換策略關注的是以下問題:在考慮的頁集中,哪一個特殊的頁應該被選擇替換。

8.8 FIFO和Clock頁替換演算法有什麼區別?

時鐘演算法與FIFO演算法很接近,除了在時鐘演算法中,任何一個使用位為一的頁被忽略。

8.9 頁緩衝實現的是什麼?

(1)被替換出駐留集的頁不久又被訪問到時,仍在主存中,減少了一次磁碟讀寫。

(2)被修改的頁以簇的方式被寫回,而不是一次只寫一個,這就大大減少了I/O操作的數目,從而減少了磁碟訪問的時間。

8.10 為什麼不可能把全域性替換策略和固定分配策略組合起來?

固定分配策略要求分配給一個程序的幀的數目是確定的,當一個程序中取入一個新的頁時,這個程序駐留頁集中的一頁必須被替換出來(保持分配的幀的數目不變),這是一種區域性替換策略。

8.11 駐留集和工作集有什麼區別?

一個程序的駐留集是指當前在主存中的這個程序的頁的個數。一個程序的工作集是指這個程序最近被使用過的頁的個數。

8.12 請求式清除和預約式清除有什麼區別?

在請求式清除中,只有當一頁被選擇用於替換時才被寫回輔存;

在預約式清除中,將這些被修改的多個頁在需要用到它們所佔據的頁幀之前成批的寫回輔存。