第5章 虛擬存儲器管理_第1頁
第5章 虛擬存儲器管理_第2頁
第5章 虛擬存儲器管理_第3頁
第5章 虛擬存儲器管理_第4頁
第5章 虛擬存儲器管理_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、第四章 存 儲 器 管 理 第五章第五章 虛擬存儲器虛擬存儲器 5.1 5.1 虛擬存儲器概述虛擬存儲器概述 5.2 5.2 請求分頁存儲管理方式請求分頁存儲管理方式 5.3 5.3 頁面置換算法頁面置換算法5.4 5.4 “抖動抖動”與工作集與工作集 5.5 5.5 請求分段存儲管理方式請求分段存儲管理方式 第四章 存 儲 器 管 理 5.1 虛擬存儲器概述虛擬存儲器概述 5.1.1 常規(guī)存儲管理方式的特征和局部性原理常規(guī)存儲管理方式的特征和局部性原理 1. 常規(guī)存儲器管理方式的特征常規(guī)存儲器管理方式的特征一次性。 (2) 駐留性。 第四章 存 儲 器 管 理 2. 局部性原理局部性原理 早

2、在1968年, Denning.P就曾指出: (1) 程序執(zhí)行時, 除了少部分的轉移和過程調(diào)用指令外, 在大多數(shù)情況下仍是順序執(zhí)行的。 (2) 過程調(diào)用將會使程序的執(zhí)行軌跡由一部分區(qū)域轉至另一部分區(qū)域, 但經(jīng)研究看出,過程調(diào)用的深度在大多數(shù)情況下都不超過5。 (3) 程序中存在許多循環(huán)結構, 這些雖然只由少數(shù)指令構成, 但是它們將多次執(zhí)行。 (4) 程序中還包括許多對數(shù)據(jù)結構的處理, 如對數(shù)組進行操作, 它們往往都局限于很小的范圍內(nèi)。 第四章 存 儲 器 管 理 局限性又表現(xiàn)在下述兩個方面: (1) 時間局限性。如果程序中的某條指令一旦執(zhí)行, 則不久以后該指令可能再次執(zhí)行;如果某數(shù)據(jù)被訪問過,

3、 則不久以后該數(shù)據(jù)可能再次被訪問。產(chǎn)生時間局限性的典型原因,是由于在程序中存在著大量的循環(huán)操作。 (2) 空間局限性。一旦程序訪問了某個存儲單元,在不久之后,其附近的存儲單元也將被訪問,即程序在一段時間內(nèi)所訪問的地址,可能集中在一定的范圍之內(nèi),其典型情況便是程序的順序執(zhí)行。 第四章 存 儲 器 管 理 5.1.2 虛擬存儲器定義和虛擬存儲器定義和 特征特征 所謂虛擬存儲器, 是指具有請求調(diào)入功能和置換功能, 能從邏輯上對內(nèi)存容量加以擴充的一種存儲器系統(tǒng)。其邏輯容量由內(nèi)存容量和外存容量之和所決定,其運行速度接近于內(nèi)存速度,而每位的成本卻又接近于外存??梢?,虛擬存儲技術是一種性能非常優(yōu)越的存儲器管

4、理技術,故被廣泛地應用于大、 中、 小型機器和微型機中。 1 虛擬存儲器定義虛擬存儲器定義第四章 存 儲 器 管 理 2 虛擬存儲器的虛擬存儲器的 特征特征 (1)多次性 (2)對換性 (3)虛擬性 第四章 存 儲 器 管 理 4.5.3 虛擬存儲器的實現(xiàn)方法虛擬存儲器的實現(xiàn)方法 1. 分頁請求系統(tǒng)分頁請求系統(tǒng) 硬件支持。 請求分頁的頁表機制,它是在純分頁的頁表機制上增加若干項而形成的,作為請求分頁的數(shù)據(jù)結構; 缺頁中斷機構,即每當用戶程序要訪問的頁面尚未調(diào)入內(nèi)存時 便產(chǎn)生一缺頁中斷,以請求OS將所缺的頁調(diào)入內(nèi)存; 地址變換機構, 它同樣是在純分頁地址變換機構的基礎上發(fā)展形成的。 (2) 實現(xiàn)

