Linux內核頁表及頁表緩存原理是什么

一、相關概念

【頁】:進程中的塊。
【頁框】:內存中的塊。
【頁表】:特殊數據結構,存放系統空間的頁表區域(存放邏輯頁與物理頁幀的對應關系)。每個進程都有自己的頁表,pcb 表中有指針指向頁表。

二、頁表項

(1)邏輯地址(頁號,偏移量),邏輯地址就是虛擬地址。比如二級頁表的頁表項如下:

Linux內核頁表及頁表緩存原理是什么

(2)物理地址(頁框號,偏移量)。映射關系如下:

Linux內核頁表及頁表緩存原理是什么

三、頁表緩存

【頁表緩存】:CPU 內存管理單元(MMU),處理器制造廠商在內存管理單元中增加的一個高速緩存(稱為頁表緩存)。作用將虛擬地址轉換成物理地址。

Linux內核頁表及頁表緩存原理是什么

四、它們的關系

  1. 頁表由多個頁表項構成,頁表中每一行為一個頁表項。

  2. 頁框號:專門用于存儲虛擬頁面對應的物理頁面。

  3. 頁表項由硬件設計。

  4. 頁目錄,為頁表提供目錄(二維結構),支持多級查找。當一個應用程序在CPU上運行時,需要將頁目錄的起始地址放到寄存器中(因為虛擬地址的轉換過程需要偏移量)。

  5. MMU的工作過程:CPU 獲取虛擬地址–>MMU 查詢頁目錄–>MMU 查詢頁表–>MMU 獲取頁表項–>MMU 獲取到物理頁面編號–>MMU 獲取物理地址。

? 版權聲明
THE END
喜歡就支持一下吧
點贊12 分享