如果这个问题取决于linux发行版,请以“一般方式”(即linux发行版上最常见的实现)回答。
在进程的页表中,我们可以找到我们要查找的页面在主内存中映射的物理方向,或者如果我们要查找的页不在主内存中,并且必须从磁盘中捕获它,则可以找到指向磁盘的指针。但我的问题是:如果我们正在寻找的页面位于交换区域,我们将在该过程的页面表中找到什么?我们会找到一个指向磁盘的指针(但是指向交换区域中的页面),或者我们会找到一个物理方向,但这个物理方向是一个“虚拟方向”,这使得mainMemory + swapArea成为一个统一的内存(也就是说,如果我们有16 2GB主存+2GB交换内存,我们可以在页面表中看到我们要查找的页面位于X方向(X是对应于17 2GB的方向),这意味着我们将在交换内存中找到它(因为是>16 2GB的方向)。请记住,我们正在配置16 2GB主存+2GB交换内存。
发布于 2020-06-30 21:00:17
被交换的页面的页表条目包含指示这一事实的位(至少一个;细节取决于体系结构),以及一个指向描述交换页面的信息的两部分指针。每个交换设备或文件都有一个对应的swap_info结构,每个交换设备或文件都有一个映射,该映射将页面表条目链接到交换设备或文件中的某个位置。
有关详细信息,请参阅Mel Gorman的“理解Linux”的内核地址如何交换交换分区\文件上的内存页?和“互换管理”一章。
https://unix.stackexchange.com/questions/595947
复制相似问题