5、請求分頁的軟件。第四章 存 儲 器 管 理 2. 請求分段系統(tǒng)請求分段系統(tǒng) 硬件支持。 請求分段的段表機制,它是在純分段的段表機制上增加若干項而形成的,作為請求分段的數(shù)據(jù)結構; 缺段中斷機構,即每當用戶程序要訪問的段尚未調(diào)入內(nèi)存時 便產(chǎn)生一缺段中斷,以請求OS將所缺的段調(diào)入內(nèi)存; 地址變換機構, 它同樣是在純分段地址變換機構的基礎上發(fā)展形成的。 (2) 實現(xiàn)請求分頁的軟件。3. 請求段頁式系統(tǒng)請求段頁式系統(tǒng) 第四章 存 儲 器 管 理 5.2 請求分頁存儲管理方式請求分頁存儲管理方式 4.6.1 請求分頁中的硬件支持請求分頁中的硬件支持 1. 請求頁表機制請求頁表機制 頁號 物理塊號 狀態(tài)位P

6、 訪問字段A 修改位M外存地址 第四章 存 儲 器 管 理 2. 缺頁中斷機構缺頁中斷機構 圖 5-1 涉及6次缺頁中斷的指令 頁面B:A:654321指令copy ATO B第四章 存 儲 器 管 理 3. 地址變換機構地址變換機構 缺頁中斷處理保留CPU現(xiàn)場從外存中找到缺頁內(nèi)存滿否?選擇一頁換出該頁被修改否?將該頁寫回外存OS命令CPU從外存讀缺頁啟動I/O硬件將一頁從外存換入內(nèi)存修改頁表否是是否頁表項在快表中?CPU檢索快表訪問頁表否頁在內(nèi)存?修改訪問位和修改位形成物理地址地址變換結束否頁號頁表長度?開始程序請求訪問一頁產(chǎn)生缺頁中斷請求調(diào)頁修改快表是越界中斷是是圖 5-2請求分頁中的地址

7、變換過程 第四章 存 儲 器 管 理 5.2.2 請求分頁中的內(nèi)存分配請求分頁中的內(nèi)存分配 1. 最小物理塊數(shù)的確定最小物理塊數(shù)的確定 是指能保證進程正常運行所需的最小物理塊數(shù)。當系統(tǒng)為進程分配的物理塊數(shù)少于此值時,進程將無法運行。進程應獲得的最少物理塊數(shù)與計算機的硬件結構有關,取決于指令的格式、 功能和尋址方式。對于某些簡單的機器,若是單地址指令且采用直接尋址方式,則所需的最少物理塊數(shù)為2。其中,一塊是用于存放指令的頁面,另一塊則是用于存放數(shù)據(jù)的頁面。如果該機器允許間接尋址時,則至少要求有三個物理塊。對于某些功能較強的機器, 其指令長度可能是兩個或多于兩個字節(jié),因而其指令本身有可能跨兩個頁面

8、,且源地址和目標地址所涉及的區(qū)域也都可能跨兩個頁面。第四章 存 儲 器 管 理 2. 物理塊的分配與置換策略物理塊的分配與置換策略 在請求分頁系統(tǒng)中,可采取兩種內(nèi)存分配策略,即固定和可變分配策略。在進行置換時, 也可采取兩種策略,即全局置換和局部置換。于是可組合出以下三種適用的策略。 1) 固定分配局部置換(Fixed Allocation, Local Replacement) 2) 可變分配全局置換(Variable Allocation, Global Replacement) 3) 可變分配局部置換(Variable Allocation, Local Replacemen 第四章 存

9、 儲 器 管 理 3. 物理塊分配算法物理塊分配算法 1) 平均分配算法 這是將系統(tǒng)中所有可供分配的物理塊,平均分配給各個進程。 例如,當系統(tǒng)中有100個物理塊,有5個進程在運行時,每個進程可分得20個物理塊。這種方式貌似公平,但實際上是不公平的,因為它未考慮到各進程本身的大小。如有一個進程其大小為200頁,只分配給它20個塊,這樣,它必然會有很高的缺頁率;而另一個進程只有10頁,卻有10個物理塊閑置未用。 第四章 存 儲 器 管 理 2) 按比例分配算法 這是根據(jù)進程的大小按比例分配物理塊的算法。如果系統(tǒng)中共有n個進程,每個進程的頁面數(shù)為Si,則系統(tǒng)中各進程頁面數(shù)的總和為:又假定系統(tǒng)中可用的

