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

下載本文檔

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

文檔簡介

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

27、表尾每次頁面面訪問時時更新這這個鏈表表在每一個個頁表項項中使用用計數器器選擇具有有最小計計數器值值的頁面面周期性的的將計數數器清零零使用矩陣陣實現LRU另一個選選擇是使使用nn矩陣這里n是虛擬空空間中的的頁面數數開始矩陣陣被設置置為0當頁面k被訪問:將k行全部設設置為1,k列全部設設置為0需要替換換頁面時時選擇矩陣陣里對應應行值最最小的頁頁面更換換即可使用矩陣陣實現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使用移位位寄存器器實現LRU給每個存存放在內內存的頁頁面配備備一個移移位寄存存器移位寄存存器的初初始值設設為0在每一個個規(guī)定長長度的時時鐘周期期:將移位寄寄存器的的值向右右移動一一位并將對應應頁面的的訪問位位的值加加到該移移位寄存存器的最最左位上上當需要尋尋找一個個頁面進進行更換換時選擇對應應移位寄寄存器值值最小的的頁面即即

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

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

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

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

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

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

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

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

37、。頁面調度度對系統(tǒng)統(tǒng)性能的的影響分分析4編制程程序對缺缺頁率的的影響在程序編編制過程程中,程程序員應應該注意意程序的的局部性性。程序序編制方方法不同同,產生生缺頁率率的不同同,對系系統(tǒng)性能能的影響響也不同同。如果程序序員在編編程時考考慮了可可能引起起的缺頁頁中斷,并使系系統(tǒng)運行行時盡量量少地產產生缺頁頁中斷,則會提提高系統(tǒng)統(tǒng)的性能能。頁面調度度對系統(tǒng)統(tǒng)性能的的影響分分析請求分段段存儲管管理方式式將用戶程程序的所所有段首首先放在在外存中中,當用用戶程序序被執(zhí)行行時,系系統(tǒng)再逐逐步從外外存調入入所需要要的段進進入內存存。請求分段段的硬件件支持段表機制制缺段中斷斷機制地址變換換機構請求分段段存儲管管

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

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

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

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

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

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

溫馨提示

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

評論

0/150

提交評論