作業系統4 2

2021-09-02 20:00:30 字數 1887 閱讀 4187

單一連續分配

固定分割槽分配

動態分割槽分配

動態重定位分割槽分配

其他(1)單一連續分配

記憶體分為系統區和使用者區兩部分:

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

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

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

優點:易於管理。

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

(2)固定分割槽分配

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

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

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

具體實現:

1)如何劃分分割槽大小

2)需要的資料結構

3)分配**操作

(3)動態分割槽分配

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

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

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

具體實現:

1)分割槽分配中的資料結構

2)分割槽分配演算法

3)分割槽分配操作

分割槽分配演算法

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

首次適應演算法ff

迴圈首次適應演算法

最佳適應演算法

最差適應演算法

快速適應演算法

①首次適應演算法ff(first-fit)

空閒分割槽排序:以位址遞增的次序鏈結。

檢索:分配記憶體時,從鏈首開始順序查詢直至找到乙個大小能滿足要求的空閒分割槽;

分配:從該分割槽中劃出一塊作業要求大小的記憶體空間分配給請求者,餘下的空閒分割槽大小改變仍留在空閒鏈中。

若從頭到尾檢索不到滿足要求的分割槽則分配失敗

優點:優先利用記憶體低址部分,保留了高位址部分的大空閒區;

缺點:但低址部分不斷劃分,會產生較多小碎片;而且每次查詢從低址部分開始,會逐漸增加查詢開銷。

②迴圈首次適應演算法 (next-fit)

空閒分割槽排序:按位址

檢索:從上次找到的空閒分割槽的下乙個空閒分割槽開始查詢,直到找到乙個能滿足要求的空閒分割槽。為實現演算法,需要:

設定乙個起始查尋指標

採用迴圈查詢方式

分配:分出需要的大小

優點:空閒分割槽分布均勻,減少查詢開銷

缺點:缺乏大的空閒分割槽

③最佳適應演算法 (best-fit)

總是把能滿足要求、又是最小的空閒分割槽分配給作業,避免「大材小用」。

空閒分割槽排序:所有空閒分割槽按容量從小到大排序成空閒分割槽表或鏈。

檢索:從表或鏈的頭開始,找到的第乙個滿足的就分配

分配:分出需要的大小

缺點:每次找到最合適大小的分割槽割下的空閒區也總是最小,會產生許多難以利用的小空閒區(外碎片)

④最差適應演算法/最壞匹配法(worst-fit):基本不留下小空閒分割槽,但會出現缺乏較大的空閒分割槽的情況。

⑤快速適應演算法

根據程序常用空間大小進行劃分,相同大小的串成乙個鏈,需管理多個各種不同大小的分割槽的鍊錶。程序需要時,從最接近大小需求的鏈中摘乙個分割槽。類似的:夥伴演算法

能快速找到合適分割槽,但鍊錶資訊會很多;實際上是空間換時間。

作業系統學習筆記 42 感悟

學了一段時間的作業系統源 自己寫些感受。作業系統不是想象的那樣深不可測,按照系統的啟動過程是可以理解的。所以有時候有人認為linus不是像你想象的那樣偉大是有道理的,感覺stallman,kernighan ritchie gosling等比他nb點。作業系統是按照cpu的指令執行的,我們寫作業系統...

作業系統 作業系統介面

介面表現為函式呼叫,由作業系統提供,連線作業系統和應用軟體。出於安全性考慮,應用程式不能直接在記憶體中任意訪問 將核心程式和使用者程式隔離 通過比較訪問資料段cpl和rpl的特權級和當前段dpl的特權級之間的關係 應用程式呼叫庫函式printf printf呼叫庫中的write函式 write將函式...

作業系統(作業系統引論)

方便性 方便使用者進行操作計算機 有效性提高系統資源的利用率 提高系統的吞吐量,加速程式的執行 可擴充性 方便地增添新的模組和功能,以及對原有的功能模組進行修改 開放性能夠遵循世界標準規範 os作為使用者和計算機硬體系統之間的介面 使用者能夠通過作業系統來使用計算機系統 os作為計算機資源的管理者 ...