第五章虛擬儲存器
1. 虛擬儲存器的基本概念
(1)常規儲存器管理方式的特徵
一次性:作業在執行前一次性地全部裝入記憶體
駐留性:作業裝入記憶體後,便一直駐留在記憶體中,直至作業執行結束。
(2)區域性性原理
程式在執行時將呈現出區域性性規律:
在一較短的時間內
程式的執行僅侷限於某個部分;
相應地,所訪問的儲存空間也侷限於某個區域。
程式執行的特點:
多數情況下仍是順序執行。
少部分的轉移和過程呼叫指令會使程式執行由一部分區域轉至另一部分區域(但研究表明呼叫深度多數情況下不超過5)
許多由少數指令構成的迴圈結構會多次執行。
對許多資料結構的處理(如陣列)往往侷限於很小的範圍內。
時間區域性性(temporal locality)
被引用過一次的儲存器位置很可能在不遠的將來再被多次引用。
空間區域性性(spatial locality)
如果乙個儲存器位置被引用了一次,那麼程式很可能在不遠的將來引用附近的乙個儲存器位置。
為了用小的記憶體實現在大的虛空間中程式的執行目的
基於區域性性原理
虛擬儲存器管理——由作業系統提供乙個比實際記憶體大的,假想的特大儲存器。
(3)虛擬儲存器的定義
所謂「虛擬儲存器」,是指具有請求調入功能和置換功能,能從邏輯上對記憶體容量加以擴充的一種儲存器系統。
虛擬儲存管理下
記憶體邏輯容量由記憶體容量和外存容量之和所決定
執行速度接近於記憶體速度
每位的成本卻接近於外存。
(4)虛擬儲存器的實現
虛擬儲存管理:
允許將乙個作業分多次調入記憶體。
若採用連續分配方式,需申請足夠空間,再分多次裝入,造成記憶體資源浪費,並不能從邏輯上擴大記憶體容量。
虛擬的實現建立在離散分配儲存管理基礎上
方式:請求分頁/請求分段系統
細節:分頁/段機構、中斷機構、位址變換機構、軟體支援
(5)虛擬儲存器的特徵
離散分配方式是基礎
多次性:乙個作業被分成多次調入記憶體執行
對換性:允許在作業的執行過程中進行換進、換出。(程序整體對換不算虛擬)
最終體現虛擬性:能夠從邏輯上擴充記憶體容量,使使用者所看到的記憶體容量遠大於實際記憶體容量。
2. 請求分頁儲存管理方式
基本分頁 + 「請求調頁」和「頁面置換」功能。
換入和換出基本單位都是長度固定的頁面
(1)硬體支援
一台具有一定容量的內/外存的計算機
影響缺頁率的主要因素 :(1)分配給作業的主存塊數:
多則缺頁率低,反之則高。
(2)頁面大小:
大則缺頁率低;反之則高。
(3)頁面排程演算法:
對缺頁中斷率影響很大,但不可能找到一種最佳演算法。
(4)程式編制方法:
以陣列運算為例,如果每一行元素存放在一頁中,則按行處理各元素缺頁中斷率低;反之,按列處理各元素,則缺頁中斷率高。
抖動:系統抖動:
為了提高處理機利用率,可增加多道程式併發度;但程序數目增加過多,每個程序分配得到的物理塊太少,在某個臨界點上,會出現剛被淘汰的頁很快又需重新調入;而調入不久又被淘汰出去;出現頻繁缺頁大部分處理器時間都用在來回的頁面排程上,這種局面稱為系統抖動或顛簸(thrashing)
抖動的後果:缺頁率急劇增加、記憶體有效訪問時間加長,
系統吞吐量驟減;系統已基本不能完成什麼任務,而是忙於頁面對換操作,cpu雖然忙,但效率急劇下降。
根本原因:頁面淘汰演算法不合理;分配給程序的物理頁面數(駐留集)太少。
常用防抖動方法:
區域性置換策略;
頁面調入記憶體前檢查各程序工作集,為缺頁率高的增加有限物理塊;
l缺頁間的平均時間=s置換乙個頁面所需時間,可使磁碟和cpu達到最大利用率;
抖動發生時選擇暫停一些程序,調節多道程式度。
駐留(常駐)集是指在當前時刻,程序實際駐留在記憶體當中的頁面集合。
工作集是程序在執行過程中固有的性質,而駐留集取決於系統分配給程序的物理頁面數目,以及所採用的頁面置換演算法;
4.請求分段儲存管理方式
在請求分段系統中,程式執行之前,只需先調入若干個分段(不必調入所有的分段),便可啟動執行。當所訪問的段不在記憶體中時,可請求os將所缺的段調入記憶體。
(1)請求分段中的硬體支援
段表機制
缺段中斷機構
發現執行程序所訪問段尚未調入記憶體
由缺段中斷機構產生一缺段中斷訊號
進入os,由缺段中斷處理程式將所需的段調入記憶體。
缺段中斷同樣在一條指令的執行期間產生和處理中斷,一條指令執行可能產生多次缺段中斷。但不會出現一條指令被分割在兩個分段中或一組資訊被分割在兩個分段中的情況。
位址變換機構
基於分段系統位址變換機構的基礎
段調入記憶體
修改段表
再利用段表進行位址變換。
總之:就是增加了缺段中斷的請求及處理等功能
(2)分段的共享和保護
①實現共享:共享段表
② 共享段如何分享與**
③ 分段保護
作業系統第五章
虛擬儲存器的基本概念 引入 實現 特徵 請求分頁儲存管理方式 硬體支援 位址變換 分配演算法 頁面置換演算法 效能分析 請求分段儲存管理方式 主要相同點是都要在記憶體與外存之間交換資訊 主要區別在於交換技術換出換進一般是整個程序 proc結構和共享正文段除外 因此乙個程序的大小受物理儲存器的限制 而...
作業系統 第五章 死鎖(一)
死鎖 deadlock 定義 在多道程式中,由於多個併發程序共享系統的資源,如果使用不當可能會造成一種僵局,即當某個程序提出資源的使用請求後,使得系統中一些程序處於無休止的阻塞狀態,在無外力的作用下,這些程序將無法繼續進行下去,這就是死鎖。產生死鎖的環境 1 多道程式設計技術 2 多個併發程序 3 ...
作業系統概念 第五章 CPU排程
排程準則 排程演算法 演算法評估 待補完 對於單處理器系統,cpu只能執行乙個程序,其他程序必須等待,直到cpu空閒為止。多道程式的目標是為了使任何時候都有程序在執行,使cpu的利用率最大化。cpu排程使程序在等待時 通常是等待某些io請求完成 從該程序拿走cpu的使用權交給另乙個程序,如此迴圈往復...