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

标签 operating-system cpu-architecture virtual-memory tlb

来自维基百科:

The page table lookup may fail for two reasons. The first is if there is no translation available for the virtual address, meaning that virtual address is invalid.

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

最佳答案

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

问题一:页表项可能根本不存在。操作系统可能会限制页表大小,使其不覆盖整个虚拟地址范围,并且指定的地址超出该范围。这也可能发生在并非所有级别都已填充的多级页表中。

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

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

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

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

关于operating-system - 无效的页表条目是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26837356/

相关文章:

debugging - 如果图像在只读内存中,调试器如何设置断点?

process - 抢占式优先调度的平均等待时间

memory - 32位进程如何使用近4GB内存?

operating-system - 是否有关于 'The Social Network'中询问的分页qn的解释?

c++ - 线程相关问题及调试

assembly - 为什么在xv6中gdtdesc中有sizeof(gdt)-1

c++ - C++ 中的 "sleep"会发生什么?

c++ - 如何判断虚拟内存页是否已被锁定?

java - 为什么局部可变长度 for 循环更快?分支预测不会减少查找时间的影响吗?

performance - L2 TLB丢失后会发生什么?