2016-10-08 39 views
-1

我看過的,更新用在交換髒頁在Linux中

  1. 交換空間沒有文件系統
  2. 盤有文件系統。只要修改了磁盤上的文件,修改後的內容就會寫入新的磁盤塊(而不是原始塊),並更新相關的數據結構。
  3. 髒頁在被換出之前會被寫回交換(由於各種原因)。

問題是,骯髒的頁面被寫回原來的頁面插槽還是寫入新的頁面插槽?如果寫入新頁面插槽,那麼過程是什麼?

回答

1

讓我試着回答你用通用術語提出的問題。

首先,由於歷史的原因,頁面分區在太監中被稱爲交換分區。在虛擬內存之前的幾天,整個進程都被換出。現在,流程已分頁。

出於性能方面的原因,操作系統希望以完整的塊進行分頁。一個頁面通常映射到一個或多個磁盤塊。在大多數非太監繫統中,頁面文件是連續的文件。使用虛擬塊I/O將頁面文件(以及可執行文件或庫)分頁。

傳統的太監檔案(inode)系統是快速和骯髒的設計。沒有能力創建一個連續的文件。編寫連續數據的唯一方法是使用整個磁盤或磁盤分區。太監數據庫和頁面文件就是磁盤分區(Mac OS使用不同的系統)。系統對磁盤執行邏輯(或物理)I/O操作,而不是對頁面文件執行虛擬塊I/O操作。

當進程分配虛擬內存時,通常頁面文件空間是先決條件。因此頁面框架的頁面文件位置保持在相同的位置。如果沒有他的情況下,一個進程可能需要有一個頁面,並沒有在頁面文件中的可用位置。

+0

其實我從開始就經歷了克勞利,可能我沒有給予足夠的關注,因此歷史和新系統混淆在我的腦海裏。感謝您清理它。 – ram619