今天的內容主要是關於請頁機制。什麼叫做請頁?為什麼要執行請頁?
術語請求調頁指的是一種動態記憶體分配技術,它把頁面的分配推遲到不能再推遲為止,也就是說,一直推遲到行程要訪問的頁不在物理記憶體時為止,由此引起一個缺頁錯誤。
請求調頁技術的引入主要是因為行程開始執行的時候並不訪問其地址空間中的全部地址;事實上,有一部分地址也許行程永遠不使用。此外,程式的區域性性原理保證了在程式執行的每個階段,真正使用的行程頁只有一小部分,因此臨時用不著的頁所在的物理頁面可以由其它行程來使用。因此,對於全域性分配(一開始就給行程分配所需要的全部頁面,直到程式結束才釋放這些頁面)來說,請求調頁是首選的,因為它增加了系統中的空閑頁面的平均數,從而更好地利用空閑記憶體。從另一個觀點來看,在記憶體總數保持不變的情況下,請求調頁從總體上能使系統有更大的吞吐量。
為這一切優點付出的代價是系統額外的開銷:由請求調頁所引發的每個“缺頁”錯誤必須由核心處理,這將浪費CPU的週期。幸運的是,區域性性原理保證了一旦行程開始在一組頁上執行,在接下來相當長的一段時間內它會一直停留在這些頁上而不去訪問其它的頁:這樣我們就可以認為“缺頁”錯誤是一種稀有事件。
下來,開始聽課吧。
上完課,休息一下吧。有好的意見請留言。
編輯:李小白