資源簡介 The Best R&D Courses虛擬存儲器 5.1 虛擬存儲器概述 第四章所介紹的各種存儲器管理方式有一個共同的特點,即它們都要求將一個作業全部裝入內存后方能運行。于是,出現了下面這樣兩種情況: (1) 有的作業很大,其所要求的內存空間超過了內存總容量,作業不能全部被裝入內存,致使該作業無法運行; (2) 有大量作業要求運行,但由于內存容量不足以容納所有這些作業,只能將少數作業裝入內存讓它們先運行,而將其它大量的作業留在外存上等待The Best R&D Courses虛擬存儲器5.1.1 常規存儲管理方式的特征和局部性原理 1. 常規存儲器管理方式的特征 我們把前一章中所介紹的各種存儲器管理方式統稱為傳統存儲器管理方式,它們全都具有如下兩個共同的特征: (1) 一次性 (2) 駐留性The Best R&D Courses虛擬存儲器 2. 局部性原理 程序運行時存在的局部性現象,很早就已被人發現,但直到1968年,P.Denning才真正指出:程序在執行時將呈現出局部性規律,即在一較短的時間內,程序的執行僅局限于某個部分,相應地,它所訪問的存儲空間也局限于某個區域。The Best R&D Courses虛擬存儲器 局限性又表現在下述兩個方面: (1) 時間局限性。 (2) 空間局限性。The Best R&D Courses虛擬存儲器 3. 虛擬存儲器的基本工作情況 基于局部性原理可知,應用程序在運行之前沒有必要將之全部裝入內存,而僅須將那些當前要運行的少數頁面或段先裝入內存便可運行,其余部分暫留在盤上。The Best R&D Courses虛擬存儲器5.1.2 虛擬存儲器的定義和特征 1. 虛擬存儲器的定義 當用戶看到自己的程序能在系統中正常運行時,他會認為,該系統所具有的內存容量一定比自己的程序大,或者說,用戶所感覺到的內存容量會比實際內存容量大得多。但用戶所看到的大容量只是一種錯覺,是虛的,故人們把這樣的存儲器稱為虛擬存儲器。The Best R&D Courses虛擬存儲器 2. 虛擬存儲器的特征 與傳統的存儲器管理方式比較,虛擬存儲器具有以下三個重要特征: (1) 多次性。 (2) 對換性。 (3) 虛擬性。The Best R&D Courses虛擬存儲器5.1.3 虛擬存儲器的實現方法 1. 分頁請求系統 1) 硬件支持 主要的硬件支持有: (1) 請求分頁的頁表機制。 (2) 缺頁中斷機構。 (3) 地址變換機構。 2) 實現請求分頁的軟件The Best R&D Courses虛擬存儲器 2. 請求分段系統 1) 硬件支持 主要的硬件支持有: (1) 請求分段的段表機制。 (2) 缺頁中斷機構。 (3) 地址變換機構。 2) 軟件支持The Best R&D Courses虛擬存儲器5.2 請求分頁存儲管理方式5.2.1 請求分頁中的硬件支持 為了實現請求分頁,系統必須提供一定的硬件支持。計算機系統除了要求一定容量的內存和外存外,還需要有請求頁表機制、缺頁中斷機構以及地址變換機構。The Best R&D Courses虛擬存儲器 1. 請求頁表機制 在請求分頁系統中需要的主要數據結構是請求頁表,其基本作用仍然是將用戶地址空間中的邏輯地址映射為內存空間中的物理地址。為了滿足頁面換進換出的需要,在請求頁表中又增加了四個字段。這樣,在請求分頁系統中的每個頁表應含以下諸項:頁號 物理塊號 狀態位 P 訪問字段 A 修改位 M 外存地址The Best R&D Courses虛擬存儲器 2. 缺頁中斷機構 (1) 在指令執行期間產生和處理中斷信號。 (2) 一條指令在執行期間可能產生多次缺頁中斷。The Best R&D Courses虛擬存儲器3. 地址變換機構 請求分頁系統中的地址變換機構是在分頁系統地址變換機構的基礎上,為實現虛擬存儲器,再增加了某些功能所形成的,如產生和處理缺頁中斷,以及從內存中換出一頁的功能等等。The Best R&D Courses虛擬存儲器5.2.3 頁面調入策略 為使進程能夠正常運行,必須事先將要執行的那部分程序和數據所在的頁面調入內存。現在的問題是: (1) 系統應在何時調入所需頁面; (2) 系統應從何處調入這些頁面; (3) 是如何進行調入的。The Best R&D Courses虛擬存儲器 1. 何時調入頁面 (1) 預調頁策略。 (2) 請求調頁策略。The Best R&D Courses虛擬存儲器 2. 從何處調入頁面 (1) 系統擁有足夠的對換區空間,這時可以全部從對換區調入所需頁面,以提高調頁速度。 (2) 系統缺少足夠的對換區空間,這時凡是不會被修改的文件,都直接從文件區調入;而當換出這些頁面時,由于它們未被修改,則不必再將它們重寫到磁盤(換出),以后再調入時,仍從文件區直接調入。但對于那些可能被修改的部分,在將它們換出時便須調到對換區,以后需要時再從對換區調入。 (3) UNIX方式。The Best R&D Courses虛擬存儲器 3. 頁面調入過程 每當程序所要訪問的頁面未在內存時(存在位為“0”),便向CPU發出一缺頁中斷,中斷處理程序首先保留CPU環境,分析中斷原因后轉入缺頁中斷處理程序。The Best R&D Courses虛擬存儲器 4. 缺頁率 假設一個進程的邏輯空間為n頁,系統為其分配的內存物理塊數為m(m≤n)。如果在進程的運行過程中,訪問頁面成功(即所訪問頁面在內存中)的次數為S,訪問頁面失敗(即所訪問頁面不在內存中,需要從外存調入)的次數為F,則該進程總的頁面訪問次數為A = S + F,那么該進程在其運行過程中的缺頁率即為f F AThe Best R&D Courses虛擬存儲器 事實上,在缺頁中斷處理時,當由于空間不足,需要置換部分頁面到外存時,選擇被置換頁面還需要考慮到置換的代價,如頁面是否被修改過。沒有修改過的頁面可以直接放棄,而修改過的頁面則必須進行保存,所以處理這兩種情況時的時間也是不同的。假設被置換的頁面被修改的概率是β,其缺頁中斷處理時間為ta,被置換頁面沒有被修改的缺頁中斷時間為tb,那么,缺頁中斷處理時間的計算公式為t=β×ta+(1—β)×tbThe Best R&D Courses虛擬存儲器 5.3 頁面置換算法 在進程運行過程中,若其所要訪問的頁面不在內存,而需把它們調入內存,但內存已無空閑空間時,為了保證該進程能正常運行,系統必須從內存中調出一頁程序或數據送到磁盤的對換區中。但應將哪個頁面調出,須根據一定的算法來確定。通常,把選擇換出頁面的算法稱為頁面置換算法(Page-Replacement Algorithms)。置換算法的好壞將直接影響到系統的性能。The Best R&D Courses虛擬存儲器5.3.1 最佳置換算法和先進先出置換算法 1. 最佳(Optimal)置換算法 最佳置換算法是由Belady于1966年提出的一種理論上的算法。其所選擇的被淘汰頁面將是以后永不使用的,或許是在最長(未來)時間內不再被訪問的頁面。采用最佳置換算法通常可保證獲得最低的缺頁率。但由于人們目前還無法預知,一個進程在內存的若干個頁面中,哪一個頁面是未來最長時間內不再被訪問的,因而該算法是無法實現的,但可以利用該算法去評價其它算法。The Best R&D Courses虛擬存儲器圖5-3 利用最佳頁面置換算法時的置換圖The Best R&D Courses虛擬存儲器 2. 先進先出(FIFO)頁面置換算法 FIFO算法是最早出現的置換算法。該算法總是淘汰最先進入內存的頁面,即選擇在內存中駐留時間最久的頁面予以淘汰。該算法實現簡單,只需把一個進程已調入內存的頁面按先后次序鏈接成一個隊列,并設置一個指針,稱為替換指針,使它總是指向最老的頁面。但該算法與進程實際運行的規律不相適應,因為在進程中,有些頁面經常被訪問,比如,含有全局變量、常用函數、例程等的頁面,FIFO算法并不能保證這些頁面不被淘汰。The Best R&D Courses虛擬存儲器 圖5-4 利用FIFO置換算法時的置換圖The Best R&D Courses虛擬存儲器5.3.2 最近最久未使用和最少使用置換算法 1. LRU(Least Recently Used)置換算法的描述 FIFO置換算法的性能之所以較差,是因為它所依據的條件是各個頁面調入內存的時間,而頁面調入的先后并不能反映頁面的使用情況。最近最久未使用(LRU)的頁面置換算法是根據頁面調入內存后的使用情況做出決策的。The Best R&D Courses虛擬存儲器圖5-5 LRU頁面置換算法The Best R&D Courses虛擬存儲器 3. 最少使用(Least Frequently Used,LFU)置換算法 在采用LFU算法時,應為在內存中的每個頁面設置一個移位寄存器,用來記錄該頁面被訪問的頻率。該置換算法選擇在最近時期使用最少的頁面作為淘汰頁。The Best R&D Courses虛擬存儲器5.3.3 Clock置換算法 1. 簡單的Clock置換算法 當利用簡單Clock算法時,只需為每頁設置一位訪問位,再將內存中的所有頁面都通過鏈接指針鏈接成一個循環隊列。The Best R&D Courses虛擬存儲器圖5-8 簡單Clock置換算法的流程和示例The Best R&D Courses虛擬存儲器 2. 改進型Clock置換算法 在將一個頁面換出時,如果該頁已被修改過,便須將該頁重新寫回到磁盤上;但如果該頁未被修改過,則不必將它拷回磁盤。換而言之,對于修改過的頁面,在換出時所付出的開銷比未修改過的頁面大,或者說,置換代價大。在改進型Clock算法中,除須考慮頁面的使用情況外,還須再增加一個因素——置換代價。The Best R&D Courses虛擬存儲器 5.5 請求分段存儲管理方式5.5.1 請求分段中的硬件支持 為了實現請求分段式存儲管理,應在系統中配置多種硬件機構,以支持快速地完成請求分段功能。與請求分頁系統相似,在請求分段系統中所需的硬件支持有段表機制、缺段中斷機構,以及地址變換機構。The Best R&D Courses虛擬存儲器 1. 請求段表機制 在請求分段式管理中所需的主要數據結構是請求段表。在該表中除了具有請求分頁機制中有的訪問字段A、修改位M、存在位P和外存始址四個字段外,還增加了存取方式字段和增補位。這些字段供程序在調進、調出時參考。下面給出請求分段的段表項。段名 段長 段基址 存取方式 訪問字段 A 修改位 M 存在位 P 增補位 外存始址The Best R&D Courses虛擬存儲器 2. 缺段中斷機構 在請求分段系統中采用的是請求調段策略。每當發現運行進程所要訪問的段尚未調入內存時,便由缺段中斷機構產生一缺段中斷信號,進入OS后,由缺段中斷處理程序將所需的段調入內存。與缺頁中斷機構類似,缺段中斷機構同樣需要在一條指令的執行期間產生和處理中斷,以及在一條指令執行期間,可能產生多次缺段中斷。但由于分段是信息的邏輯單位,因而不可能出現一條指令被分割在兩個分段中,和一組信息被分割在兩個分段中的情況。缺段中斷的處理過程如圖5-12所示。The Best R&D Courses虛擬存儲器 3. 地址變換機構 請求分段系統中的地址變換機構是在分段系統地址變換機構的基礎上形成的。因為被訪問的段并非全在內存,所以在地址變換時,若發現所要訪問的段不在內存,必須先將所缺的段調入內存,并修改段表,然后才能再利用段表進行地址變換。為此,在地址變換機構中又增加了某些功能,如缺段中斷的請求及處理等。圖5-13示出了請求分段系統的地址變換過程。The Best R&D Courses虛擬存儲器5.5.2 分段的共享與保護 1. 共享段表 (1) 共享進程計數count。 (2) 存取控制字段。 (3) 段號。The Best R&D Courses虛擬存儲器 2. 共享段的分配與回收 1) 共享段的分配 2) 共享段的回收The Best R&D Courses虛擬存儲器 3. 分段保護 在分段系統中,由于每個分段在邏輯上是相對獨立的,因而比較容易實現信息保護。目前,常采用以下幾種措施來確保信息的安全。 1) 越界檢查 2) 存取控制檢查 3) 環保護機構The Best R&D Courses 展開更多...... 收起↑ 資源預覽 縮略圖、資源來源于二一教育資源庫