第4章 儲存器管理

2021-09-02 20:34:26 字數 3078 閱讀 7988

絕對裝入(邏輯位址=實體地址)

靜態重定位裝入

動態執行時重定位裝入

(1) 靜態鏈結好的程式,修改部分模組後,需重新鏈結成可裝入程式。動態方式則便於修改和更新。

(2) 便於實現共享。靜態的n個程式都需要乙個模組時,需要進行n次拷貝。

系統區:僅提供給os使用,通常放在記憶體低址部分

使用者區:除系統區以外的全部記憶體空間,提供給使用者使用。

最簡單的一種儲存管理方式,只能用於單使用者、單任務的作業系統中。

優點:易於管理。

缺點:對要求記憶體空間少的程式,造成記憶體浪費;程式全部裝入,很少使用的程式部分也占用記憶體。

把記憶體分為一些大小相等或不等的分割槽(partition),每個應用程序占用乙個分割槽。作業系統占用其中乙個分割槽。

提高:支援多個程式併發執行,適用於多道程式系統和分時系統。最早的多道程式儲存管理方式。

劃分為幾個分割槽,便只允許幾道作業併發

分割槽大小相等:只適合於多個相同程式的併發執行(處理多個型別相同的物件)。缺乏靈活性。

分割槽大小不等:多個小分割槽、適量的中等分割槽、少量的大分割槽。根據程式的大小,分配當前空閒的、適當大小的分割槽。

建立一記錄相關資訊的分割槽表(或分割槽鍊錶),表項有:

| 起始位置 | 大小 | 狀態 |

分割槽表中,表項值隨著記憶體的分配和釋放而動態改變

也可將分割槽表分為兩個**:空閒分割槽表/占用分割槽表。從而減小每個**長度。

檢索演算法:空閒分割槽表可能按不同分配演算法採用不同方式對表項排序(將分割槽按大小排隊或按分割槽位址高低排序)。

過程:檢索空閒分割槽表;找出乙個滿足要求且尚未分配的分割槽,分配給請求程式;若未找到大小足夠的分割槽,則拒絕為該使用者程式分配記憶體。

分割槽的大小不固定:在裝入程式時根據程序實際需要,動態分配記憶體空間,即——需要多少劃分多少。

空閒分割槽表項:從1項到n項:

記憶體會從初始的乙個大分割槽不斷被劃分、**從而形成記憶體中的多個分割槽。

空閒分割槽表:

記錄每個空閒分割槽的情況。

每個空閒分割槽對應乙個表目,包括分割槽序號、分割槽始址及分割槽的大小等資料項。

空閒分割槽鏈:

每個分割槽的起始部分,設定用於控制分割槽分配的資訊,及用於鏈結各分割槽的前向指標;

分割槽尾部則設定一后向指標,在分割槽末尾重複設定狀態位和分割槽大小表目方便檢索。

動態分割槽方式,分割槽多、大小差異各不相同,此時把乙個新作業裝入記憶體,更需選擇乙個合適的分配演算法,從空閒分割槽表/鏈中選出一合適分割槽

首次適應演算法ff

迴圈首次適應演算法

最佳適應演算法

最差適應演算法

快速適應演算法

分配記憶體

找到滿足需要的合適分割槽,劃出程序需要的空間

if s<=size,將整個分割槽分配給請求者

if s> size,按請求的大小劃出一塊記憶體空間分配出去,餘下部分留在空閒鏈中,將分配區首址返回給呼叫者。

**記憶體

程序執行完畢釋放記憶體時,系統根據**區首址a,在空閒分割槽鏈(表)中找到相應插入點,根據情況修改空閒分割槽資訊,可能會進行空閒分割槽的合併:

(1)**區(首址a)與乙個分割槽f1末尾(首址b+大小)鄰接:將**區與f1合併,修改f1的表項的分割槽大小

(2)**區(首址a+大小)與乙個分割槽f2的首址b鄰接:將**區與f2合併,修改f2的表項的首址、分割槽大小

(3) (1)(2)兩種情況都有,則將**區與前後兩個分割槽f1、f2鄰接:將三個分割槽合併,使用f1的表項和f1的首址,取消f2的表項,大小為三者之和

(4) **區沒有鄰接的分割槽:為**區單獨建立新表項,填寫**區的首址與大小,根據其首址插到空閒鏈中的適當位置