10、物理塊總數(shù)為m,則每個進程所能分到的物理塊數(shù)為bi,將有:b應該取整,它必須大于最小物理塊數(shù)。 niiSS1mSSbii第四章 存 儲 器 管 理 3) 考慮優(yōu)先權的分配算法 在實際應用中,為了照顧到重要的、緊迫的作業(yè)能盡快地完成, 應為它分配較多的內(nèi)存空間。通常采取的方法是把內(nèi)存中可供分配的所有物理塊分成兩部分:一部分按比例地分配給各進程;另一部分則根據(jù)各進程的優(yōu)先權,適當?shù)卦黾悠湎鄳蓊~后,分配給各進程。在有的系統(tǒng)中,如重要的實時控制系統(tǒng),則可能是完全按優(yōu)先權來為各進程分配其物理塊的。 第四章 存 儲 器 管 理 5.2.3 頁面調(diào)入策略頁面調(diào)入策略 1. 何時調(diào)入頁面何時調(diào)入頁面 預調(diào)頁

11、策略 2) 請求調(diào)頁策略 第四章 存 儲 器 管 理 2. 從何處調(diào)入頁面從何處調(diào)入頁面 在請求分頁系統(tǒng)中的外存分為兩部分:用于存放文件的文件區(qū)和用于存放對換頁面的對換區(qū)。通常,由于對換區(qū)是采用連續(xù)分配方式,而事件是采用離散分配方式,故對換區(qū)的磁盤I/O速度比文件區(qū)的高。這樣,每當發(fā)生缺頁請求時,系統(tǒng)應從何處將缺頁調(diào)入內(nèi)存,可分成如下三種情況: (1) 系統(tǒng)擁有足夠的對換區(qū)空間,這時可以全部從對換區(qū)調(diào)入所需頁面,以提高調(diào)頁速度。為此,在進程運行前, 便須將與該進程有關的文件,從文件區(qū)拷貝到對換區(qū)。 第四章 存 儲 器 管 理 (2) 系統(tǒng)缺少足夠的對換區(qū)空間,這時凡是不會被修改的文件,都直接從

12、文件區(qū)調(diào)入;而當換出這些頁面時,由于它們未被修改而不必再將它們換出,以后再調(diào)入時,仍從文件區(qū)直接調(diào)入。但對于那些可能被修改的部分,在將它們換出時,便須調(diào)到對換區(qū),以后需要時,再從對換區(qū)調(diào)入。 (3) UNIX方式。由于與進程有關的文件都放在文件區(qū),故凡是未運行過的頁面,都應從文件區(qū)調(diào)入。而對于曾經(jīng)運行過但又被換出的頁面,由于是被放在對換區(qū),因此在下次調(diào)入時,應從對換區(qū)調(diào)入。由于UNIX系統(tǒng)允許頁面共享,因此, 某進程所請求的頁面有可能已被其它進程調(diào)入內(nèi)存,此時也就無須再從對換區(qū)調(diào)入。 第四章 存 儲 器 管 理 3. 頁面調(diào)入過程頁面調(diào)入過程 每當程序所要訪問的頁面未在內(nèi)存時,便向CPU發(fā)出一

13、缺頁中斷,中斷處理程序首先保留CPU環(huán)境,分析中斷原因后, 轉入缺頁中斷處理程序。該程序通過查找頁表,得到該頁在外存的物理塊后, 如果此時內(nèi)存能容納新頁,則啟動磁盤I/O將所缺之頁調(diào)入內(nèi)存,然后修改頁表。如果內(nèi)存已滿,則須先按照某種置換算法從內(nèi)存中選出一頁準備換出;如果該頁未被修改過,可不必將該頁寫回磁盤;但如果此頁已被修改, 則必須將它寫回磁盤,然后再把所缺的頁調(diào)入內(nèi)存, 并修改頁表中的相應表項,置其存在位為“1”,并將此頁表項寫入快表中。在缺頁調(diào)入內(nèi)存后,利用修改后的頁表, 去形成所要訪問數(shù)據(jù)的物理地址,再去訪問內(nèi)存數(shù)據(jù)。 第四章 存 儲 器 管 理 5.3 頁面置換算法頁面置換算法 5.

