作業系統儲存至少要分成兩級:記憶體和外存。
記憶體管理最基本的操作時由處理器把程式裝入記憶體中執行。
——固定分割槽:
原理:靜態分割槽模式,給進入主存的使用者作業劃分一塊連續儲存區域,把作業裝入該連續儲存區域,若有多個作業裝入主存,則它們可併發執行。
使用大小相等的固定分割槽有一些問題:程式可能太大而不能放到乙個分割槽中,記憶體的,利用率很低。由於被裝入的資料塊小於分割槽大小,從而導致分割槽內部有浪費現象,成為「內部碎片」。對與大小不等的分割槽策略,最簡單的方法就是把每個程序分配到能夠容納它的最小分割槽中。
優勢:實現簡單,只需要極少的作業系統開銷
缺點:有內部碎片,對記憶體的使用不充分,活動程序的最大數目是固定的。
——可變分割槽:在作業要求裝入記憶體時,根據使用者作業的大小和當時記憶體空間使用情況決定是否為該作業分配乙個分割槽。因此分割槽大小不是預先固定的,而是按作業需求量來劃分的;分割槽的個數和位置也不是預先確定的。它有效地克服了固定分割槽方式中,由於分割槽內部剩餘記憶體空置造成浪費的問題。
系統初啟時,整個使用者區可看作乙個大的空閒區。當作業要求裝入時,根據作業對記憶體需求量,從空閒區中劃出乙個與作業大小一致的分割槽來裝入該作業,剩餘部分仍為空閒區。當空閒區能滿足需求時(即空閒區長度》=作業長度),作業可裝入;否則,作業暫時不能裝入。
裝入記憶體的作業執行結束後,所佔分割槽被收回成為乙個空閒區,這個空閒區又可用於裝入其他作業。隨著作業不斷裝入和撤離,記憶體空間被分成許多分割槽,有的被作業占用,有的空閒。
——空閒區表
用來記錄空閒區的起始位址和長度。當有作業要裝入記憶體時,在空閒區表中找一找「 未分配 」的欄目,從中找出乙個能容納作業的空閒區。若空閒區大於作業的長度時則被分成兩部分,一部分分配給作業;另一部分仍作為空閒區登記在表中。若找到的空閒區等於作業長度時,分配後該欄目狀態改為「空」狀。當有作業撤離收回所佔分割槽後,應把收回區域的起始位址和長度登記在狀態為「空」的欄目中,且將狀態改為「未分配」。如果收回的區域正好和某一空閒區相鄰,則應將其合併成乙個分割槽後登記
——移動技術
記憶體碎片指記憶體出現一些零散的小空閒區域,很難再利用,長此以往將造成嚴重的資源浪費。解決方法是移動所有的占用區域,使得空閒碎片合併成一整塊連續區域,這一技術稱為移動技術
作業系統實驗三 可變分割槽儲存管理
一.實驗目的和要求 通過這次實驗,加深對記憶體管理的認識,進一步掌握記憶體的分配 演算法的思想。二.實驗目的和要求 編寫程式模擬實現記憶體的動態分割槽法儲存管理。記憶體空閒區使用自由鏈管理,採用最壞適應演算法從自由鏈中尋找空閒區進行分配,記憶體 時假定不做與相鄰空閒區的合併。假定系統的記憶體共640...
linux作業系統分割槽
boot 設定為100 200mb。swap 物理記憶體的1.5倍,當記憶體大於或等於8gb時,配置為8 16gb即可。剩餘硬碟空間大小 usr home var等分割槽和 共用乙個分割槽,這相當於在 windows系統中只有乙個c盤,所有資料和系統檔案都放在一起 boot 設定為100 200mb...
作業系統 記憶體管理與記憶體分割槽
主要是以下幾點,做以了解 重定位 由於記憶體是被多程序共享的。那麼在在某個程式執行期間,誰也不知道會有其他那些程式駐留在記憶體中。所以,有時會將那些暫不需要的程序換出記憶體。恢復時,如果要恢復到切換之前的同一記憶體位址會非常困難,所以就要將程序進行重定位到記憶體的不同區域。保護 每個程序都應該收到保...