常規儲存器管理方式的特徵
一次性:作業在執行前一次性地全部裝入記憶體
駐留性:作業裝入記憶體後,便一直駐留在記憶體中,直至作業執行結束。
一次性及駐留性在程式執行時是否是必須的?不是。程式執行有區域性性。
程式執行的特點:
多數情況下仍是順序執行。
少部分的轉移和過程呼叫指令會使程式執行由一部分區域轉至另一部分區域(但研究表明呼叫深度多數情況下不超過5)
許多由少數指令構成的迴圈結構會多次執行。
對許多資料結構的處理(如陣列)往往侷限於很小的範圍內。
上述情況均表現出程式執行的區域性性。
時間區域性性 空間區域性性
基於區域性性原理
程式執行前,不需全部裝入記憶體(打破一次性)
僅裝入當前要執行的部分頁面或段即可執行,其餘部分暫留在外存上。
缺頁/段的情況:要訪問的頁(段) 尚未調入記憶體。程式應利用os所提供的請求調頁(段)功能,將它們調入記憶體,使程式繼續執行。
調入需要的頁/段時,如果記憶體已滿,無法再裝入新頁(段),通過置換功能將記憶體中暫時不用的頁(段)調至外存,騰出足夠的記憶體空間。(不總駐留)
總之:為了用小的記憶體是現在大的虛空間中程式的執行目的。
基於區域性性原理
虛擬儲存管理——由作業系統提供乙個比實際記憶體大的,假想的特大儲存器。
二.虛擬儲存器的定義
虛擬儲存器是指具有請求調入功能和置換功能,能從邏輯上對記憶體容量加以擴充的一種儲存器系統。
虛擬儲存管理下,
1記憶體邏輯容量由記憶體容量和外存容量之和所決定
2執行速度接近於記憶體速度
3每位的成本卻接近於外存。
虛擬儲存管理:
允許將乙個作業分多次調入記憶體。
若採用連續分配方式,需申請足夠空間,再分多次裝入,造成記憶體資源浪費,並不能從邏輯上擴大記憶體容量。
虛擬的實現建立在離散分配儲存管理基礎上
方式:請求分頁/請求分段系統
細節:分頁/段機構、中斷機構、位址變換機構、軟體支援
虛擬儲存器的特徵:
多次性,對換性,虛擬性
請求分頁儲存管理方式:
基本分頁 + 「請求調頁」和「頁面置換」功能。
換入和換出基本單位都是長度固定的頁面
缺頁中斷機構
每當要訪問的頁面不在記憶體時,便產生一缺頁中斷通知os,os則將所缺之頁調入記憶體。作為中斷,需經歷幾個步驟:
「保護cpu環境」
「分析中斷原因」
「轉入缺頁中斷處理程式」
「恢復cpu環境」
作為一種特殊中斷,與一般中斷有明顯區別:
(1) 在指令執行期間產生和處理中斷訊號。
(2) 一條指令在執行期間,可能產生多次缺頁中斷。
記憶體分配
作業不一次裝入,部分裝入的情況下如何為程序分配記憶體,涉及三個問題:
①最小物理塊數的確定:少於此數量程序將不能執行,與計算機的硬體結構有關,取決於指令的格式、功能和定址方式
②物理塊的分配策略
為每個程序分配一定數量的物理快,在整個執行期間不再改變。
執行中缺頁時,只能從該程序記憶體中n個頁面中選出一頁換出,然後再調入一頁
困難:難以把握為每個程序分配適量物理塊數。
乙個空閒物理快佇列,發生缺頁時,系統從佇列中取出一塊分配給該程序,將欲調入的頁裝入。空閒時間不足時,可與其他任何程序頁面置換。這是最容易實現的。
先為每個程序分配一定數目的的物理塊,os管理
③物理塊的分配演算法
平均分配演算法
按比例分配演算法
考慮優先權的分配演算法
調頁策略
① 何時調入頁面
1.預調頁策略
以**為基礎,將預計不久後便會被訪問的若干頁面,預先調入記憶體。
優點:一次調入若干頁,效率較好
缺點:**不一定準確,預調入的頁面可能根本不被執行到。主要用於程序的首次調入,由程式設計師指出應該先調入哪些頁。
2.請求調頁策略
執行中需要的頁面不在記憶體,便立即提出請求,由os將其調入記憶體。
優點:由請求調頁策略所確定調入的頁,一定會被訪問;比較容易實現。
缺點:每次僅調入一頁,需花費較大的系統開銷,增加了磁碟i/o的啟動頻率。
② 從何處調入頁面
在請求分頁系統中的外存分為:
對換區:連續存放資料,讀寫速度較快
檔案區:離散分配方式,i/o速度相對慢
發生缺頁時,系統應從何處將缺頁調入記憶體,分成三種情況:
系統擁有足夠的對換區空間:程序執行前所有頁面由檔案區拷貝到對換區,執行需要的頁面全部從對換區調入記憶體,提高調頁速度。
系統缺少足夠的對換區空間:不會被修改的部分,在檔案區操作。可能被修改的部分在對換區操作。
unix方式:首次執行在檔案區,再請調的時候從對換區調入。
外存:檔案區、對換區
系統擁有足夠的對換區空間:對換區
系統缺少足夠的對換區空間:檔案區/對換區
unix方式:首次->檔案區/再請調->對換區
③ 頁面調入過程
程式執行前需要裝入記憶體:上述的②步策略處理何處調入;
開始執行:先預調入一部分頁面;
執行中:需要的頁面不在記憶體時,
向cpu發出一缺頁中斷,「中斷處理程式」開始工作:
首先保留cpu環境
分析中斷原因後,轉入缺頁中斷處理程式。
處理:判斷是否置換、頁表資訊更新
恢復現場,重新操作頁面。
頁面置換演算法
選擇換出哪些頁面的演算法,其好壞直接影響系統的效能。
缺頁率=頁面調入次數(缺頁次數)/總的頁面使用次數
1.最佳optimal置換演算法
換出以後永不再用的,或在最長(未來)時間內不再被訪問的頁面
優點:保證獲得最低的缺頁率
不足:無法實現,因為無法預知一程序將來的運**況
2.先進先出fifo置換演算法
先進入的先淘汰,即選擇記憶體中駐留時間最久的頁面予以淘汰
優點:實現簡單,把一程序已調入記憶體的頁面按先後次序組織成乙個佇列,並設定乙個指標(替換指標),使它總是指向隊首最老的頁面。
不足:與程序實際執行規律不相適應(較早調入的頁往往是經常被訪問的頁,頻繁被對換造成執行效能降低)
3.最近最久未使用(lru)置換演算法
無法**將來的使用情況,只能利用「最近的過去」作為「最近的將來」的近似,因此,lru置換演算法選擇最近最久未使用(least recently used)的頁面予以淘汰
不足:有時頁面過去和未來的走向之間並無必然的聯絡。
相應的需較多的硬體支援:記錄每個頁面自上次被訪問以來所經歷的時間t,淘汰時選擇頁面t值最大的;以及需要快速地知道哪一頁是最近最久未使用的頁面,用暫存器或棧。
4.clock置換演算法
又稱最近未使用演算法。每個頁設乙個使用標誌位(use bit),若該頁被訪問則將其置為1。設定乙個指標,從當前指標位置開始按位址先後檢查各頁,尋找use bit=0的頁面作為被置換頁。若指標經過的頁use bit=1,修改use bit=0,指標繼續向下,到所有頁面末尾後再返回隊首檢查。
5.其他置換演算法
最少使用
缺頁率排序:fifo>clock>lru>opt
抖動
抖動是指:頁面調入不久就被匯出,匯出不久又被調入,導致系統頻繁更換頁面。
產生抖動的原因:塊數少或者演算法選擇不當
工作集是指在某段時間間隔裡,程序那個實際所要訪問頁面的集合,乙個計算分析選擇出來的合適的值。
駐留集是指實際在記憶體中的頁面集合。
駐留集包含工作集
正確選擇工作集的大小,對儲存器的利用率和系統吞吐量的提高,都將產生重要影響。
防抖動的方法:
區域性置換策略。
頁面調入記憶體前檢查各程序工作集,為缺頁率高的增加有限物理塊。
l缺頁間的平均時間=s置換乙個頁面所需時間,可使磁碟和cpu達到最大利用率。
抖動發生時選擇暫停一些程序,調節多道程式度。
缺頁率與物理塊數有關聯,基於區域性性原理,若能預知程式在某段時間要訪問的頁面並全部調入他們,將大大降低缺頁率。
請求分段儲存管理方式分段的共享和保護
實現共享:共享段表,在記憶體中配置一張共享段表,每個共享段都占有一表項,記錄著共享計數count(非共享段僅為乙個程序所需要,而共享段是為多個程序所需要的,為記錄有多少程序正在共享該分段,須設定共享程序計數count),訪問控制字段,段號。
分段保護:越界檢查,訪問控制檢查,環保護機構。
1.實現虛擬儲存器的目的是:從邏輯上擴充主存容量。
2.虛擬的基礎是區域性性原理,其基本含義是指令的區域性性(時間區域性性與空間區域性性)
3.在區域性管理中,虛擬位址空間是指邏輯位址空間,大小受機器的指令位址長度的限制。實位址空間是指實體地址空間,大小受物理記憶體大小的限制。
4.請求頁式系統中,opt是最佳置換演算法;lru是最近最久未使用演算法;nru是最近未使用置換演算法;lfu是最不常使用置換演算法。
5.頁式虛擬儲存管理的主要特點是:不要求將作業同時裝入到主存的連續區域。
6.在請求分頁儲存管理中,若採用fifo頁面淘汰演算法,則當分配的頁面數增加時,缺頁中斷的次數可能增加也可能減少。
第五章虛擬儲存器
1.虛擬儲存器的基本概念 分析常規儲存器管理不足的原因 1 常規儲存器管理方式的特徵 一次性 作業在執行前一次性地全部裝入記憶體 駐留性 作業裝入記憶體後,便一直駐留在記憶體中,直至作業執行結束。一次性及駐留性在程式執行時是否是必須的?no。程式執行有區域性性。程式執行的特點 多數情況下仍是順序執行...
第五章虛擬儲存器
5 1虛擬儲存器概述 虛擬儲存器是指具有請求調入功能和置換功能,能從邏輯上對記憶體容量加以擴充的一種儲存器系統。虛擬儲存管理 允許將乙個作業分多次調入記憶體。虛擬的實現建立在離散分配儲存管理基礎上 方式 請求分頁 請求分段系統 細節 分頁 段機構 中斷機構 位址變換機構 軟體支援 虛擬儲存器的特徵 ...
第五章 虛擬儲存器
1.常規儲存器管理方式的特徵 2.區域性性原理 程式在執行時將呈現出區域性性規律,即在一較短的時間內,程式的執行僅侷限於某個部分。3.虛擬儲存器的基本工作情況 應用程式沒有必要將之全部裝入記憶體,僅須將那些當前要執行的少數頁面或段先裝入記憶體便可執行。如果程式所要訪問的頁 段 尚未調入記憶體 稱為缺...