儲存管理之分配演算法

2021-07-24 01:53:27 字數 1130 閱讀 1680

作業系統之儲存管理

分配演算法:

1.最佳適應法

最佳適應演算法要求空閒區按大小遞增的次序排列.在進行記憶體分配時,從空閒分割槽表首開始順序查詢,直到找到第乙個能滿足其大小要求的空閒區為止,如果該空閒區大於請求表中的請求長度,則將剩餘空閒區留在可用表中(如果相鄰有空閒區,則與之和並),然後修改相關表的表項.按這種方式為作業分配記憶體,就能把既滿足要求又與作業大小接近的空閒分割槽分配給作業.如果空閒區大於該作業的大小,則與首次適應演算法相同,將剩餘空閒區仍留在空閒分割槽表中.

最佳適應演算法的特點是:若存在與作業大小一致的空閒分割槽,則它必然被選中;若不存在與作業大小一致的空閒分割槽,則只劃分比作業稍大的空閒分割槽,從而保留了大的空閒區.但空閒區一般不可能正好和作業申請的記憶體空間大小一樣,因而將其分割成兩部分時,往往使剩下的空閒區非常小,從而在儲存器中留下許多難以利用的小空閒區(也被稱為碎片).

2.首次適應法

要求把記憶體中的可用分割槽單獨組成可用分割槽表或可用分割槽自由鏈,按起始位址遞增的次序排列.查詢的方法是每次按遞增的次序向後找,一旦找到大於或等於所要求記憶體長度的分割槽,則結束查詢,從找到的分割槽中劃分所要求的記憶體大小分配給使用者,把剩餘的部分進行合併(如果有相鄰的空閒區存在的話),並修改可用區中的相應表項.

該演算法的特點是利用記憶體低位址部分的空閒分割槽,從而保留了高位址部分的大空閒區.但由於低位址部分不斷地被劃分,致使低位址端留下許多難以利用的很小的空閒分割槽,而每次查詢有都是從低位址部分開始,這無疑增加了查詢可用空閒分割槽的開銷.

3.迴圈適應法

為程序分配記憶體空間時,不是每次從空閒分割槽表首開始查詢,而是從上次找到的空閒分割槽的下乙個空閒分割槽開始查詢,直到找到第乙個能滿足其大小要求的空閒分割槽為止.然後按照作業大小,從該分割槽劃出一塊記憶體空間分配給請求者,餘下的空閒分割槽仍留在空閒分割槽表中.

該演算法的特點是使儲存空間的利用更加均衡,分配的速度會快一些,碎片也可能會少一些,不至於使小的空閒區集中儲存在儲存區的一端,但會導致缺乏大的空閒分割槽.

4.最壞適應法

最壞適應演算法要求按空閒區大小,從大到小遞減順序組成空閒區表或自由鏈.尋找的方法是當使用者作業或程序申請乙個空閒區時,選擇能滿足要求的最大空閒區分配,先檢查空閒區可用表或自由鏈的第乙個空閒區的大小是否大於或等於所要求的記憶體長度,若滿足,則分配相應的儲存空間給使用者,然後修改和調整空閒區可用表或自由鏈,否則分配失敗.

儲存器管理 分配

連續分配是指為乙個使用者程式分配連續的記憶體空間。連續分配有單一連續儲存管理和分割槽式儲管理兩種方式。1 單一連續儲存管理 在這種管理方式中,記憶體被分為兩個區域 系統區和使用者區。應用程式裝入到使用者區,可使用使用者區全部空間。其特點是,最簡單,適用於單使用者 單任務的作業系統。cp m和dos ...

作業系統儲存管理之分段儲存

從固定分割槽到動態分割槽,從分割槽方式到分頁方式發展提高了主存空間利用率。而分段儲存管理的引入,則滿足使用者 程式設計師 程式設計和使用上的要求,這些要求其它各種儲存管理技術難以滿足。在分頁式儲存管理中,頁的劃分 即邏輯位址劃分為頁號和單元號是使用者不可見的,連續的使用者位址空間將根據頁框架 塊 的...

作業系統儲存管理之分段儲存

而程式還存在一種分段結構 乙個程式由若干程式段 模組 組成,例如由乙個主程式段 若干子程式段 陣列段和工作區段所組成 每個段都從 0 開始編址,每個段都有模組名,且具有完整的邏輯意義。段與段之間的位址不連續,而段內位址是連續的。使用者程式中可用符號形式 指出段名和入口 呼叫某段的功能,程式在編譯或彙...