分區存儲管理

分區存儲管理是一種很早期的內存管理方案,其基本思想是將內存區域劃分爲多個區,給每個作業分配一個區使用,並且每個作業只能在被分配的區中運行。
按照劃分方式不同,主要有三種不同的分區方式:固定分區,可變分區,重定位分區

固定分區

固定分區是指當程序載入時,系統爲程序選擇一個大小最接近作業大小的分區。
在這裏插入圖片描述
如上圖所示,新作業大小與分區3接近,故而新作業將被加載到分區3中。
由於每個作業大小不一定能恰好等於分區大小,故而會產生大量的內碎片,造成內存空間浪費。

可變分區

可變分區是指在作業加載時由操作系統根據作業實際大小來分配分區(作業大小等於分區大小)。這種方式能解決固定分區內存浪費的問題。這種方式需要系統記錄兩張表:已分配分區表和未分配分區表。
分區選擇算法主要分爲以下四類:

最佳適應算法

這種方式的核心是,假設內存中由n個空白分區。當作業載入時,系統從n個空白分區中找出最接近作業大小的分區。但是由於空白區的大小不可能剛好等於作業大小,故而空白區會被分爲兩個分區,一個恰好等於作業大小,一個爲剩餘大小。當空白分區被拆分得不能再分時,剩下的空白空間被稱作外碎片。
在這裏插入圖片描述

最差適應算法

這種方式的核心是,總是將作業加載到最大的空白區,空白區被拆分後的剩餘空白區依然很大,這樣子就儘可能減少了外碎片。

首次適應算法

系統每次加載作業時,都從內存中最低地址開始查找一個能夠加載作業的分區。

循環首次適應算法

系統每次加載作業時,都從上一次分配的分區開始查找一個能夠加載作業的分區。

重定位分區

無論是固定分區還是可變分區都不可避免會產生碎片,使用重定位分區的方式可以完全消除這個問題。重定位分區的思想是將已經分配的分區進行移動。當系統不能找到一塊足夠大的分區加載作業時,移動所有的已經分配的分區,使之“挨”在一起。這樣子就會使所有空白分區和外碎片連接在一起,合併起來的空間或許足夠再加載作業

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章