在Linux中更新swap中的脏页

时间:2016-10-08 11:22:47

标签: linux linux-kernel operating-system kernel virtual-memory

我读过的内容,

  1. 交换空间没有文件系统
  2. 磁盘有文件系统。每当修改磁盘上的文件时,其修改后的内容将被写入新磁盘块(而不是原始块),并且相关的数据结构将被更新。
  3. 在页面被分页之前(由于各种原因),脏页被写回交换。
  4. 问题是,脏页面是否写回原始页面槽还是写入新的页面槽?如果写入新的页面插槽,那么程序是什么?

1 个答案:

答案 0 :(得分:1)

让我试着用通用术语回答你提出的问题。

首先,由于历史原因,页面分区在太监中被称为交换分区。在虚拟内存之前的几天里,整个过程都被换掉了。现在进程被分页。

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

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

当进程分配虚拟内存时,通常页面文件空间是先决条件。因此,页面框架的页面文件位置保留在同一位置。如果没有他的情况,则进程可能需要页面输出并且页面文件中没有可用位置。