操作系統(tǒng)虛擬內(nèi)存_第1頁
操作系統(tǒng)虛擬內(nèi)存_第2頁
操作系統(tǒng)虛擬內(nèi)存_第3頁
操作系統(tǒng)虛擬內(nèi)存_第4頁
操作系統(tǒng)虛擬內(nèi)存_第5頁
已閱讀5頁,還剩81頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、虛擬存儲管理由于受到到計算機(jī)機(jī)結(jié)構(gòu)限限制和系系統(tǒng)成本本限制,計算機(jī)機(jī)系統(tǒng)的的內(nèi)存容容量總是是有限的的。在傳統(tǒng)存存儲器管管理中,如果一一個作業(yè)業(yè)需要運運行,系系統(tǒng)必須須將作業(yè)業(yè)的全部部信息裝裝入內(nèi)存存,并在在整個作作業(yè)運行行結(jié)束后后,才能能釋放內(nèi)內(nèi)存。如果一個個作業(yè)信信息大于于內(nèi)存容容量,則則無法裝裝入內(nèi)存存,也無無法運行行;如果果系統(tǒng)有有大量的的作業(yè)申申請進(jìn)入入內(nèi)存,則系統(tǒng)統(tǒng)只能接接納相當(dāng)當(dāng)有限的的作業(yè),系統(tǒng)的的多道度度和性能能都難以以得到提提高。通過對進(jìn)進(jìn)程運行行的分析析而發(fā)現(xiàn)現(xiàn):在進(jìn)進(jìn)程執(zhí)行行時,并并非同時時需要作作業(yè)的全全部信息息。虛擬存儲儲器概念念在進(jìn)程的的執(zhí)行過過程中,作業(yè)的的某部分

2、分信息,可能從從來不會會使用;也可能能運行完完一次后后,再也也不會使使用。如果將這這些不使使用的信信息存放放在物理理內(nèi)存中中,對內(nèi)內(nèi)存是一一種浪費費。同樣樣,既然然作業(yè)的的全部信信息是分分階段需需要,則則可以分分階段將將作業(yè)信信息調(diào)入入內(nèi)存,而不需需要一次次將作業(yè)業(yè)的全部部信息調(diào)調(diào)入內(nèi)存存。于是是,提出出了這樣樣的問題題:能否將作作業(yè)不執(zhí)執(zhí)行的部部分暫時時存放在在外存,待到進(jìn)進(jìn)程需要要執(zhí)行時時,再將將其從外外存調(diào)入入內(nèi)存。將外存作作為內(nèi)存存的補(bǔ)充充,從邏邏輯上擴(kuò)擴(kuò)充內(nèi)存存,是虛擬存儲儲管理的的基本思思想。虛擬存儲儲器概念念人們通過過對Fortran語言程序序、操作作系統(tǒng)過過程和通通用科學(xué)學(xué)計算

3、程程序的分分析,發(fā)發(fā)現(xiàn)了對對程序和和數(shù)據(jù)的的訪問具具有如下下特點:(1)順序性性程序在運運行時除除了少部部分的分分支和過過程調(diào)用用指令外外,大部部分都是是順序執(zhí)執(zhí)行。對對大程序序沒有必必要把所所有的信信息一次次都放入入內(nèi)存。(2)局限性性程序在運運行時,如果有有若干個個過程調(diào)調(diào)用,程程序執(zhí)行行的軌跡跡會轉(zhuǎn)移移至調(diào)用用區(qū)域,但過程程調(diào)用一一般由相相對較少少的指令令組成。當(dāng)程序在某某個局部部范圍內(nèi)內(nèi)運行時時,系統(tǒng)統(tǒng)可以只只將相關(guān)關(guān)的局部部信息放放入內(nèi)存存,其它它不相關(guān)關(guān)或暫時時不相關(guān)關(guān)的信息息放入外外存。虛擬存儲儲器概念念(3)多次性性雖然程序序中可能能包含許許多循環(huán)環(huán)結(jié)構(gòu),但是這這些循環(huán)環(huán)結(jié)構(gòu)通

4、通常只由由少數(shù)指指令構(gòu)成成。這些些集中在在一起的的少數(shù)指指令被多多次執(zhí)行行,在內(nèi)內(nèi)存中可可以只放放入一個個版本,在需要要時才將將該版本本調(diào)入內(nèi)內(nèi)存。(4)獨立性性程序中可可能存在在彼此互互斥或相相互獨立立的部分分,每次次運行時時總有部部分程序序不被使使用,沒沒有必要要將不被被使用的的部分放放入內(nèi)存存。虛擬存儲儲器概念念虛擬存儲儲器定義義:是指具具有請求求調(diào)入功功能和置置換功能能,能夠夠從邏輯輯上對內(nèi)內(nèi)存空間間進(jìn)行擴(kuò)擴(kuò)展,允允許用戶戶的邏輯輯地址空空間大于于物理內(nèi)內(nèi)存地址址空間的的存儲管管理系統(tǒng)統(tǒng)。虛擬存儲儲器的組織形式式如下圖圖所示。虛擬存儲儲管理的的組織虛擬存儲儲器概念念在虛擬存儲儲器中,一

5、般將將硬盤作作為外存存,因此此,硬盤盤也被稱稱為對換換設(shè)備。虛擬存儲儲器的邏輯地址址空間大大小與物物理內(nèi)存存大小沒沒有直接接關(guān)系,由計算算機(jī)系統(tǒng)統(tǒng)的地址址結(jié)構(gòu)決決定。如果計算算機(jī)系統(tǒng)統(tǒng)的地址址為32位,則可可尋址的的范圍為為04G;如果計計算機(jī)系系統(tǒng)的地地址為20位,則可可尋址的的范圍為為01M。計算機(jī)機(jī)系統(tǒng)的的可尋址址范圍為為虛擬存儲儲器的最大范圍圍。虛擬存儲儲器概念念虛擬存儲儲器完成成了邏輯地地址空間間和物理理地址空空間的分分離,能能夠在一一個小的的物理存存儲空間間上提供供給程序序一個巨巨大的虛虛擬存儲儲器空間間。虛擬存儲儲器的基礎(chǔ)是內(nèi)內(nèi)存的離離散管理理,實現(xiàn)現(xiàn)的方式式為請求分頁頁式虛擬擬

