基本分頁儲存管理方式
本部分討論不具備對換功能的純分頁模式,作業執行需要全部裝入記憶體。
離散分配記憶體:
作業規定大小劃分成小份;記憶體也按同樣大小劃分成小份
作業的任一小份可分散放入記憶體任意未使用的小份
(分頁方式下,記憶體的使用率高,浪費少。但不是絕對沒有碎片(程序的最後一頁不總是能佔滿乙個物理塊))
1)頁面的概念
記憶體劃分成多個小單元,每個單元k大小,稱(物理)塊。作業也按k單位大小劃分成片,稱為頁面。
① 物理劃分塊的大小 = 邏輯劃分的頁的大小
②頁面大小要適中。
太大,(最後一頁)內碎片增大,類似連續分配的問題。
太小的話,頁面碎片總空間雖然小,提高了利用率,但每個程序的頁面數量較多,頁表過長,反而又增加了空間使用。
2)頁表的概念
為了找到被離散分配到記憶體中的作業,記錄每個作業各頁對映到哪個物理塊,形成的頁面對映表,簡稱頁表。
每個作業有自己的頁表
頁表的作用:頁號到物理塊號的位址對映
要找到作業a:關鍵是找到頁表(pcb),根據頁表找物理塊
3)位址的處理
連續方式下,每條指令用基位址+偏移量即可找到其物理存放的位址。
分頁方式下位址對映(位址計算)的過程?
若要執行某作業的一條指令,其相對位址是24b (設10b一頁,頁表如右表),其實體地址到底是多少呢?
分析其所在的頁和偏移得:2號頁(頁號從0開始) ,偏移4b處是該條指令
查頁表找頁面對應的塊(2號頁儲存在6號物理塊)
找物理塊6,向下偏移4b,找到要執行的指令。取出執行即可。
計算上就是求商(頁號)及取餘(偏移量)的過程
規律作業相對位址在分頁下不同位置的數有一定的意義結構:
頁號+頁內位址(即頁內偏移)
關鍵的計算是:根據系統頁面大小找到不同意義二進位制位的分界線。
從位址中分析出頁號後,位址對映只需要把頁號改為對應物理塊號,偏移不變,即可找到記憶體中實際位置。
注意:一作業所有指令在使用者位址空間是順序編址
重要引數:系統頁面大小=8b,指令大小=1b
記憶體離散分配,分段
分頁的目的是更細粒度的處理空間,減少粗放管理的浪費或開銷問題。離散分配記憶體 作業規定大小劃分成小份 記憶體也按同樣大小劃分成小份 作業的任一小份可分散放入記憶體任意未使用的小份 分頁方式下,記憶體的使用率高,浪費少。但不是絕對沒有碎片 程序的最後一頁不總是能佔滿乙個物理塊 1 頁面的概念 記憶體劃...
記憶體分配 分頁 分段
關於計算機記憶體分配,主要有兩種 連續記憶體分配和非聯絡記憶體分配。需要注意的是,這是作業系統級別的,而堆與棧的記憶體分配,是屬於編譯器級別的,具體可以參考另一篇筆記 連續記憶體分配是指為乙個程式分配位址連續的一段記憶體,當出現許多程式時,由於程式大小不一必然會出現許多的記憶體碎片,無法充分發揮出所...
4 3記憶體離散分配 分頁
基本分頁儲存管理方式 分頁的目的是更細粒度的處理空間,減少粗放管理的浪費或開銷問題。離散分配記憶體 作業規定大小劃分成小份,記憶體也按同樣大小劃分成小份 作業的任一小份可分散放入記憶體任意未使用的小份 分頁方式下,記憶體的使用率高,浪費少,但不是絕對沒有碎片 程序的最後一頁不總是能佔滿乙個物理塊 1...