作業系統——第五章筆記(一)
虛擬儲存器的基本概念
1.分析常規儲存器管理不足的原因:
1)常規儲存器管理方式的特徵
一次性:作業在執行前一次性地全部裝入記憶體
駐留性:作業裝入記憶體後,便一直駐留在記憶體中,直至作業執行結束。
2)一次性及駐留性在程式執行時是否是必須的?
不是必須的,程式執行有區域性性。
2.區域性性原理
2.1程式在執行時將呈現出區域性性規律:
在一較短的時間內
程式的執行僅侷限於某個部分;
相應地,所訪問的儲存空間也侷限於某個區域。
2.2程式執行的特點:
多數情況下仍是順序執行。
少部分的轉移和過程呼叫指令會使程式執行由一部分割槽域轉至另一部分割槽域(但研究表明呼叫深度多數情況下不超過5)
許多由少數指令構成的迴圈結構會多次執行。
對許多資料結構的處理(如陣列)往往侷限於很小的範圍內。
2.3程式執行的區域性性:
時間區域性性(temporal locality)
被引用過一次的儲存器位置很可能在不遠的將來再被多次引用。
空間區域性性(spatial locality)
如果一個儲存器位置被引用了一次,那麼程式很可能在不遠的將來引用附近的一個儲存器位置。
基於區域性性原理
2.3.1程式執行前,不需全部裝入記憶體(打破一次性)
僅裝入當前要執行的部分頁面或段即可執行,其餘部分暫留在外存上。
缺頁/段的情況:要訪問的頁(段) 尚未調入記憶體。程式應利用OS所提供的請求調頁(段)功能,將它們調入記憶體,使程式繼續執行。
2.3.2調入需要的頁/段時,如果記憶體已滿,無法再裝入新頁(段),通過置換功能將記憶體中暫時不用的頁(段)調至外存,騰出足夠的記憶體空間。(不總駐留)
PS:
1)交換技術與虛存使用的調入調出技術有何相同和不同之處?
主要相同點是都要在記憶體與外存之間交換資訊;
主要區別在於交換技術換出換進一般是整個程序(proc結構和共享正文段除外),因此一個程序的大小受物理儲存器的限制;
而虛存中使用的調入調出技術在記憶體與外存之間來回傳遞的是儲存頁或儲存段,而不是整個程序,從而使得程序對映具有了更大的靈活性,且允許程序的大小比可用的物理儲存空間大的多 。
2)區域性性的目的:
為了用小的記憶體實現在大的虛空間中程式的執行目的
虛擬儲存器管理——由作業系統提供一個比實際記憶體大的,假想的特大儲存器。
3.虛擬儲存器的定義
所謂“虛擬儲存器”,是指具有請求調入功能和置換功能,能從邏輯上對記憶體容量加以擴充的一種儲存器系統。
虛擬儲存管理下:
記憶體邏輯容量由記憶體容量和外存容量之和所決定
執行速度接近於記憶體速度
每位的成本卻接近於外存。
4.虛擬儲存器的實現
虛擬儲存管理:
1)允許將一個作業分多次調入記憶體。
2)若採用連續分配方式,需申請足夠空間,再分多次裝入,造成記憶體資源浪費,並不能從邏輯上擴大記憶體容量。
3)虛擬的實現建立在離散分配儲存管理基礎上
方式:請求分頁/請求分段系統
細節:分頁/段機構、中斷機構、地址變換機構、軟體支援
5.虛擬儲存器的特徵
離散分配方式是基礎:
1)多次性:一個作業被分成多次調入記憶體執行
2)對換性:允許在作業的執行過程中進行換進、換出。(程序整體對換不算虛擬)
3)最終體現虛擬性:能夠從邏輯上擴充記憶體容量,使使用者所看到的記憶體容量遠大於實際記憶體容量。