6、存儲器器管理或請求分段段式虛擬擬存儲器器管理。虛擬存儲儲器概念念以頁為單單位置換換需硬件支支持請求分頁頁的頁表表機(jī)構(gòu)缺頁中斷斷機(jī)構(gòu)地址變化化機(jī)構(gòu)需實現(xiàn)請請求分頁頁的軟件件用于實現(xiàn)現(xiàn)請求調(diào)調(diào)頁的軟軟件實現(xiàn)頁面面置換的的軟件請求分頁頁系統(tǒng)請求分段段系統(tǒng)以段為單單位置換換需硬件支支持請求分段段的段表表機(jī)構(gòu)缺段中斷斷機(jī)構(gòu)地址變化化機(jī)構(gòu)需實現(xiàn)請請求分段段的軟件件用于實現(xiàn)現(xiàn)請求調(diào)調(diào)段的軟軟件實現(xiàn)段面面置換的的軟件虛擬存儲儲器特征征多次性:最重要要的特征征虛擬存儲儲器在實實現(xiàn)上需需要將一一個作業(yè)業(yè)分多次次調(diào)入內(nèi)內(nèi)存運行行。對換性虛擬存儲儲器允許許作業(yè)在在運行過過程中將將暫時不不運行的的部分換換出,在在需要時

7、時再換入入,對換換性使得得作業(yè)運運行所需需內(nèi)存更更少,系系統(tǒng)的多多道度提提高。虛擬性虛擬存儲儲器從邏邏輯上擴(kuò)擴(kuò)充內(nèi)存存容量,使得用用戶能夠夠使用的的內(nèi)存容容量遠(yuǎn)遠(yuǎn)遠(yuǎn)大于實實際內(nèi)存存容量,提高了了系統(tǒng)運運行程序序的能力力。虛擬存儲儲管理的的方式之之一為基基于內(nèi)存存的分頁頁管理。分頁虛虛擬存儲儲器管理理的實現(xiàn)現(xiàn)需要增加請求求調(diào)頁和頁面置換換功能。虛擬存儲儲管理首首先將需需要運行行的作業(yè)業(yè)放在外外存。當(dāng)當(dāng)作業(yè)被被調(diào)度時時,系統(tǒng)統(tǒng)只將作作業(yè)的少少數(shù)頁面面裝入內(nèi)內(nèi)存,隨隨著作業(yè)業(yè)運行,再通過過頁面請請求功能能、調(diào)頁頁功能和和頁面置置換功能能,逐次次將作業(yè)業(yè)需要運運行的頁頁面調(diào)入入內(nèi)存運運行,并并將暫時時

8、不運行行的頁面面換出到到外存。虛擬存儲儲管理的的主要功功能為請求調(diào)頁頁及頁面置置換。請求分頁存儲管管理請求分頁頁存儲管管理請求分頁頁的硬件件支持包包括:請求分頁頁的頁表表機(jī)制、缺頁中中斷機(jī)構(gòu)構(gòu)和地址址變換機(jī)機(jī)構(gòu)請求分頁頁的頁表表機(jī)制除了頁號號和物理理塊號外外,增加加了頁的的狀態(tài)位位、外存存地址、修改位位、訪問問字段等等信息虛擬存儲儲器管理下的的頁表頁表增加加字段的的用途:狀態(tài)位:用于標(biāo)標(biāo)志一個個頁面是是否已經(jīng)經(jīng)裝入內(nèi)內(nèi)存。外存地址址:頁面面在外存存中的地地址。當(dāng)當(dāng)需要將將某頁面面調(diào)入內(nèi)內(nèi)存時,查詢頁頁表中的的外存地地址,通通常是物物理塊號號。修改位:頁面到到內(nèi)存后后是否被被修改過過的標(biāo)志志,以

9、確確定如果果頁面被被換出內(nèi)內(nèi)存時,是否需需要寫入入外存。如果頁頁面在內(nèi)內(nèi)存沒有有被修改改過,頁頁面中的的內(nèi)容和和外存中中的內(nèi)容容一致,則被換換出內(nèi)存存時不需需要再寫寫入外存存,節(jié)約約了寫入入外存的的時間。如果頁頁面在內(nèi)內(nèi)存中已已經(jīng)被修修改過了了,被換換出內(nèi)存存時需要要寫入外外存。請求分頁頁存儲管管理訪問字段段:標(biāo)志志頁面在在內(nèi)存時時是否被被訪問過過。用于于頁面置置換算法法時系統(tǒng)統(tǒng)是否將將頁面換換出內(nèi)存存時參考考。如果果頁面被被訪問過過,在頁頁面置換換時,系系統(tǒng)考慮慮該頁面面可能以以后會被被再次訪訪問而不不將其換換出。請求分頁頁存儲管管理請求分頁頁存儲管管理缺頁中斷斷機(jī)構(gòu)在進(jìn)程運運行過程程中,當(dāng)

10、當(dāng)發(fā)現(xiàn)所所訪問的的頁面不不在內(nèi)存存時,缺缺頁中斷斷機(jī)構(gòu)便便產(chǎn)生一一缺頁中中斷信號號,通知知操作系系統(tǒng)將所所需要的的頁面調(diào)調(diào)入內(nèi)存存。缺頁中斷斷與一般般中斷一一樣,都都需要經(jīng)經(jīng)歷保護(hù)護(hù)CPU環(huán)境、分分析中斷斷原因、轉(zhuǎn)入中中斷程序序處理、中斷處處理后恢恢復(fù)CPU環(huán)境等步步驟。請求分頁頁存儲管管理缺頁中斷斷又是非非常特殊殊的一種種中斷,與一般般中斷有有如下不不同:CPU檢測中斷斷的時間間不同對一般中中斷信號號,CPU是在一條條指令執(zhí)執(zhí)行完后后檢測其其是否存存在,檢檢測時間間以一個指指令周期期為間隔隔。而對缺頁中斷斷信號,CPU是在一條條指令執(zhí)執(zhí)行期間間,只要要有中斷斷信息就就可檢測測,不需需要等待待

