分割槽的個數和大小可變
存在記憶體碎片:動態分割槽,就是動態的判斷某一塊的記憶體空間能否儲存,不會找到剛剛好的,一般都是能放進去就放了,其他剩下的區域,又交給其他程式進行儲存,然後幾輪下來,就會存在很小的空間,無法利用,這就是記憶體的碎片
使得大的程式能在較小的記憶體中執行
使得多個程式能在較小的記憶體中執行
使得多個程式併發執行時位址不衝突
使得記憶體利用效率高
將程式的邏輯位址空間(有的又叫做虛擬位址空間)劃分為固定大小的頁(page),而物理記憶體劃分為同樣大小的頁框(pageframe)。程式載入時,可將任意一頁放人記憶體中任意乙個頁框,這些頁框不必連續,從而實現了離散分配。也就是把記憶體等分成n份,存放執行的程式時,按分成的快放置即可。
把程序空間和記憶體開年化成等大小的小片,小片的典型大小:1k,2k或4k
程序的小片——頁(虛擬頁或頁面)
記憶體的小片——頁框(物理頁)
頁式虛擬儲存管理:把程序全部頁面裝入虛擬儲存器,執行時先把部分頁面裝入實際記憶體,然後,根據執行行為,動態調入不在主存的頁,同時進行必要的頁面調出,是現代os的主流儲存管理技術。
當主存空間已滿而又需要裝入新頁時,頁式虛擬儲存管理必須按照一定的演算法把已在主存的一些頁調出去。選擇淘汰頁的工作稱為頁面排程 ,選擇淘汰頁的演算法稱為頁面排程演算法,頁面排程演算法設計不當,會出現剛被淘汰的頁面立即又要調入,並如此反覆,這種現象稱為抖動或顛簸。
最佳頁面替換演算法 、 先進先出頁面排程演算法 、 最近最少用頁面排程演算法
把程序按邏輯意義劃分為多個段,每段有段名,長度不定。程序由多段組成
段式程式設計:把乙個程式設計成多個段(**段、資料段、堆疊段等),使用者可以自己應用段覆蓋技術擴充記憶體空間使用量。每一段都可以從「0」開始編址,段內的位址是連續的
段式記憶體管理系統的記憶體分配
以段為單位裝入,每段分配連續的記憶體,段和段不要求相鄰
段式虛擬儲存管理:把程序的所有分段都存放在輔存中,程序執行時先把當前需要的一段或幾段裝入主存,在執行過程中訪問到不在主存的段時再把它們動態裝入
段需要連續的儲存空間
段的最大尺寸受到記憶體大小的限制
段長可變,頁面大小固定
段的劃分有意義,頁面無意義
段方便共享,頁面不方便共享
段使用者可見,頁面使用者不可見
在段式儲存中結合頁式儲存管理技術——在段中劃分頁面
記憶體分段 記憶體分頁 虛擬記憶體
程式通過鏈結器,多個檔案合併成乙個最終可執行檔案。可執行程式載入後占用的記憶體空間應該是連續的,因為執行指令的時候,程式計數器是順序地一條一條指令執行下去。這也就意味著,這一條條指令需要連續地儲存在一起。我們電腦肯定是要執行好多個程式的,在記憶體裡面肯定占用多個連續的分段,但是假如其中乙個程式退出,...
記憶體分配 記憶體分段 記憶體分頁 虛擬記憶體
記憶體應容納作業系統和各種使用者程序,因此應該盡可能有效地分配記憶體。通常,我們需要將多個程序同時放在記憶體中。因此我們需要考慮,如何為輸入佇列中需要調入記憶體的程序分配記憶體空間。在採用連續記憶體分配時,每個程序位於乙個連續的記憶體區域,與包含下乙個程序的記憶體相連。1.最為簡單的記憶體分配方法之...
虛擬記憶體 分頁機制
1.2 分頁 1.3 頁表 1.4 加速分頁過程 1.5 針對大記憶體的頁表 虛擬記憶體的基本思想 每個程式都有自己的位址空間,這個空間被分割成多個塊,每乙個塊被稱作一頁或頁面。每一頁有連續的位址範圍。這些頁被對映到物理記憶體,但並不是所有的頁都必須在記憶體中才能執行程式。當程式引用到一部分在物理記...