我正在阅读操作系统概念。在内存保护中,给出了以下示例:
在具有14位地址空间的系统中,我们有一个仅使用地址0到10468的程序。页面大小为2 Kb。
然后他们展示了一个图表,其中页表包含8个条目。
我不明白为什么他们使用了8个条目。该程序只需要6个条目。前6个条目标记为有效,但其余两个条目标记为无效。但这是浪费空间。为什么仅添加两个条目以将其标记为无效。
这是否意味着页面表的大小与进程实际需要的页数无关。
后面提到的更好的解决方案是使用页表长度寄存器而不是添加所有条目,而不是添加所有条目,它存储页表的长度。
但是在下一章解释需求分页时,他们再次回到这一点: 当使用请求分页时,如果页面被标记为无效,则它不在内存中或者位于逻辑地址空间之外(如果页面位于逻辑地址空间之外,为什么要将页面添加到页面表中)。
更好的解决方案是无效位应仅表示页面不在内存中。
请解释为什么这本书自相矛盾?