11、一個指指令周期期。因此此,CPU檢測缺頁頁中斷更更及時。CPU可以多次次處理如果在一一個指令令周期中中多次檢檢測到缺缺頁中斷斷,CPU都會及時時處理。由于缺頁頁中斷的的獨特性性,缺頁頁中斷的的處理過過程需要由硬硬件和軟軟件共同同完成。硬件寄存存器主要用于于保護(hù)缺缺頁時CPU未完成指指令狀態(tài)態(tài)和恢復(fù)復(fù)原指令令的執(zhí)行行。軟件為實現(xiàn)缺缺頁中斷斷的相應(yīng)應(yīng)算法程程序缺頁中斷處理理流程圖圖請求分頁頁存儲管管理虛擬存儲儲器管理理不可能能在程序序執(zhí)行前前將所有有的程序序頁面放放入內(nèi)存存,因此此,在程程序執(zhí)行行過程中中需要逐逐步將程程序頁面面調(diào)入內(nèi)內(nèi)存。這這樣,在在程序運運行過程程中完成成邏輯地址址到內(nèi)存存物理

12、地地址的變變換,是是動態(tài)重重定位裝裝入。請求分頁頁存儲管管理具有快表的請請求分頁頁虛擬存存儲地址址變換機(jī)機(jī)構(gòu)請求分頁頁存儲管管理地址變換換機(jī)構(gòu)請求分頁頁存儲管管理當(dāng)進(jìn)程被被調(diào)度時時,操作作系統(tǒng)將將進(jìn)程PCB中的頁表表起始地地址和長長度裝入入頁表寄寄存器中中。CPU從邏輯地地址中取取得頁號號,根據(jù)據(jù)頁號查詢快表表,如果快表表中有該該頁面的的內(nèi)存塊塊號,則將內(nèi)內(nèi)存塊號號與頁內(nèi)內(nèi)偏移一一起作為為該頁在在內(nèi)存的的物理地地址;如果快表表中沒有有該頁面面的內(nèi)存存塊號,CPU從頁表寄寄存器得得到頁表表在內(nèi)存存中的起起始地址址,查詢頁表表,得到該該頁的內(nèi)內(nèi)存塊號號,則將將該塊號號與頁內(nèi)內(nèi)偏移一一起作為為該頁在

13、在內(nèi)存中中的物理理地址,同時將將該頁的的頁號和和內(nèi)存塊塊號寫入入快表,以備下下次查詢詢時使用用。如果查詢詢頁表而而沒有得得到該頁頁的內(nèi)存存塊號,即表示示該頁不不在內(nèi)存存,產(chǎn)生一缺缺頁中斷斷信號,請求操操作系統(tǒng)統(tǒng)將該頁頁面調(diào)入入內(nèi)存。請求分頁頁存儲管管理在頁面調(diào)調(diào)入過程程中,如如果進(jìn)程程空間沒沒有空余余的頁框框,則系系統(tǒng)需要要調(diào)出一一個頁面面后再將將該頁面面調(diào)入內(nèi)內(nèi)存,同同時系統(tǒng)統(tǒng)修改頁頁表。請求分頁頁的虛擬擬存儲器器管理采采用請求求頁面調(diào)調(diào)入方式式,其實實現(xiàn)需要要硬件支支持,增增加了機(jī)機(jī)器成本本和系統(tǒng)統(tǒng)開銷。用于地址址變換和和各種數(shù)數(shù)據(jù)結(jié)構(gòu)構(gòu)的存儲儲開銷、執(zhí)行地地址變換換指令的的時間開開銷、內(nèi)

14、內(nèi)存與外外存之間間對換頁頁面的I/O開銷等與單純的的分頁存存儲管理理相比,虛擬存存儲器管管理是以犧牲系系統(tǒng)開銷銷為代價價,換取取內(nèi)存的的邏輯擴(kuò)擴(kuò)充,換取系系統(tǒng)運行行程序的的增大和和吞吐量量的提高高。請求分頁頁存儲管管理請求分頁頁的硬件件支持完完成了分分頁虛擬擬存儲器器管理中中的地址址變換,但是,在實施施分頁虛虛擬存儲儲器管理理中需要要解決如如下的策策略問題題:調(diào)頁策略略調(diào)頁策略略用于決決定何時時將進(jìn)程程所需要要的頁面面調(diào)入到到內(nèi)存分配策略略分配策略略決定系系統(tǒng)應(yīng)該該給一個個進(jìn)程分分配多少少內(nèi)存中中的物理理塊,進(jìn)進(jìn)程才能能運行。內(nèi)存置換換策略內(nèi)存置換換策略用用于決定定內(nèi)存中中的哪些些頁面被被換出

15、內(nèi)內(nèi)存。請求分頁頁存儲管管理在虛擬存存儲器管管理中,有兩種種調(diào)頁策策略:請請求頁(demandpaging)調(diào)入和和預(yù)先頁頁(prepaging)調(diào)入:請求頁調(diào)調(diào)入請求頁調(diào)調(diào)入是在CPU需要訪問問進(jìn)程頁頁面時,所訪訪問的進(jìn)進(jìn)程頁面面不在內(nèi)內(nèi)存,則則CPU發(fā)出缺頁頁中斷,請求將將頁面調(diào)調(diào)入內(nèi)存存。操作作系統(tǒng)接接收到缺缺頁中斷斷請求后后,分配配內(nèi)存頁頁框并完完成從外外存調(diào)入入頁面優(yōu)點:只有在需需要時才才將頁面面調(diào)入內(nèi)內(nèi)存,節(jié)節(jié)省了內(nèi)內(nèi)存空間間。請求分頁頁存儲管管理缺點:在進(jìn)程初初次執(zhí)行行時,開開始會有有大部分分的頁面面調(diào)入內(nèi)內(nèi)存,這這時的進(jìn)進(jìn)程切換換開銷很很大。如果發(fā)生生缺頁時時系統(tǒng)調(diào)調(diào)入頁面面,

