一開始的段表便已經產生,我們編譯器寫的時候,將作業系統的核心放在4g的高位址0xc0000000處,但是我們作業系統的人員想將作業系統的核心放在低位址的地方,就是對應的0x000000000的地方,所以,需要我們手動調整,首先是載入段表的時候,需要我們手動調整段表載入的位址,我們手動將器減去0xc0000000,然後,在將段表中每個段的基位址寫為-kernbase,這樣,載入資料段和**段的時候,就會自動調整為低位址狀態,此時虛擬位址-0xc000000=線性位址=實體地址
我們需要載入頁表,我們在填寫一級頁表的表項的時候將其寫為了線性位址-0xc0000000=實體地址,也就是說假設我們現在訪問了乙個0xc010的位址,經過段的變化,會變為0x0010,但是,這部分在也表上並沒有相應的對應關係,所以罵我們將頁表的對應關係的前4m指向kernbase~kernbase+4m的地方
個人覺得在現在的時刻段機制已經沒有用了,但是intel強制的將段機制進行推銷,所有位址的共享和保護完全是根據頁機制在進行,我們之前看到的所有根據段定址的應該都是最初的時候採用的方法
作業系統 段頁結合的實際記憶體管理
段 頁結合 程式設計師希望用段,物理記憶體希望用頁,所以 從虛擬記憶體中割出乙個區域來給這個段,段就有了對映,但是這個虛擬記憶體不能正真的使用,需要把虛擬記憶體再對映一次,這個時候虛擬記憶體中的段分割成固定大小的頁,每一頁再去對映到物理記憶體中 段面向使用者,頁面向硬體 也就是位址翻譯 從使用者的角...
作業系統記憶體管理 簡單 頁式 段式 段頁式
一 記憶體管理的目的和功能 記憶體一直是計算機系統中寶貴而又緊俏的資源,記憶體能否被有效 合理地使用,將直接影響到作業系統的效能。此外,雖然物理記憶體的增長現在達到了n個gb,但比物理記憶體增長還快的是程式,所以無論物理記憶體如何增長,都趕不上程式增長的速度,所以作業系統如何有效的管理記憶體便顯得尤...
作業系統原理 08 儲存管理之段頁式儲存管理
字塊是相對物理裝置的定義 頁面則是相對邏輯空間的定義 將程序邏輯空間等分成若干大小的頁面 相應的把物理記憶體空間分成與頁面大小的物理塊 以頁面為單位把程序空間裝進物理記憶體中分散的物理塊 頁面大小應該適中,過大難以分配,過小記憶體碎片過多 頁面大小通常是512b 8k 頁表記錄程序邏輯空間與物理空間...