无效的页表条目是什么意思?

use*_*661 3 operating-system cpu-architecture virtual-memory tlb

来自维基百科:

页表查找可能由于两个原因而失败。第一个是如果没有可用于虚拟地址的转换,则意味着虚拟地址无效。

此外,如果每个进程都有自己的页表,这意味着页表中的条目都会有一些从虚拟地址到物理地址的转换。那么页表条目无效是什么意思呢?如果条目存在,则意味着转换存在,因为条目只不过是从虚拟地址到物理地址的映射。

use*_*003 5

恕我直言,维基百科条目不能处理所有情况。对于给定的虚拟地址,翻译的第一步是找到相应的页表条目。

问题1:页表条目可能根本不存在。操作系统可能会限制页表大小,使其不涵盖完整的虚拟地址范围,而指定的地址不在该范围内。这也可能发生在未填充所有级别的多级页表中。

问题2:页表项存在,但页没有映射到虚拟地址空间。

{这前两个最有可能被归类为无效页表条目)

问题3:页面不在物理内存中[Page fault]。

问题4:当前处理器模式下不允许请求的访问类型。例如,用户模式写入只允许用户模式读取的页面;内核模式对只允许读写的页面执行。