16、而每每次又僅僅調(diào)入一一個頁面面,則啟啟動磁盤盤作I/O的頻率很很高。由由于每次次啟動磁磁盤時會會產(chǎn)生一一個時間間延遲,因此,會造成成系統(tǒng)用用于I/O的時間增增長,系系統(tǒng)效率率降低。對于執(zhí)行行順序跳跳躍性大大的程序序,缺頁頁情況變變化大,難以趨趨向穩(wěn)定定的水平平,從而而引起系系統(tǒng)不穩(wěn)穩(wěn)定。請求分頁頁存儲管管理預(yù)先頁調(diào)調(diào)入預(yù)先頁調(diào)調(diào)入由操操作系統(tǒng)統(tǒng)根據(jù)某某種算法法,預(yù)先先動態(tài)估估計進(jìn)程程可能要要訪問的的頁面,并在處處理器需需要訪問問頁面之之前先將將頁面預(yù)預(yù)先調(diào)入入內(nèi)存優(yōu)點一次可將將多個頁頁面調(diào)入入內(nèi)存,減少了了缺頁中中斷的次次數(shù)和I/O操作次數(shù)數(shù),系統(tǒng)統(tǒng)付出的的開銷減減少。如如果預(yù)先先動態(tài)估估計準(zhǔn)

17、確確率高,該調(diào)入入策略會會大大提提高系統(tǒng)統(tǒng)效率。缺點:如果預(yù)先先動態(tài)估估計準(zhǔn)確確率較低低,調(diào)入入的頁面面不被使使用的可可能性大大,系統(tǒng)統(tǒng)效率較較低如果程序序員不能能預(yù)先提提供所需需程序部部分的信信息,則則該調(diào)度度策略難難以實施施。請求分頁頁存儲管管理物理塊的的分配策策略:為了合理理和有效效分配內(nèi)內(nèi)存,內(nèi)內(nèi)存物理理塊可以以按照進(jìn)進(jìn)程平均分配配法、進(jìn)進(jìn)程按比比例分配配法和進(jìn)進(jìn)程優(yōu)先先權(quán)分配配法進(jìn)行分配配。進(jìn)程平均均分配法法在內(nèi)存物物理塊的的分配上上,早期期采用的的是各進(jìn)進(jìn)程機(jī)會會均等進(jìn)進(jìn)行分配配的方法法,即進(jìn)進(jìn)程平均均分配法法。進(jìn)程按比比例分配配法:根據(jù)進(jìn)程程的大小小,進(jìn)程程按比例例分配法法為按照

18、照比例分分配內(nèi)存存物理塊塊數(shù)。如如果系統(tǒng)統(tǒng)中有m個內(nèi)存物物理塊,n個并發(fā)進(jìn)進(jìn)程,每每個進(jìn)程程的頁面面數(shù)為si,則系統(tǒng)統(tǒng)中每個個進(jìn)程能能夠分得得的內(nèi)存存物理塊塊數(shù)為:內(nèi)存物理理塊數(shù)也應(yīng)該該取整數(shù)。例如,如果內(nèi)內(nèi)存能夠夠提供62個內(nèi)存物物理塊,并發(fā)進(jìn)進(jìn)程有P1(有10個頁面)和P2(有127個頁面),則進(jìn)進(jìn)程P1和P2分配到的的內(nèi)存物物理塊分分別為:請求分頁頁存儲管管理請求分頁頁存儲管管理進(jìn)程優(yōu)先先權(quán)分配配法對于在系系統(tǒng)中所所處地位位重要、時間要要求緊迫迫的進(jìn)程程,系統(tǒng)統(tǒng)應(yīng)該考考慮給其其分配較較多的內(nèi)內(nèi)存空間間,使其其加速完完成。在在實際應(yīng)應(yīng)用中,將按比例分分配法和和進(jìn)程優(yōu)優(yōu)先級結(jié)結(jié)合起來考慮慮,

19、系統(tǒng)統(tǒng)把內(nèi)存存中可以以分配的的物理塊塊分為兩兩部分,一部分分按照比比例分配配給各并并發(fā)進(jìn)程程,另一一部分根根據(jù)進(jìn)程程的優(yōu)先先權(quán)進(jìn)行行適當(dāng)增增加。對內(nèi)存物物理塊分分配還要考慮慮系統(tǒng)的的多道度度情況。如果隨隨著系統(tǒng)統(tǒng)運行,多道度度增加了了,則每每個進(jìn)程程需要釋釋放出一一些內(nèi)存存物理塊塊給新進(jìn)進(jìn)程;相相反,如如果多道道度減少少了,則則將回收收的內(nèi)存存物理塊塊再分配配給剩余余進(jìn)程。請求分頁頁存儲管管理進(jìn)程的最最小物理理塊數(shù)不管給進(jìn)進(jìn)程分配配多少物物理塊,首要條條件是保證進(jìn)程程的正常常運行。因此,在內(nèi)存存物理塊塊分配中中有一個個基本的的界限,即最小小物理塊塊數(shù)。最最小物理理塊數(shù)是是保證進(jìn)進(jìn)程正常常運行所

20、所需要的的最小內(nèi)內(nèi)存塊數(shù)數(shù)進(jìn)程需要要的最小小物理塊塊數(shù)與計計算機(jī)的的硬件結(jié)結(jié)構(gòu)有關(guān)關(guān),取決決于計算算機(jī)的指指令格式式、功能能和尋址址方式。如果計算算機(jī)采用用單地址指指令的直直接尋址址方式,則只需需要用于于存放指指令的頁頁面和存存放數(shù)據(jù)據(jù)的頁面面,最小小物理塊塊數(shù)為2;如果采用間接接尋址方方式,則至少少需要3個物理塊塊。對于于功能較較強(qiáng)大的的計算機(jī)機(jī),指令令長度可可能會超超過多個個字節(jié),指令本本身需要要跨過多多個頁面面,則物物理塊的的最小需需要數(shù)會會更大。請求分頁頁存儲管管理內(nèi)存置換換策略當(dāng)需要運運行的頁頁面不在在內(nèi)存時時,系統(tǒng)統(tǒng)需要將將其從外外存調(diào)入入內(nèi)存。但是如如果內(nèi)存存沒有空空閑空間間提供

