-1

在Linux中,有一些函數用於索引pgd,pmd和pte,如pgd_offset,pmd_offset和pte_offset。誰稱這些功能? MMU是否使用這些函數來遍歷頁表?Linux頁面表

我的理解是,linux內核爲每個進程創建一個頁表,並將頁表的基地址傳遞給頁表基址寄存器,以便MMU可以訪問它。之後MMU如何讀取頁表?如果MMU是閱讀頁表的人,誰使用這些pgd_offset等功能?

+0

Look [here](http://lxr.free-electrons.com/ident?i=pgd_offset)。 – Downvoter

回答

0

MMU以後如何讀取頁表?

MMU正在使用硬件加速方法來讀取內存。實際查找是特定於體系結構的:就像指令解析過程一樣。

誰使用這些pgd_offset等功能,如果MMU是一個讀頁表?

有時,內核代碼想要通過虛擬地址查找struct page。它必須使用這些函數才能做到這一點(AFAIK,沒有用於MMU地址查找的API,因此它也必須在內核中實現)。