Linux

Linux程序的虛擬記憶體結構

  • September 21, 2020

我正在閱讀一本教科書,其中顯示虛擬記憶體為: 在此處輸入圖像描述

Linux 還將一組連續的虛擬頁面(大小等於系統中 DRAM 的總量)映射到相應的連續物理頁面集。這為核心提供了一種方便的方式來訪問物理記憶體中的任何特定位置

我在這裡有點困惑。我認為它指的是第二部分“物理記憶”。但它是什麼意思我是訪問物理記憶體中任何特定位置的便捷方式?如果你想訪問一個特定的位置,cpu 仍然需要發出一條具有虛擬地址的指令,TLB 可以使用該指令,然後會產生一個物理地址來訪問物理記憶體,那麼“物理記憶體”部分到底是什麼為了?

映射物理記憶體的部分實際上旨在作為訪問物理記憶體的便捷方式。在具有這種映射的架構上,例如x86-64,訪問任何物理地址addr都可以通過訪問虛擬地址page_offset_base+來完成addr

如果沒有這個映射,訪問一個給定的物理地址需要找到一個包含它的映射,或者如果沒有,創建一個。這要貴得多。

引用自:https://unix.stackexchange.com/questions/610444