記憶體空間的分配與**
記憶體分配 優點
缺點連續記憶體分配
單一連續分配
記憶體被分為系統區和使用者區
記憶體中只能有一道使用者程式,獨佔整個使用者區空間
實現簡單
無外部碎片
可以採用覆蓋技術擴充記憶體
不一定要記憶體保護
只能用於單使用者和單任務的作業系統中
y有內部碎片
儲存器利用率低
固定分割槽分配
將整個使用者區劃分為若干個固定大小的分割槽,在每個分割槽中只裝入一道作業,用於支援多道程式系統
固定大小的意思時該分割槽大小不變,但不同分割槽可能大小不一樣
建立乙個分割槽說明表,來實現各個分割槽的分配與**,每個表項包括該分割槽的大小,起始位址,狀態
實現簡單
無外部碎片
當程式太大時,所有分割槽都無法滿足該要求,要採用覆蓋技術來解決
會產生內部碎片,記憶體利用率低
動態分割槽分配
不會預先劃分記憶體分割槽,而是在程序進入記憶體時,根據程序的大小動態建立分割槽,並使大小剛好適合。
常用資料結構:1.空閒分割槽表 2.空閒分割槽鏈
沒有內部碎片
有外部碎片
離散記憶體分配
tips:
內部碎片:分配給某些程序時,有部分記憶體該程序沒有用上
外部碎片:記憶體中某些空閒記憶體分割槽由於太小而難以利用
採用某種技術從邏輯上對記憶體空間進行擴充覆蓋技術交換技術虛擬儲存技術
記憶體擴充 思想
缺點覆蓋技術
將程式分成多個段,常用的段常駐記憶體"固定區",不常用的段需要時再調入記憶體"覆蓋區",不用時調出
記憶體中分乙個「固定區」和若干個「覆蓋區」
讓不可能同時呼叫的程式段共享乙個覆蓋區
對使用者不透明,增加程式設計負擔
(適用於早期的作業系統)
交換技術
當記憶體空間緊張時,可將某些程序暫時換出到外存(變成掛起態),把外存中已經滿足執行條件的程序換入到記憶體中 (pcb要常駐記憶體)
通常把磁碟(也就是外存)分為檔案區和對換區
可優先換出阻塞或優先順序低的程序,有時考慮記憶體駐留時間
虛擬儲存技術
位址重定位(邏輯位址到實體地址)三種裝入方式
時期方式
絕對裝入
單道程式階段
編譯時產生絕對位址
可重定位裝入
早期多道批處理階段
裝入時將邏輯位址轉換為實體地址
動態執行時裝入
現代作業系統
執行時將邏輯位址轉換為實體地址,需設定重定位暫存器
記憶體保護功能(兩種方法)在cpu中設定一對上下限暫存器,存放程序的上下限位址,用於檢測指令是否越界
採用重定位暫存器(基址暫存器)和界位址暫存器(限長暫存器)進行越界檢查
作業系統記憶體管理
作業系統記憶體管理 一 程序的虛擬位址空間 每個程序都被賦予自己的虛擬位址空間,對於32位程序來說,這個位址空間為4g,因此程序中的位址可以為0x00000000至0xffffffff之間的任何乙個值。其中4g空間中的低區的2g空間留給程序使用,而高區的2g空間則留給系統使用。在windows200...
作業系統記憶體管理
作業系統記憶體管理一 程序的虛擬位址空間 每個程序都被賦予自己的虛擬位址空間,對於 32位程序來說,這個位址空間為 4g,因此程序中的位址可以為 0x00000000 至0xffffffff 之間的任何乙個值。其中 4g空間中的低區的 2g空間留給程序使用,而高區的 2g空間則留給系統使用。在win...
作業系統記憶體管理
記憶體,毫無疑問是最重要的資源,顯然,作業系統對記憶體的管理我必須清楚。這裡主要介紹了分頁管理和分段管理。1.頁式管理 a.頁式管理的基本思想 打破儲存分配的連續性 將邏輯上連續的使用者程式對映到離散的記憶體塊 使用者程式與記憶體空間被劃分為若干等長的區域 邏輯頁 與 物理頁 使用者程式的劃分由系統...