第5章 虛擬儲存器

2021-09-02 20:34:26 字數 3913 閱讀 8199

一次性:作業在執行前一次性地全部裝入記憶體

駐留性:作業裝入記憶體後,便一直駐留在記憶體中,直至作業執行結束。

程式在執行時將呈現出區域性性規律:

在一較短的時間內

程式的執行僅侷限於某個部分;

相應地,所訪問的儲存空間也侷限於某個區域。

所謂「虛擬儲存器」,是指具有請求調入功能和置換功能,能從邏輯上對記憶體容量加以擴充的一種儲存器系統。

虛擬儲存管理下

記憶體邏輯容量由記憶體容量和外存容量之和所決定

執行速度接近於記憶體速度

每位的成本卻接近於外存。

虛擬儲存管理:

允許將乙個作業分多次調入記憶體。

若採用連續分配方式,需申請足夠空間,再分多次裝入,造成記憶體資源浪費,並不能從邏輯上擴大記憶體容量。

虛擬的實現建立在離散分配儲存管理基礎上

方式:請求分頁/請求分段系統

細節:分頁/段機構、中斷機構、位址變換機構、軟體支援

離散分配方式是基礎

多次性:乙個作業被分成多次調入記憶體執行

對換性:允許在作業的執行過程中進行換進、換出。(程序整體對換不算虛擬)

最終體現虛擬性:能夠從邏輯上擴充記憶體容量,使使用者所看到的記憶體容量遠大於實際記憶體容量。

基本分頁 + 「請求調頁」和「頁面置換」功能。

換入和換出基本單位都是長度固定的頁面

一台具有一定容量的內/外存的計算機

+ 頁表機制

+ 缺頁中斷機構

+ 位址轉換機構

每當要訪問的頁面不在記憶體時,便產生一缺頁中斷通知os,os則將所缺之頁調入記憶體。作為中斷,需經歷幾個步驟:

「保護cpu環境」

「分析中斷原因」

「轉入缺頁中斷處理程式」

「恢復cpu環境」等。

作為一種特殊中斷,與一般中斷有明顯區別:

(1) 在指令執行期間產生和處理中斷訊號。

(2) 一條指令在執行期間,可能產生多次缺頁中斷。

分頁系統位址變換機構的基礎上增加

產生和處理缺頁中斷(請求調入)

從記憶體中換出一頁的功能(置換)

作業不一次裝入,部分裝入的情況下如何為程序分配記憶體,涉及三個問題:

最小物理塊數的確定

少於此數量程序將不能執行

與計算機的硬體結構有關,取決於指令的格式、功能和定址方式

物理塊的分配策略

物理塊的分配演算法

②物理塊的分配策略

考慮:固定or可變分配、全域性or區域性置換。

組合出三種適合的策略。

為每個程序分配一定數目的物理塊,在整個執行期間不再改變(基於程序的型別,或根據程式設計師、程式管理員的建議)

執行中缺頁時,只能從該程序記憶體中n個頁面中選出一頁換出,然後再調入一頁。困難:難以把握為每個程序分配「適量」物理塊數

先為每個程序分配一定數目的物理塊

os管理乙個空閒物理塊佇列,發生缺頁時,系統從佇列中取出一塊分配給該程序,將欲調入的頁裝入(動態增長型,全域性空閒空間都可分配使用)

空閒空間不足時,可與其他任何程序頁面置換。「會使其他程序缺頁率提高,影響執行」

最易實現

為每個程序分配一定數目的物理塊

缺頁時,只允許換出該程序在記憶體的頁面,不影響其他程序執行。

根據缺頁率增減程序的物理塊數:若頻繁缺頁中斷,則系統再為程序分配若干物理快;若缺頁率特別低,則適當減少分配給該程序的物理塊。

③物理塊的分配演算法

固定分配策略時,分配物理塊可採用以下幾種演算法:

平均分配演算法

按比例分配演算法

考慮優先權的分配演算法

預調頁策略

以**為基礎,將預計不久後便會被訪問的若干頁面,預先調入記憶體。

優點:一次調入若干頁,效率較好

缺點:**不一定準確,預調入的頁面可能根本不被執行到。主要用於程序的首次調入,由程式設計師指出應該先調入哪些頁

請求調頁策略

執行中需要的頁面不在記憶體,便立即提出請求,由os將其調入記憶體。

優點:由請求調頁策略所確定調入的頁,一定會被訪問;比較容易實現。

缺點:每次僅調入一頁,需花費較大的系統開銷,增加了磁碟i/o的啟動頻率。

在請求分頁系統中的外存分為:

對換區:連續存放資料,讀寫速度較快

檔案區:離散分配方式,i/o速度相對慢

發生缺頁時,系統應從何處將缺頁調入記憶體,分成三種情況:

系統擁有足夠的對換區空間:

程序執行前所有頁面由檔案區拷貝到對換區;

執行需要的頁面全部從對換區調入記憶體,提高調頁速度。

