《深入理解計算機系統》讀書筆記-11(第9章 虛擬內存)

《深入理解計算機系統》讀書筆記-11(第9章 虛擬內存)

在實際應用中,我們將虛擬地址空間、物理地址空間均按統一的大小劃分爲“頁面”;“頁面”本質上就是一個存儲單元的集合。

在將虛擬地址翻譯爲物理地址的時候,我們需要用到一個由操作系統維護、稱爲“頁表”的數據結構;與虛擬地址空間一樣,頁表也是進程獨立的,即每個進程均各自維護着一個獨立的頁表。

操作系統將CPU要處理的虛擬地址按預先定義好的規則,劃分爲幾個特定的位段,這幾個位段分別具有不同的含義。其中高位的位段用於把虛擬地址空間中的元素再劃分爲多個層次的集合,越高位的位段指示的集合越大(多級頁表)。舉例來講,一個虛擬地址的劃分就類似於現實生活中的”地址“,越在前面的內容指示的範圍越大,逐步縮小範圍(按中國的地址書寫習慣):”中國四川省成都市青羊區青羊宮商圈草堂路28號“這樣一個地址,首先規定了是在”中國“,而不是”美國“,也不是”法國“;其次”四川省“就表明了這個地方不可能在”重慶市“,也不可能在”北京市“……以此類推,這樣我們就可以最終確定這個地址的所在,找到這麼一個與之對應的實體——杜甫草堂。

假如有一個虛擬地址[01010011],多級頁表總共又是 3 級、每級 4 個頁表條目,那麼就可以認爲翻譯過程應該是這樣:先在一級頁表0x01條目找到對應的二級頁表;再在這個二級頁表0x01條目找到對應的三級頁表;再在這個三級頁表中找到00條目對應的物理頁號(PPN);將這個 PPN 與 剩下的 VPO 組合起來,就可以得到虛擬地址對應的物理地址了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章