21、時時,則系系統(tǒng)需要要先從內(nèi)內(nèi)存中選選擇頁面面換出內(nèi)內(nèi)存后,再將需需要的頁頁面換入入內(nèi)存。選擇被被換出的的頁面有有兩種類類型:全局置換換和局部部置換。請求分頁頁存儲管管理可變分配配全局置置換最容易實實現(xiàn)的物物理塊分分配和置置換策略略。首先為系系統(tǒng)中的的每個進(jìn)進(jìn)程分配配一定數(shù)數(shù)目的物物理塊,OS系統(tǒng)自身身也保持持一個空空閑物理理塊隊列列。如果有頁頁面需要要換入內(nèi)內(nèi)存時,則系統(tǒng)統(tǒng)首先考考慮從空空閑物理理塊隊列列中分配配,其次次考慮從從所有的的進(jìn)程中中選擇合合適的頁頁面換出出內(nèi)存。請求分頁頁存儲管管理固定分配配局部置置換根據(jù)進(jìn)程程類型,或程序序員的建建議,為為每個進(jìn)進(jìn)程分配配一定數(shù)數(shù)目的物物理塊,在整

22、個個運行期期間不再再改變。當(dāng)進(jìn)程有有頁面需需要換入入到內(nèi)存存時,只只能從當(dāng)前需需要頁面面的進(jìn)程程中選擇擇頁面換換出到外外存,該置換換方法對對其它進(jìn)進(jìn)程沒有有影響,每個進(jìn)進(jìn)程在內(nèi)內(nèi)存中分分得的內(nèi)內(nèi)存物理理塊數(shù)不不變。局限在于于為每個個進(jìn)程分分配多少少個物理理塊難以以確定。請求分頁頁存儲管管理可變分配配局部置置換根據(jù)進(jìn)程程類型,或程序序員的建建議,開開始為每每個進(jìn)程程分配一一定數(shù)目目的物理理塊。當(dāng)進(jìn)程有有頁面需需要換入入到內(nèi)存存時,只只能從當(dāng)當(dāng)前需要要頁面的的進(jìn)程中中選擇頁頁面換出出到外存存,該置置換方法法對其它它進(jìn)程沒沒有影響響。進(jìn)程運行行中頻繁繁發(fā)生缺缺頁,系系統(tǒng)再為為該進(jìn)程程分配若若干附加加

23、的物理理塊,直至其其缺頁率率減少到到適當(dāng)程程度為止止。頁面置換換虛擬存儲儲管理的的一個設(shè)設(shè)計問題題是:需要一個個空閑頁頁面時選選擇哪個個頁面來來進(jìn)行替替換目標(biāo):減減少缺頁頁中斷的的次數(shù),即減少少缺頁率舉例:如如果一個個進(jìn)程或或一個作作業(yè)在運運行中成成功的訪訪問次數(shù)數(shù)為S,即所訪訪問的頁頁面在內(nèi)內(nèi)存中;不成功功的訪問問次數(shù)為為F,即訪問問的頁面面需要缺缺頁中斷斷并且需需要調(diào)入入內(nèi)存;運行需需要訪問問的頁面面的總次次數(shù)為A:A=S+F則缺頁率率f為:f=F/A進(jìn)程的內(nèi)存物物理塊數(shù)數(shù)進(jìn)程分得得的內(nèi)存存物理塊塊數(shù)越多多,缺頁頁率越低低。頁面大小小劃分的頁頁面越大大,缺頁頁率越低低。程序的局局部性如果編

24、制制的程序序局部性性好,則則缺頁率率低。頁面置換換算法如果選取取的置換換算法優(yōu)優(yōu),則缺缺頁率低低。影響缺頁頁率的因因素置換算法法最佳置換換算法FIFO (firstinfirstout)先進(jìn)先出出頁面置置換算法法LRU(least recently used)置換算法法時鐘更換換工作集法法最佳置換換最佳置換換算法:選擇一個個隨后最最長時間間不會被被訪問的的頁面進(jìn)進(jìn)行替換換最長時間間不被使使用的頁頁產(chǎn)生缺頁頁中斷的的次數(shù)最最小要具備預(yù)預(yù)知未來來的能力力預(yù)測未來來很困難難舉例:假假如某進(jìn)進(jìn)程的頁頁面號引引用串為為:6 012 030 523 032 120 116 01,系統(tǒng)為為進(jìn)程分分配三個個內(nèi)

25、存物物理塊。如下圖所所示。最最佳頁面面置換算算法缺頁頁6次,缺頁頁率為6/21。最佳頁面置換換算法最佳置換換FIFO頁面置換換更換最早早進(jìn)入內(nèi)內(nèi)存的頁頁面維護(hù)一個個所有頁頁面的鏈鏈表按照它們們進(jìn)入內(nèi)內(nèi)存的次次序替換鏈表表頭部的的頁面缺點:可可能出現(xiàn)現(xiàn)最先加加載進(jìn)來來的頁面面是經(jīng)常常被訪問問的頁面面,這樣樣做很可可能造成成常被訪訪問的頁頁面替換換到磁盤盤上,導(dǎo)導(dǎo)致很快快就需要要再次發(fā)發(fā)生缺頁頁中斷假如某進(jìn)進(jìn)程的頁頁面號引引用串為為:6 012 030 523 032 120 116 01,系統(tǒng)為為進(jìn)程分分配三個個內(nèi)存物物理塊。FIFO頁面置換換FIFO頁面置換換算法最近最久久未使用用(LRU)置

26、換算算法LRU代表最近近使用最最少使用過去去的數(shù)據(jù)據(jù)預(yù)測未未來時空局域域性如果一個個頁面長長時間沒沒有被使使用過可能以后后的一段段時間也也用不到到最近最久久未使用用LRU置換算法法LRU接近于OPT基本思想想是替換換一個舊舊頁面不需要最最舊的頁頁面最近最久久未使用用LRU置換算法法舉例:在在LRU置換算法法中引用用串為:6 012 030 523 032 120 116 01,為進(jìn)程程分配三三個內(nèi)存存物理塊塊。置換換過程如如下圖所所示。缺頁9次,缺頁頁率為9/21。LRU頁面置換換算法最近最久久未使用用LRU置換算法法使用一個個頁面鏈鏈表最近被使使用的頁頁面在鏈鏈表頭,最近未被被使用的的在鏈表