存劃分成多個小單元,每個單元k大小,稱(物理)塊。作業也按k單位大小劃分成片,稱為頁面。

為了找到被離散分配到記憶體中的作業,記錄每個作業各頁對映到哪個物理塊,形成的頁面對映表,簡稱頁表。

每個作業有自己的頁表

頁表的作用:

頁號到物理塊號的位址對映

要找到作業a

關鍵是找到頁表(pcb)

根據頁表找物理塊

連續方式下,每條指令用基位址+偏移量即可找到其物理存放的位址。

規律作業相對位址在分頁下不同位置的數有一定的意義結構:

頁號+頁內位址(即頁內偏移)

關鍵的計算是:根據系統頁面大小找到不同意義二進位制位的分界線。

從位址中分析出頁號後,位址對映只需要把頁號改為對應物理塊號,偏移不變,即可找到記憶體中實際位置。

前面講解了位址變換的原理,那麼誰具體實現位址對映?——位址變換機構。

圍繞頁表進行工作,那麼頁表資料放在哪?

暫存器。乙個程序有n個頁,頁表就需要記錄n項資料,需要n個暫存器。不現實。

記憶體。只設定乙個頁表暫存器ptr(page table register)記錄頁表在記憶體中的首位址和頁表長度,執行時快速定位頁表。

問題:基本分頁機制下,一次指令需兩次記憶體訪問,處理機速度降低1/2,分頁空間效率的提高以如此的速度為代價,得不償失。

改進:減少第1步訪問記憶體的時間。增設乙個具有「並行查詢」能力的高速緩衝暫存器,稱為「快表」,也稱「聯想暫存器」(associative memory),ibm系統稱為tlb(translation look aside buffer)。

頁表大小的討論

程序分頁離散存放,但頁表的資料是連續在存放記憶體的。而頁表可能很大:

①兩級頁表

將頁表分頁,並離散地將頁表的各個頁面分別存放在不同的物理塊中

為離散分配的頁表再建立一張頁表,稱為「外層頁表」,其每個表項記錄了頁表頁面所在的物理塊號。

②多級頁表

64位作業系統下,兩級仍然不足以解決頁表過大問題時,可按同樣道理繼續分頁下去形成多級頁表。

從提高記憶體利用率角度;

固定分割槽 《動態分割槽《分頁

從滿足並方便使用者(程式設計師)和使用上的要求角度:

分段儲存管理:作業分成若干段,各段可離散放入記憶體,段內仍連續存放。

分段系統的突出優點:

易於實現共享

在分段系統中,實現共享十分容易,只需在每個程序的段表中為共享程式設定乙個段表項。

比較課本圖。對同樣的共享內容的管理上,很明顯分段的空間管理更簡單。分頁的圖涉及太多的頁面劃分和位址記錄的管理。

易於實現保護:

**的保護和其邏輯意義有關,分頁的機械式劃分不容易實現。

第4章 儲存器管理

思維導圖 儲存器管理 1 重點是記憶體管理,對其有效的管理直接影響儲存器的利用率 系統效能。1.儲存器資源的分配和 2.位址變換 邏輯位址與實體地址的對應關係維護 3.儲存共享和保護 4.虛擬儲存的排程演算法 2 外存的管理 磁碟儲存器管理 檔案系統等中涉及。一 程式的裝入和鏈結 多道程式環境下,程...

第4章 儲存器

半導體 磁性材料 光碟 隨機 唯讀 順序訪問 直接訪問 速度 容量 位價 虛擬儲存器 位址線 單向 資料線 雙向 晶元容量 控制線 讀寫控制線 片選線 解碼驅動方式 線選法 重合法 靜態ram 動態ram 基本單元電路 讀週期 讀時間 集中重新整理 分散重新整理 非同步重新整理 死時間 rom mo...

第4章 儲存器管理 連續分配儲存管理方式

為乙個使用者程式分配乙個連續的記憶體空間 1 單一連續分配 記憶體分為系統區和使用者區兩部分 系統區 僅提供給os使用,通常放在記憶體低址部分 使用者區 除系統區以外的全部記憶體空間,提供給使用者使用。最簡單的一種儲存管理方式,只能用於單使用者 單任務的作業系統中。優點 易於管理。缺點 對要求記憶體...