以下討論都是站在作業系統內核開發的角度上,整個PC沒有作業系統。在80386的保護模式下,分頁機制是二級分頁,頁目錄為1024個,二級頁貞也是1024個。頁目錄的基地址是由CR3暫存器指定的,二級頁貞基地址是由“頁目錄”指定的,頁目錄只有10位,也就是只能指定到4M位元組的開始位置。那么這個二級頁貞只能在4M開始的第“0頁”。程式任務可以使用的記憶體是從第“1頁”開始的,是這樣的嗎?
如果是這樣我就搞不明白了,第一個問題:操作系如何在二級分頁的情況下,讀寫操作4M中的“頁貞”資料的?也就是操作二級頁表所在的物理記憶體?
第二個問題:如一個程式任務需要6M的記憶體,那么需要給它1536個頁塊。需要至少分布在2個以上的頁目錄塊中,也需要至少兩個二級頁貞表。如何將這1536個記憶體頁塊,映射到物理頁記憶體中呢?不需要考慮“虛擬記憶體”。這個問題可以換一個說法:如何將大于1024個頁貞的記憶體映射到物理地址上。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/82273.html
標籤:內核源代碼研究區
上一篇:Linux6.5系統二進制安裝mysql后,顯示mysql未安裝?
下一篇:關于Linux和多執行緒