14、3.1 最佳置換算法和先進先出置換算法最佳置換算法和先進先出置換算法 1. 最佳(Optimal)置換算法 最佳置換算法是由Belady于1966年提出的一種理論上的算法。 其所選擇的被淘汰頁面,將是以后永不使用的, 或許是在最長(未來)時間內(nèi)不再被訪問的頁面。采用最佳置換算法,通??杀WC獲得最低的缺頁率。 第四章 存 儲 器 管 理 假定系統(tǒng)為某進程分配了三個物理塊, 并考慮有以下的頁面號引用串:7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1 進程運行時, 先將7,0,1三個頁面裝入內(nèi)存。 以后, 當進程要訪問頁面2時, 將會產(chǎn)生缺頁中斷。此時OS根據(jù)最佳置換

15、算法, 將選擇頁面7予以淘汰。 引用率70770170122010320304243230321201201770101頁框(物理塊)203圖 5-3 利用最佳頁面置換算法時的置換圖 第四章 存 儲 器 管 理 2. 先進先出先進先出(FIFO)頁面置換算法頁面置換算法 引用率70770170122010323104430230321013201770201頁框2304204230230127127011圖 5=4 利用FIFO置換算法時的置換圖 第四章 存 儲 器 管 理 5.3.2 最近最久未使用最近最久未使用(LRU)置換算法置換算法 1. LRU(Least Recently Used

16、)置換算法的描述置換算法的描述 圖 5-5 LRU頁面置換算法 引用率70770170122010320304403230321132201710701頁框402432032102第四章 存 儲 器 管 理 2. LRU置換算法的硬件支持置換算法的硬件支持 1) 寄存器寄存器 為了記錄某進程在內(nèi)存中各頁的使用情況,須為每個在內(nèi)存中的頁面配置一個移位寄存器,可表示為 R=Rn-1Rn-2Rn-3 R2R1R0 第四章 存 儲 器 管 理 圖5-6 某進程具有8個頁面時的LRU訪問情況 第四章 存 儲 器 管 理 2) 棧棧 圖 5-7 用棧保存當前使用頁面時棧的變化情況 447470740704

17、7170410174010741210742120741210742621076第四章 存 儲 器 管 理 5.3.3 Clock置換算法置換算法 1. 簡單的簡單的Clock置換算法置換算法 圖 4-30 簡單Clock置換算法的流程和示例 入口查尋指針前進一步,指向下一個表目頁面訪問位 0?選擇該頁面淘汰是返回置頁面訪問位“ 0”否塊號頁號訪問位指針0124034215650711替換指針第四章 存 儲 器 管 理 2. 改進型改進型Clock置換算法置換算法 由訪問位A和修改位M可以組合成下面四種類型的頁面: 1類(A=0, M=0): 表示該頁最近既未被訪問, 又未被修改, 是最佳淘汰

18、頁。 2類(A=0, M=1): 表示該頁最近未被訪問, 但已被修改, 并不是很好的淘汰頁。 3類(A=1, M=0): 最近已被訪問, 但未被修改, 該頁有可能再被訪問。 4類(A=1, M=1): 最近已被訪問且被修改, 該頁可能再被訪問。 第四章 存 儲 器 管 理 其執(zhí)行過程可分成以下三步: (1) 從指針所指示的當前位置開始, 掃描循環(huán)隊列, 尋找A=0且M=0的第一類頁面, 將所遇到的第一個頁面作為所選中的淘汰頁。 在第一次掃描期間不改變訪問位A。 (2) 如果第一步失敗,即查找一周后未遇到第一類頁面, 則開始第二輪掃描,尋找A=0且M=1的第二類頁面,將所遇到的第一個這類頁面作為

