2016-01-24 125 views
0

我读操作系统概念由高尔文 .Under话题寻呼,我才知道,如果逻辑地址空间的大小为2^M和页面大小为2^N寻址单元(字节或字),则逻辑地址的高位指定页码,而低位指定页偏移量。为什么M-N高位给页码和较低n位给出偏移?

我无法弄清楚,为什么会这样,所以请提供相同的解释。

回答

0

之所以使用高位是局部性。当你从数据结构如数组,堆栈或记录(也就是C中的struct)访问元素时,这些元素彼此相邻。所以地址可能只在最低位有所不同,而最重要的位保持不变。这意味着这些元素大部分在同一页面中。

假设你会使用低位的页码。为了使事情变得容易,删除两个或三个最低有效位,使地址与机器字对齐。彼此相邻的元素现在总是处于不同的页面中。此外,比单词更大的元素现在分成多个页面。

一样的道理也适用于高速缓存。

相关问题