底層技術 作業系統的記憶體管理

2021-07-11 13:03:23 字數 637 閱讀 4960

作業系統的記憶體管理有幾個原則

1.程序私有

2.基於頁

3.4gb大小

作業系統分配主要有2個步驟

1.預留

2.提交

預留的作用是針對頻繁請求記憶體**的,導致申請的位址空間不連續而增加的。一般的過程是自由---》預留------》提交

預留只是從位址空間劃分一部分給程式,而得到真正的物理儲存空間是在提交階段

1.每乙個程序都維護自己的層次結構來實現其位址的對映,第一層是目錄頁,第二層是葉表。有目錄頁找到葉表,找到葉表後就去找位址在此頁的位置

例如乙個0x2a8e31f7的指標,可以這樣找到他實際的實體地址

16進製化為2進製,前10位找到頁表;在10位葉表找到頁,後12位為指標指向此頁的位置。

2.對於每乙個程序的都有自己乙個avd集合,當程式申請一塊新的記憶體,字只需要訪問vad樹。

vad是乙個平衡二叉樹,申請位址在二vad大小之內即可申請。

程序首先會根據頁目錄訪問頁表項,如果頁表為空,那麼會查詢vad樹,然後生成相應的葉表項,程式的葉表項是在第一次訪問提交頁時獲得的。

若果vad顯示該位址不存在或者是預留擇丟擲異常

3.堆分配小塊的記憶體就用堆,堆不用思考葉表,邊界但是速度慢。

程序都有預設的堆,1m

作業系統記憶體管理

作業系統記憶體管理 一 程序的虛擬位址空間 每個程序都被賦予自己的虛擬位址空間,對於32位程序來說,這個位址空間為4g,因此程序中的位址可以為0x00000000至0xffffffff之間的任何乙個值。其中4g空間中的低區的2g空間留給程序使用,而高區的2g空間則留給系統使用。在windows200...

作業系統記憶體管理

作業系統記憶體管理一 程序的虛擬位址空間 每個程序都被賦予自己的虛擬位址空間,對於 32位程序來說,這個位址空間為 4g,因此程序中的位址可以為 0x00000000 至0xffffffff 之間的任何乙個值。其中 4g空間中的低區的 2g空間留給程序使用,而高區的 2g空間則留給系統使用。在win...

作業系統記憶體管理

記憶體,毫無疑問是最重要的資源,顯然,作業系統對記憶體的管理我必須清楚。這裡主要介紹了分頁管理和分段管理。1.頁式管理 a.頁式管理的基本思想 打破儲存分配的連續性 將邏輯上連續的使用者程式對映到離散的記憶體塊 使用者程式與記憶體空間被劃分為若干等長的區域 邏輯頁 與 物理頁 使用者程式的劃分由系統...