27、表尾每次頁面面訪問時時更新這這個鏈表表在每一個個頁表項項中使用用計數(shù)器器選擇具有有最小計計數(shù)器值值的頁面面周期性的的將計數(shù)數(shù)器清零零使用矩陣陣實現(xiàn)LRU另一個選選擇是使使用nn矩陣這里n是虛擬空空間中的的頁面數(shù)數(shù)開始矩陣陣被設(shè)置置為0當(dāng)頁面k被訪問:將k行全部設(shè)設(shè)置為1,k列全部設(shè)設(shè)置為0需要替換換頁面時時選擇矩陣陣?yán)飳?yīng)應(yīng)行值最最小的頁頁面更換換即可使用矩陣陣實現(xiàn)LRU頁面訪問問順序:0,1,2,3,2,1,0,3,2,30000000000001110Page0 1 2 301230000000011011100Page0 1 2 30000101110011000Page0 1 2 30

28、111001100010000Page0 1 2 30011101100010000Page0 1 2 3000110011101000001230000100011001110011100000100011000111011000000100111001100000010使用移位位寄存器器實現(xiàn)LRU給每個存存放在內(nèi)內(nèi)存的頁頁面配備備一個移移位寄存存器移位寄存存器的初初始值設(shè)設(shè)為0在每一個個規(guī)定長長度的時時鐘周期期:將移位寄寄存器的的值向右右移動一一位并將對應(yīng)應(yīng)頁面的的訪問位位的值加加到該移移位寄存存器的最最左位上上當(dāng)需要尋尋找一個個頁面進(jìn)進(jìn)行更換換時選擇對應(yīng)應(yīng)移位寄寄存器值值最小的的頁面即即

29、可使用移位位寄存器器實現(xiàn)LRU時鐘算法法為每個常常駐頁維維護(hù)訪問問位頁面被訪訪問過后后訪問位位自動設(shè)設(shè)置訪問位可可以被操操作系統(tǒng)統(tǒng)清零常駐頁面面被組織織到時鐘鐘循環(huán)中中針臂指向向其中的的一個頁頁面時鐘算法法查找一個個要替換換的頁面面時:查看正在在被針臂臂指向的的頁面訪問位=0:較長時間間內(nèi)沒有有被訪問問(自從上次次輪詢),置換該該頁訪問位=1:自從上次次輪詢后后頁面被被訪問過過,重新新置0,暫不換換出時鐘算法法除考慮頁頁面訪問問情況外外,還須須考慮置置換代價價,即修修改位A:訪問位位;M:修改位位改進(jìn)型時時鐘算法法工作集算算法工作集是是:最近的k次訪問均均涉及到到的頁面面集合在最近的的T秒或者

30、T次中的所所有頁面面w(k,t)表示在時時間t時k次訪問所所涉及的的頁面數(shù)數(shù)量工作集算算法工作集與與最近訪訪問次數(shù)數(shù)的關(guān)系系k(最近訪問問次數(shù))工作集算算法100311086120110203011680119981200912008011851最后使用時間訪問位R頁表當(dāng)前時間間:2220按下面方方式掃描描所有頁頁面:If(R=1)將最后使使用時間間設(shè)置為為當(dāng)前時時間繼續(xù)掃描,并并將訪問問位清零零if(R=0&ageT)替換此頁頁面工作集時時鐘算法法將工作集集算法和和時鐘算算法結(jié)合合起來將內(nèi)存里里的頁面面組織到到時鐘圈圈里每個頁面面有一個個最近訪訪問時間間和訪問問位需要更換換頁面時時:從針臂指

31、指向的頁頁面開始始考察在工作集集之外的的訪問位位為0的第一個個頁面被被替換虛擬存儲儲器管理理以進(jìn)程程運行的的時間增增長為代代價換來來系統(tǒng)更更多的虛虛擬內(nèi)存存,是否否值得付付出這樣樣的代價價則需要要從缺頁率、頁面大大小等方面對對系統(tǒng)性性能的影影響進(jìn)行行分析。頁面調(diào)度度性能1缺頁率率對系統(tǒng)統(tǒng)性能的的影響用p表示缺頁頁率,如如果p=0,則不缺缺頁;如如果p=1,則始終終缺頁。抖動:由由于缺頁頁而引起起的一種種系統(tǒng)現(xiàn)現(xiàn)象,即即處理器器頻繁地地處理頁頁面的換換出和調(diào)調(diào)入,使使得處理理器實際際處理程程序的能能力大大大減小。“抖動動”現(xiàn)象象常在缺缺頁率非非常高時時發(fā)生。用st表示缺頁頁處理時時間。缺缺頁處理

32、理時間包包括從外外存取相相關(guān)頁面面并將其其放入內(nèi)內(nèi)存的時時間。用ma表示對內(nèi)內(nèi)存一個個頁面的的訪問時時間。用vt表示有效效訪問時時間。在非缺頁頁的情況況下,vt=ma在缺頁率率為p的情況下下,vt=(1p)ma+pst 頁面調(diào)度度對系統(tǒng)統(tǒng)性能的的影響分分析在任何情情況下,缺頁處處理時間間由下面面三個主主要部分分構(gòu)成:(1)缺頁中中斷服務(wù)務(wù)時間;(2)讀頁面面時間;(3)恢復(fù)進(jìn)進(jìn)程時間間。通過精簡簡指令而而減少缺缺頁中斷斷服務(wù)和和恢復(fù)進(jìn)進(jìn)程所花花費的時時間,使使它們位位于1ms-100ms之間。 頁面調(diào)度度對系統(tǒng)統(tǒng)性能的的影響分分析在實際應(yīng)應(yīng)用中,缺頁不只只使得缺缺頁的進(jìn)進(jìn)程運行行減慢,還會影影

