程序是否始终以连续的方式使用逻辑地址?是否有可能程序不使用0-200逻辑地址而是使用随机地址?
我问这个是因为我在读操作系统中的内存管理时 高尔文的概念, 作者提到,无论页面是有效还是无效,页面表都会为每个页面存储一个条目。
如果连续使用这些页面,那么我们就不需要存储所有条目。
答案 0 :(得分:0)
逻辑地址空间中的验证地址范围总是不连续的。
首先,用户空间和系统空间有一个单独的地址范围。系统空间通常位于较高的地址范围内,而用户空间通常从较低的地址范围开始。
即使是用户空间也往往是不连续的。应用程序数据往往从低端开始,而堆栈空间(向下增长)倾向于处于更高的地址。
作者提到,无论页面是有效还是无效,页面表都会为每个页面存储一个条目。
这根本不对。
在具有线性页表的系统中,页表的最大大小通常可以由系统参数设置,并通过进程配额减少。可能存在逻辑地址,根本没有页表条目。
在具有多级页表的系统中,由于缺少页表而导致逻辑地址空间可能存在间隙。