2016-01-24 129 views
0

我讀操作系統概念由高爾文 .Under話題尋呼,我才知道,如果邏輯地址空間的大小爲2^M和頁面大小爲2^N尋址單元(字節或字),則邏輯地址的高位指定頁碼,而低位指定頁偏移量。爲什麼M-N高位給頁碼和較低n位給出偏移?

我無法弄清楚,爲什麼會這樣,所以請提供相同的解釋。

回答

0

之所以使用高位是局部性。當你從數據結構如數組,堆棧或記錄(也就是C中的struct)訪問元素時,這些元素彼此相鄰。所以地址可能只在最低位有所不同,而最重要的位保持不變。這意味着這些元素大部分在同一頁面中。

假設你會使用低位的頁碼。爲了使事情變得容易,刪除兩個或三個最低有效位,使地址與機器字對齊。彼此相鄰的元素現在總是處於不同的頁面中。此外,比單詞更大的元素現在分成多個頁面。

一樣的道理也適用於高速緩存。

相關問題