請求分段系統
段頁式虛擬儲存器
所謂虛擬儲存器,是指具有請求調入功能和置換功能,能從邏輯上對記憶體容量加以擴充的一種儲存器系統。
其邏輯容量由記憶體容量和外存容量之和所決定,其執行速度接近於記憶體速度,而每位的成本卻又接近於外存。
特徵:多次性,對換性,虛擬性。
在一段時間內乙個程式的執行往往呈現出高度的區域性性,表現在時間與空間兩方面。
時間區域性性:一條指令被執行了,則在不久的將來它可能再被執行;在一段時間內,訪問的**範圍是有限的。
空間區域性性:若某一儲存單元被使用,在一定時間內,與該儲存單元相鄰的單元可能被使用。
請求分頁系統(頁式虛擬儲存器,分頁請求系統):在基本分頁系統基礎上,增加以頁面為單位的請求調入和自動置換功能 。
請求分頁的頁表機制
缺頁中斷機制
在請求分頁系統中,如果要訪問的頁面不在記憶體中時,便產生缺頁中斷。
指令執行期間發出中斷並響應和處理中斷,完成後返回(保證更快的將頁資料調入記憶體),一條指令可能發出多次缺頁中斷;
位址重定位
與之前的位址對映機制相似,只不過多了一些對於標誌位的操作,首先還是先找快表,快表中所有的頁表已載入了記憶體,找到的話,對應修改訪問字段,再根據是否修改來修改修改位。如果沒有找到就訪問頁表來查詢,根據狀態位來判斷是否已經載入記憶體,如果沒有就使用缺頁中斷來將其調入記憶體中,根據相關的替換演算法修改快表和標誌位,最後形成實體地址。
最小物理塊個數
保證程式正常執行需要的最小物理塊個數
由機器指令的結構決定
單位元組指令,直接定址:2塊;
單位元組指令,間接定址:3塊;
多位元組指令,直接定址:3塊;
多位元組指令,間接定址:4塊;
程序的工作集:駐留在物理記憶體中的虛擬頁面的子集。
工作集大小的變化:程序開始執行後,隨著訪問新頁面逐步建立較穩定的工作集。當記憶體訪
問的區域性性區域的位置大致穩定時,工作集大小也大致穩定;區域性性區域的位置改變時,工
作集快速擴張和收縮過渡到下乙個穩定值。
記憶體分配
物理塊分配策略
固定分配區域性置換:為程序分配物理塊;在程序執行期間,物理塊個數不變;新頁面,只能置換入該程序已經分配的物理塊;但是物理塊個數難以指定;可變分配全域性置換:為程序分配物理塊;在程序執行期間,物理塊個數隨時變化;新頁面,在全域性範圍內置換物理塊(用空閒塊就將其分配給需要的程序,並調入頁面,如果記憶體都佔滿了就隨機取乙個程序中的頁調出(全域性),該程序缺頁率增大);但是程序之間的執行互相影響,頁面「抖動」。
可變分配區域性置換:為程序分配物理塊;在程序執行期間,物理塊個數可變化;新頁面,在該程序已經分配物理塊內置換;避免物理塊初始設定不合理的難題;引入缺頁率,保證:低限閾值 <= 缺頁率 <= 高限閾值,缺頁高了就在調幾塊給程序,缺頁率低了就收回幾塊,保證在闕值之間。
物理塊分配演算法
平均分配:將物理塊平均分配給程序,但是忽略了各個程序的不同情況。
按比例分配:按程序使用的頁面數占總體的比例來分配物理塊數量。
加權分配:一種是將物理塊分為兩類一類直接均分,另一類根據程序的優先權或者執行的緊迫程度來分;還有一種就是直接按照程序的優先權和執行的緊迫程度分,優先順序高的,執行急迫的分到的塊多一點。
調入策略(何時):
預先調頁:一次調入多個頁面;減少後期i/o;
請求式調頁:需要時,調入;
調入策略(何處):外存對換區(對換區足夠,提高速度);檔案區(對換區不夠);unix方式:沒執行過的儲存在檔案區(第一次執行時調入),執行過的儲存在對換區(下次調入時由此進行調入);
置換演算法
缺頁率=缺頁置換次數/頁面訪問總數*100%
最佳置換
選擇以後再也不用的頁面;沒有的話,選擇以後最長時間不用的頁面進行置換;
但是無法實現,因為頁面的訪問順序無法預知,僅具有理論意義。
先進先出置換(fifo)
基於程式的順序執行特點,選擇到達記憶體最早的頁面,予以淘汰並置換;
頁面在記憶體中按時間排序;但是效果不佳(程式不是嚴格順序執行);
最近最久未使用置換(lru)
基於程式執行的區域性性原理;選擇最近以來最久未使用的頁面,予以淘汰並置換;
通過移位暫存器,棧實現,排程效能較好。
移位暫存器實現記錄:每個物理塊設定乙個移位暫存器,初值為0;訪問一次頁面,高位置1定時(100ms)將所有物理塊的移位暫存器右移1位,高位補0;選擇移位暫存器數值最小的物理塊,淘汰其中頁面。
請求分段系統(段式虛擬儲存器,分段請求系統):在基本分段系統基礎上,增加以分段為單位的請求調入和自動置換功能 。
請求分段的段表機制
缺段中斷機制
當訪問的段不在記憶體中時提出缺段中斷請求。在指令執行期間,發出中斷並響應和處理中斷(保證更快的將段資料調入記憶體),返回,一條指令可能發出多次缺段中斷;
由於段的空間大小不想頁空間那樣定長,所以實現要比缺頁中斷困難。
位址重定位
分段共享與保護
共享段表:記錄了分段資訊,共享該分段程序的資訊(訪問控制,程序數量count,段號)。被共享分段可由各程序以不同方式(訪問控制,段號)共享。
分配演算法:
a)檢索共享分段,如果共享分段存在轉c) ;
b)建立共享段表的段表項,填寫分段資訊,分配相應記憶體並調入分段;
c)記錄本程序資訊到共享段表的段項,count+1;
d)複製共享段表的段表項相應資訊(段基址、段長、訪問控制)到程序段表;
程序段表(私有段表):與前面所述共享段表相同在程序內部(私有);
**演算法:
a) 撤消程序時,將所有該程序共享之分段的count-1 ;
b) 當某分段count =0時,**該分段所佔據記憶體;
段頁式虛擬儲存器:在段頁式系統基礎上,增加以分頁為單位的請求調入和自動置換功能 。
作業系統筆記 儲存管理(2)
位址重定位 快表兩級頁表 分段儲存管理 位址變換 資訊共享 分段與分頁比較 段頁式儲存管理 目的 減少分割槽式分配的內外零頭浪費的問題。思想 將目標程式分為若干的頁 頁面 這裡的頁是對於邏輯位址而言的線性位址。記憶體也要劃分為若干的頁框,頁框是對具體的實體地址進行的劃分,頁 頁面 與頁框的大小相同,...
作業系統筆記 儲存管理(2)
位址重定位 快表兩級頁表 分段儲存管理 位址變換 資訊共享 分段與分頁比較 段頁式儲存管理 目的 減少分割槽式分配的內外零頭浪費的問題。思想 將目標程式分為若干的頁 頁面 這裡的頁是對於邏輯位址而言的線性位址。記憶體也要劃分為若干的頁框,頁框是對具體的實體地址進行的劃分,頁 頁面 與頁框的大小相同,...
作業系統筆記 儲存管理(1)
絕對裝入方式 可重定位裝入方式 動態執行時裝入方式 程式的鏈結 記憶體連續分配 分割槽 演算法 碎片 問題 可重定位分割槽分配 邏輯位址 相對位址,虛位址 使用者程式經過彙編或編譯後形成目標 目標 採用相對位址形式 首位址為0 其餘指令中位址以相對於首位址的偏移為位址 實體地址 絕對位址,實位址 記...