【发布时间】:2015-01-06 09:02:03
【问题描述】:
来自维基百科:
页表查找失败可能有两个原因。第一种是虚拟地址没有可用的转换,这意味着虚拟地址是无效的。
此外,如果每个进程都有自己的页表,这意味着页表中的条目都会有一些从虚拟地址到物理地址的转换。那么页表条目无效是什么意思呢?如果条目存在,则表示翻译存在,因为条目只是从虚拟地址到物理地址的映射。
【问题讨论】:
-
您在章节en.wikipedia.org/wiki/Page_table#Translation_failures 中的引用被剪掉了。文章谈到虚拟地址无效。与页表条目无效无关。此外,进程拥有自己的页表这一事实并不意味着页表覆盖了整个(可能非常非常大)虚拟内存。 wiki.osdev.org/Page_table#Page_Faults 还说“..当进程试图访问未映射到任何物理内存的虚拟内存区域时,会导致页面错误异常..”
-
PTE 格式通常有一个有效位指示翻译是有效的(可以使用其他机制,例如拒绝所有权限;单个有效位更简单,并允许操作系统使用 PTE 的其余部分用于存储信息)。 PTE 的存在并不意味着翻译是有效的。
-
这个问题有可能,但我不知道它的措辞是否正确。
标签: operating-system cpu-architecture virtual-memory tlb