系統缺少足夠的對換區空間:

不會被修改的部分,在檔案區操作(即:直接從檔案區調入,換出時不用寫入檔案,再調入時仍從檔案區調入)

可能被修改的部分,在對換區操作。

unix方式:(隨執行資料逐漸從檔案區轉到對換區)

未執行的頁面從檔案區調入;

曾經執行,但又被換出的頁面放在對換區,下次調入應從對換區調入。

程序請求的共享頁面可能已被其他程序調入,無需再從對換區調入。

外存:檔案區、對換區

系統擁有足夠的對換區空間:

系統缺少足夠的對換區空間:

unix方式:

程式執行前需要裝入記憶體:上述的②步策略處理何處調入;

開始執行:先預調入一部分頁面;

執行中:需要的頁面不在記憶體時,

向cpu發出一缺頁中斷,「中斷處理程式」開始工作:

首先保留cpu環境

分析中斷原因後,轉入缺頁中斷處理程式。

處理:判斷是否置換、頁表資訊更新

恢復現場,重新操作頁面。

最佳optimal置換演算法

先進先出fifo置換演算法

最近最久未使用(lru)置換演算法

clock置換演算法

段表機制

缺段中斷機構

位址變換機構

(1) 訪問方式 :用於標識本分段的訪問屬性。

(2) 訪問欄位a :用於記錄本段被訪問的頻繁程度。

(3) 修改位m :表示該段在調入記憶體後是否被修改過。

發現執行程序所訪問段尚未調入記憶體

由缺段中斷機構產生一缺段中斷訊號

進入os,由缺段中斷處理程式將所需的段調入記憶體。

缺段中斷同樣在一條指令的執行期間產生和處理中斷,一條指令執行可能產生多次缺段中斷。但不會出現一條指令被分割在兩個分段中或一組資訊被分割在兩個分段中的情況。

分段在邏輯意義上劃分,實現共享和保護都較方便。以下討論具體實現:

在記憶體中配置一張共享段表,每個共享段都占有一表項,記錄如下內容:

共享計數count:

共享段為多個程序所需要,當某程序不再需要它而釋放它時,系統並不**該段所佔記憶體區,僅當所有共享該段的程序全都不再需要它時,才由系統**該段所佔記憶體區。設定count用於記錄有多少個程序需要共享該分段。

共享段的分配

第乙個請求使用該共享段的程序a:系統為該共享段分配一物理區,再把共享段裝入該區;

將該區的始址填入a的段表相應項;

共享段表中增加一表項,填寫有關資料,count置1;

其他程序b也呼叫該共享段時,無需再為該段分配記憶體,只需在b的段表中增加一表項,填寫該共享段的實體地址;在共享段的段表中,填上呼叫程序的程序名、訪問控制等,再執行count:=count+1操作。

共享段的**

包括撤消在程序段表中共享段所對應的表項,執行count:=count-1。

如果count為0,則由系統**該共享段的物理記憶體,並取消共享段表中該段所對應的表項。

越界檢查

段表暫存器存放了段表長度;段表中存放了每個段的段長。

在進行儲存訪問時,將段號與段表長度比較,段內位址與段長比較。

訪問控制檢查

尤其表現在不同程序對共享段的不同使用上。段表每個表項都設定「訪問控制」字段,規定該段的訪問方式:唯讀,只執行,讀/寫

環保護機構

規定:低編號的環具有高優先權

遵循的原則:乙個程式可以訪問駐留在相同環或較低特權環中的資料。乙個程式可以呼叫駐留在相同環或較高特權環中的服務

第5章 虛擬儲存器(2)

1.頁面置換演算法效能比較 請求分頁管理下,存在三種方式的記憶體訪問 1 頁在記憶體,且快表檢索命中 eat t 2 頁在記憶體,但快表檢索沒有命中 eat 快表檢索時間 訪問頁表時間 修改更新快表時間 訪問頁面物理記憶體時間 t t 2 t 3 頁表不在記憶體 eat t t 為缺頁中斷處理時間 ...

第4章 儲存器

半導體 磁性材料 光碟 隨機 唯讀 順序訪問 直接訪問 速度 容量 位價 虛擬儲存器 位址線 單向 資料線 雙向 晶元容量 控制線 讀寫控制線 片選線 解碼驅動方式 線選法 重合法 靜態ram 動態ram 基本單元電路 讀週期 讀時間 集中重新整理 分散重新整理 非同步重新整理 死時間 rom mo...

第4章 儲存器管理

思維導圖 儲存器管理 1 重點是記憶體管理,對其有效的管理直接影響儲存器的利用率 系統效能。1.儲存器資源的分配和 2.位址變換 邏輯位址與實體地址的對應關係維護 3.儲存共享和保護 4.虛擬儲存的排程演算法 2 外存的管理 磁碟儲存器管理 檔案系統等中涉及。一 程式的裝入和鏈結 多道程式環境下,程...