作業系統的記憶體管理有幾個原則
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.頁式管理的基本思想 打破儲存分配的連續性 將邏輯上連續的使用者程式對映到離散的記憶體塊 使用者程式與記憶體空間被劃分為若干等長的區域 邏輯頁 與 物理頁 使用者程式的劃分由系統...