19、淘汰頁。在第二輪掃描期間,將所有掃描過的頁面的訪問位都置0。 (3) 如果第二步也失敗,亦即未找到第二類頁面,則將指針返回到開始的位置,并將所有的訪問位復0。 然后重復第一步,如果仍失敗,必要時再重復第二步,此時就一定能找到被淘汰的頁。 第四章 存 儲 器 管 理 5.3.4 其它置換算法其它置換算法 最少使用(LFU: Least Frequently Used)置換算法2. 頁面緩沖算法(PBA: Page Buffering Algorithm) 第四章 存 儲 器 管 理 5.3.5 訪問內(nèi)存的有效時間訪問內(nèi)存的有效時間 P168-1691.被訪問頁在內(nèi)存中,且其對應的頁表項在快表中2

20、.被訪問頁在內(nèi)存中,且其對應的頁表項不在快表中3.被訪問頁不在內(nèi)存中 第四章 存 儲 器 管 理 5.4 “抖動抖動”與工作集與工作集 P169-1725.4.1多道程序度與多道程序度與“抖動抖動” 1. 多道程序度與處理機的利用率 2. 產(chǎn)生“抖動”的原因5.4.2 工作集工作集 1.工作集的基本概念 2.工作集的定義5.4.3“抖動抖動”的預防方法:的預防方法:P172第四章 存 儲 器 管 理 5.5 請求分段存儲管理方式請求分段存儲管理方式 5.5.1 請求分段中的硬件支持請求分段中的硬件支持 1. 請求段表機制請求段表機制 段名 段長 段的基址 存取方式 訪問字段A 修改位M 存在位

21、P 增補位 外存始址 第四章 存 儲 器 管 理 在段表項中, 除了段名(號)、 段長、 段在內(nèi)存中的起始地址外, 還增加了以下諸項:(1) 存取方式。 (2) 訪問字段A。 (3) 修改位M。 (4) 存在位P。 (5) 增補位。 (6) 外存始址。 第四章 存 儲 器 管 理 2. 缺段中斷機構缺段中斷機構 虛段S不在內(nèi)存阻塞請求進程內(nèi)存中有合適的空閑區(qū)嗎?從外存讀入段S修改段表及內(nèi)存空區(qū)鏈喚醒請求進程返回空區(qū)容量總和能否滿足?空區(qū)拼接,以形成一個合適的空區(qū)淘汰一個或幾個實段,以形成一個合適空區(qū)否否是是圖圖 5-12 請求分段系統(tǒng)中的中斷處理過程請求分段系統(tǒng)中的中斷處理過程第四章 存 儲

22、器 管 理 3. 地址變換機構地址變換機構 訪問sww段長?符合存取方式?段S在主存?修改訪問字段,如寫訪問,置修改位1形成訪問主存地址(A) (主存始址) (位移量w)返回分段越界中斷處理分段保護中斷處理缺段中斷處理是是是否否否圖 5-13請求分段系統(tǒng)的地址變換過程第四章 存 儲 器 管 理 5.5.2 分段的共享與保護分段的共享與保護 1. 共享段表共享段表 圖 5-14 共享段表項 段名段長內(nèi)存始址狀態(tài)外存始址共享進程計數(shù) count狀態(tài)進程名進程號段號存取控制共享段表第四章 存 儲 器 管 理 2. 共享段的分配與回收共享段的分配與回收 1) 共享段的分配 在為共享段分配內(nèi)存時,對第一

23、個請求使用該共享段的進程,由系統(tǒng)為該共享段分配一物理區(qū),再把共享段調(diào)入該區(qū),同時將該區(qū)的始址填入請求進程的段表的相應項中,還須在共享段表中增加一表項,填寫有關數(shù)據(jù),把count置為1;之后,當又有其它進程需要調(diào)用該共享段時,由于該共享段已被調(diào)入內(nèi)存,故此時無須再為該段分配內(nèi)存,而只需在調(diào)用進程的段表中,增加一表項,填寫該共享段的物理地址;在共享段的段表中,填上調(diào)用進程的進程名、存取控制等,再執(zhí)行count =count+1操作,以表明有兩個進程共享該段。 第四章 存 儲 器 管 理 2) 共享段的回收 當共享此段的某進程不再需要該段時,應將該段釋放, 包括撤在該進程段表中共享段所對應的表項,以及執(zhí)行count =count-1操作。若結果為0,則須由系統(tǒng)回收該共享段的物理內(nèi)存,以及取消在共享段表中該段所對應的表項, 表明此時已沒有進程使用該段;否則(減1結果不為0), 則只是取消調(diào)用者進程在共享段表

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論