如果每个页面框架在磁盘中都有一个副本?

时间:2020-09-08 03:04:19

标签: linux memory operating-system virtual-memory

如果每个页面框架在辅助存储器中都有一个副本,那么何时创建该副本并记录映射。

当MMU遇到空白页条目时会发生什么。如果当时有免费的物理页面,为什么还要在某些时候(之前或现在)进行复印。

为什么不能仅在需要换页框架时才忽略它并创建此副本?为每个页面帧保留副本不是太昂贵(也不懒惰),尤其是在当今物理内存越来越多的情况下?

一个网站说虚拟页面最初全部在磁盘上 https://computationstructures.org/lectures/vm/vm.html#7

1 个答案:

答案 0 :(得分:1)

由于没有其他相关的质量检查人员能够完全消除我的困惑。阅读在线电子书“了解Linux®虚拟内存管理器”后,我找到了答案。

本书中的图片用于处理页面错误。

enter image description here

答案是

如果每个页面框架在辅助存储器中都有一个副本,那么何时 什么时候制作此副本并记录映射?

否,内核仅在没有剩余可用页面时才换出页面框架,并且每当调用alloc_page时都可能发生这种情况(可能会在第一次访问空PTE时发生,或者通过以下方式访问PTE:页面已换出)。

在功能alloc_page中,非自由页面框架可以换出以为该需求调用腾出空间。

当MMU遇到空白页条目时会发生什么。如果有 当时有免费的物理页面,为什么还要花一些时间来复印 点(之前或现在)。

do_no_page将被调用,而在大多数情况下将被调用alloc_page