操作系统如何知道缺页的磁盘地址?

8
分页机制在虚拟地址空间和物理地址空间之间起到了一个间接层的作用。 操作系统(OS) / 内存管理单元(MMU)将给定的地址翻译为主要内存位置。
我的问题是: 在主存中缺少页面的情况下 1. 操作系统如何知道在磁盘上找到页面? 2. 它在哪里存储问题1的信息?(它不存储在页面表项中)提供代码示例链接将是很好的参考!

2
  1. 它向文件系统驱动程序询问;
  2. 见(1)。除此之外,由于各种可能的文件系统类型、存储类型等的极其广泛的多样性,这是非常通用的。您可以下载内核代码并自己查看...
- twalberg
1个回答

6
您可以在此处找到详细的过程解释。
  1. 操作系统如何知道在磁盘上找到页面?
  2. 信息1存储在哪里?(它没有存储在页面表项中)。提供代码示例的链接将非常有帮助!
内核需要了解的所有内容都实际存储在PTE中(它存储了索引以及交换映射中的偏移量)。
每个交换区域(文件或分区)都有一个swap_info_struct,因此使用第一个索引,内核就知道要查找哪个区域。现在,每个区域都有一个swap_map,它是由一页一页组成的数组。使用存储在PTE中的偏移量,就可以访问特定的页面。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接