33、響其他他進(jìn)程的的運行。如果一一個進(jìn)程程隊列阻阻塞等待待某個設(shè)設(shè)備,而而該設(shè)備備正用于于一個缺缺頁的進(jìn)進(jìn)程,則則等待設(shè)設(shè)備的進(jìn)進(jìn)程會等等待更長長的時間間才能得得到請求求的設(shè)備備??梢?,缺缺頁不只只使得缺缺頁進(jìn)程程本身的的運行減減慢,還還使得整整個系統(tǒng)統(tǒng)的運行行效率降降低,系系統(tǒng)性能能下降。因此,在分配進(jìn)程程物理塊塊和選擇擇置換算算法上,需要周周全考慮慮。頁面調(diào)度度對系統(tǒng)統(tǒng)性能的的影響分分析2對換空空間處理理對系統(tǒng)統(tǒng)性能的的影響訪問磁盤盤上對換換空間的的速度比比訪問磁磁盤上文文件系統(tǒng)統(tǒng)更快。因為對對換空間間比文件件系統(tǒng)分分配的磁盤塊更更大,同時又又不需要文文件查詢詢和間接分配配。這樣,系統(tǒng)可可以采

34、用用在進(jìn)程程開始時時將整個個文件映映像拷貝貝到對換換區(qū),然然后再從從對換區(qū)區(qū)完成調(diào)調(diào)入頁面面的方法法。頁面面換入時時,直接接從對換換區(qū)調(diào)入入。頁面面換出時時,如果果被修改改過,則則需要寫寫入對換換區(qū);否否則不需需要寫入入對換區(qū)區(qū)。因此此,利用用硬盤上上的對換換空間,加快對對換空間間的訪問問速度,可加快快進(jìn)程頁頁面的調(diào)調(diào)入與調(diào)調(diào)出,減減少頁面面置換時時間,提提高系統(tǒng)統(tǒng)性能。頁面調(diào)度度對系統(tǒng)統(tǒng)性能的的影響分分析3頁面大大小對系系統(tǒng)性能能的影響響頁面大小小對性能能的影響響可以從從以下幾幾個方面面分析。頁表由于每個個作業(yè)運運行時,頁表都都需要存存放在內(nèi)內(nèi)存,如如果頁面面大,則則頁表會會更小,頁表占占用

35、的內(nèi)內(nèi)存小。從磁盤讀讀寫頁面面次數(shù)除內(nèi)存外外,頁面面也需要要存放在在磁盤上上。如果果頁面大大,則系系統(tǒng)從磁磁盤上讀讀入頁面面到內(nèi)存存的次數(shù)數(shù)少,有有利于提提高I/O的效率。頁面調(diào)度度對系統(tǒng)統(tǒng)性能的的影響分分析頁內(nèi)碎片片在分頁的的情況下下,如果果頁面小小,則作作業(yè)的內(nèi)內(nèi)存碎片片少。在不考慮磁磁盤讀寫寫頁面對對頁面大大小的影影響,只只考慮頁頁表和作作業(yè)占用用的內(nèi)存存碎片情情況下,理論上上可以求求得最佳佳頁面大大小。如如果用A表示用戶戶作業(yè)的的平均長長度(單單位為字字節(jié)),L為頁面長長度(單單位為字字節(jié)),n為頁表項項所需要要的字節(jié)節(jié)數(shù),每每個作業(yè)業(yè)的頁表表占用的的字節(jié)數(shù)數(shù)為nA/L。假定作作業(yè)的平

36、平均碎片片為L/2,則內(nèi)存存附加的的開銷為為:K=nA/L+L/2對該公式式求極小小值,即即對L求一階導(dǎo)導(dǎo)數(shù),得得到:頁面調(diào)度度對系統(tǒng)統(tǒng)性能的的影響分分析為最佳頁頁面長度度。通常情況況下,頁頁表項所所需要的的字節(jié)數(shù)數(shù)為常數(shù)數(shù),如為為8或4,頁面大大小L與用戶作作業(yè)的平平均長度度成非線線性增長長關(guān)系。如果系系統(tǒng)運行行的作業(yè)業(yè)較長,則頁面面會較大大。但是,通通常意義義下,頁頁面的基基本大小小由計算算機(jī)處理理器決定定。如IBM370系列的頁頁面大小小為2048B或4096B,IBM400的頁面大大小為512B,Motorola68040的頁面大大小為4096B,Pentium的頁面大大小為4096B

37、。頁面調(diào)度度對系統(tǒng)統(tǒng)性能的的影響分分析4編制程程序?qū)θ比表撀实牡挠绊懺诔绦蚓幘幹七^程程中,程程序員應(yīng)應(yīng)該注意意程序的的局部性性。程序序編制方方法不同同,產(chǎn)生生缺頁率率的不同同,對系系統(tǒng)性能能的影響響也不同同。如果程序序員在編編程時考考慮了可可能引起起的缺頁頁中斷,并使系系統(tǒng)運行行時盡量量少地產(chǎn)產(chǎn)生缺頁頁中斷,則會提提高系統(tǒng)統(tǒng)的性能能。頁面調(diào)度度對系統(tǒng)統(tǒng)性能的的影響分分析請求分段段存儲管管理方式式將用戶程程序的所所有段首首先放在在外存中中,當(dāng)用用戶程序序被執(zhí)行行時,系系統(tǒng)再逐逐步從外外存調(diào)入入所需要要的段進(jìn)進(jìn)入內(nèi)存存。請求分段段的硬件件支持段表機(jī)制制缺段中斷斷機(jī)制地址變換換機(jī)構(gòu)請求分段段存儲管管

38、理方式式段表機(jī)制制段名段段長長段段基址存存取取方式訪訪問問字段A修改位M存在位P增補(bǔ)位外外存存地址存取方式式:標(biāo)識識段存取取屬性訪問字段段:段是是否被訪訪問修改位:段進(jìn)入入內(nèi)存后后是否被被修改過過存在位:段是否否在內(nèi)存存增補(bǔ)位:請求分段段系統(tǒng)的的特有字字段,標(biāo)識在在運行過過程中是是否有過過動態(tài)增增長外存地址址:段在在外存的的起始地地址請求分段段存儲管管理方式式缺段中斷斷機(jī)構(gòu)請求分段段存儲管管理方式式地址變化化機(jī)構(gòu)否否否是是是請求分段段存儲管管理方式式分段的共共享和保保護(hù)共享段表表共享進(jìn)程程計數(shù)存取控制制字段段號:不不同的進(jìn)進(jìn)程可以以使用不不同的段段號去共共享段段名段長內(nèi)存地址狀態(tài)外存地址共享進(jìn)

