Memory
當我們要查找的物理頁在交換區時的頁表內容
如果這個問題取決於linux發行版,請以“一般方式”(即linux發行版上最常見的實現)回答。
在程序的頁表中,我們可以找到我們正在尋找的頁面在主記憶體中映射的物理方向,或者如果我們正在尋找的頁面不存在於主記憶體中並且我們必須擷取它,則可以找到指向磁碟的指針從磁碟。但我的問題是:如果我們要找的頁面放在交換區,我們會在那個程序的頁表上找到什麼?我們會找到一個指向磁碟的指針(但指向交換區域中的頁面),或者我們會找到一個物理方向,但是這個物理方向是一個“虛擬方向”,這使得 mainMemory + swapArea 成為一個統一的記憶體(即 如果我們有 16GB 主記憶體 + 2GB 交換記憶體,我們可以在頁表中看到我們正在尋找的頁面在 X 方向(X 對應於 17GB 的方向),這意味著我們將在交換中找到它記憶體(因為方向>16GB))?請記住,我們假設 16GB 主記憶體 + 2GB 交換記憶體。
被換出的頁面的頁表條目包含指示該事實的位(至少一個;細節取決於體系結構),以及指向描述交換頁面的資訊的兩部分指針。每個交換設備或文件都有一個相應的
swap_info
結構,每個結構都有一個映射,該映射將頁表條目連結到交換設備或文件中的位置。請參閱核心如何處理交換分區\文件上的交換記憶體頁?和Mel Gorman 的了解 Linux 虛擬記憶體管理器的“交換管理”一章了解詳細資訊。