在 Linux 中更新交换中的脏页

updation of dirty pages in swap in Linux

我读过的,

  1. Swap space 没有文件系统
  2. 磁盘有文件系统。每当修改磁盘上的文件时,其修改后的内容都会写入新的磁盘块(而不是原始块),并更新相关的数据结构。
  3. 脏页在被换出之前被写回交换(由于各种原因)。

问题是,脏页是写回原来的Page-Slots还是写到新的Page-Slots?如果写入新的页槽,那么程序是什么?

让我尝试用通用术语回答您提出的问题。

首先,由于历史原因,页面分区在太监中被称为交换分区。在虚拟内存出现之前,整个进程都被换出。现在进程被调出。

出于性能原因,操作系统希望以完整的块为单位进行分页。一页通常映射到一个或多个磁盘块。在大多数非太监系统上,页面文件是一个连续的文件。使用虚拟块 I/O 对页面文件(以及可执行文件或库)进行分页。

传统的太监文件(inode)系统设计得既快又脏。无法创建连续文件。写入连续数据的唯一方法是使用整个磁盘或磁盘分区。 Eunuchs 数据库和页面文件已成为磁盘分区(Mac OS 使用不同的系统)。系统不是对页面文件执行虚拟块 I/O,而是对磁盘执行逻辑(或物理)I/O。

进程分配虚拟内存时,通常页面文件space是先决条件。因此,页面框架的页面文件位置保持在同一位置。如果不是这种情况,一个进程可能需要有一个页面出来并且在页面文件中没有可用的位置。