39、程計數(shù)狀態(tài)進(jìn)程名進(jìn)程號段號存取控制請求分段段存儲管管理方式式分段的共共享和保保護(hù)共享段的的分配與與回收分配:第第一一次訪問問:分配配內(nèi)存,(1)增加共共享段表表;(2)修改進(jìn)進(jìn)程段表表。第二二次訪問問:(1)修改共共享段表表;(2)修改進(jìn)進(jìn)程段表表。回收:(1)count=0(2)count0請求分段段存儲管管理方式式分段的共共享和保保護(hù)分段保護(hù)護(hù)越界檢查查:段號號越界檢檢查;段段內(nèi)偏移移越界檢檢查。存取控制制檢查:R;R/W;E環(huán)保護(hù)機(jī)機(jī)構(gòu)(1)內(nèi)環(huán)可可訪問外外環(huán)數(shù)據(jù)據(jù);(2)外環(huán)可可請求內(nèi)內(nèi)環(huán)服務(wù)務(wù)。Windows 2000/XP運行在IntelPentium CPU硬件平臺臺。下面面介紹

40、IntelPentium的工作模模式。IntelPentium CPU提供三種種工作模模式:實地址址模式(real mode)、虛地地址模式式(又稱稱為保護(hù)護(hù)模式,protection mode)和虛擬擬模式(virtual mode)。實地址模模式采用段式式存儲器器管理或或單一連連續(xù)存儲儲器管理理,不啟啟用分頁頁機(jī)制,只能尋尋址1MB地址空間間。DOS操作系統(tǒng)統(tǒng)采用這這種模式式。虛地址模模式采用三種種內(nèi)存管管理方式式:段式式虛擬存存儲器管管理、頁頁式虛擬擬存儲器器管理和和段頁式式虛擬存存儲器管管理。Linux和Windows操作系統(tǒng)統(tǒng)采用這這種模式式。虛擬模式式是在保護(hù)護(hù)方式下下的實地地址模

41、式式的仿真真。Windows 2000/XP系統(tǒng)存儲儲器管理理實例Window2000/XP采用請求頁式式虛擬存存儲管理理,提供32位的虛擬擬地址,為每一一個進(jìn)程程提供一一個受保保護(hù)的4G虛擬地址址空間。虛擬地地址空間間布局為為低2G的地址空空間為用戶程序序區(qū),高2G的地址空空間為操作系統(tǒng)統(tǒng)區(qū),如圖所所示。Windows系統(tǒng)虛擬擬存儲器器地址布布局基于分頁頁管理的的Windows2000/XP系統(tǒng)區(qū)又又分為固固定頁面面區(qū)、頁頁交換區(qū)區(qū)和操作作系統(tǒng)駐駐留區(qū)。固定頁面面區(qū)中存存放關(guān)鍵鍵的系統(tǒng)統(tǒng)代碼,頁面不不可與外外存對換換;頁交換區(qū)區(qū)存放非非常駐系系統(tǒng)代碼碼和數(shù)據(jù)據(jù),可以以與外存存進(jìn)行頁頁面對換換

42、;操作系統(tǒng)統(tǒng)駐留區(qū)區(qū)存放操操作系統(tǒng)統(tǒng)內(nèi)核、執(zhí)行體體和引導(dǎo)導(dǎo)驅(qū)動程程序以及及硬件抽抽象代碼碼層,非非常重要要永不失失效,為為了加快快運行速速度,這這一區(qū)的的尋址由由硬件直直接映射射。另外,在在操作系系統(tǒng)引導(dǎo)導(dǎo)時,也也可以選選擇另一一種地址址分配方方式:3GB用戶程序序區(qū)和1GB操作系統(tǒng)統(tǒng)區(qū)。這這種情況況主要用用于運行行大的用用戶程序序?;诜猪擁摴芾淼牡腤indows2000/XP1頁表在Windows 2000/XP系統(tǒng)中的的頁表如如下圖所所示。Windows 2000/XP系統(tǒng)中的的頁表基于分頁頁管理的的Windows2000/XP2邏輯地地址到物物理地址址的變換換在Windows 2000

43、/XP系統(tǒng)中的的32位邏輯地地址被劃劃分為:頁表目錄錄索引、頁表頁頁索引和和頁面。其中頁頁表目錄錄索引占占10位,頁表表頁索引引占10位,頁面面占12位。頁表機(jī)制制為2級頁表,頁面大大小為4K。分頁管管理中采采用了二二級頁表表結(jié)構(gòu)實實現(xiàn)進(jìn)程程的邏輯輯地址到到物理地地址的變變換,如如下圖所所示?;诜猪擁摴芾淼牡腤indows2000/XPWindows系統(tǒng)的二級頁表結(jié)構(gòu) 物理塊號 塊內(nèi)偏移第一級頁表頁表目錄邏輯地址 31 22 21 12 11 0頁表目錄索引 頁表頁索引 頁面第二級頁表頁表物理地址基于分頁頁管理的的Windows2000/XP頁目錄用用來指向向進(jìn)程頁頁表地址址。每個個進(jìn)程都都擁有自自己的頁頁目錄。在地址變變換時,操作系系統(tǒng)從運運行進(jìn)程程的進(jìn)程程控制塊塊中得到到進(jìn)程頁目目錄的起起始地址址,并將該該地址放放入頁目目錄寄存存器中。通過頁頁目錄寄寄存器尋尋址到頁頁目錄。頁目錄的的目錄項項中包含含有進(jìn)程程所有頁頁表的位位置和狀狀態(tài),即即通過頁頁目錄得得到頁表表。由于頁表表占用10位地址,故最多多有1024張頁表。每張頁頁表最長長可以達(dá)達(dá)到1024個頁表項項,指向向1024

溫馨提示

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

評論

0/150

提交評論