程序是否以连续的方式使用逻辑地址?

时间:2016-11-01 17:11:29

标签: operating-system paging

程序是否始终以连续的方式使用逻辑地址?是否有可能程序不使用0-200逻辑地址而是使用随机地址?

我问这个是因为我在读操作系统中的内存管理时 高尔文的概念, 作者提到,无论页面是有效还是无效,页面表都会为每个页面存储一个条目。

如果连续使用这些页面,那么我们就不需要存储所有条目。

1 个答案:

答案 0 :(得分:0)

逻辑地址空间中的验证地址范围总是不连续的。

首先,用户空间和系统空间有一个单独的地址范围。系统空间通常位于较高的地址范围内,而用户空间通常从较低的地址范围开始。

即使是用户空间也往往是不连续的。应用程序数据往往从低端开始,而堆栈空间(向下增长)倾向于处于更高的地址。

  

作者提到,无论页面是有效还是无效,页面表都会为每个页面存储一个条目。

这根本不对。

在具有线性页表的系统中,页表的最大大小通常可以由系统参数设置,并通过进程配额减少。可能存在逻辑地址,根本没有页表条目。

在具有多级页表的系统中,由于缺少页表而导致逻辑地址空间可能存在间隙。