




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、虛擬存儲(chǔ)管理由于受到到計(jì)算機(jī)機(jī)結(jié)構(gòu)限限制和系系統(tǒng)成本本限制,計(jì)算機(jī)機(jī)系統(tǒng)的的內(nèi)存容容量總是是有限的的。在傳統(tǒng)存存儲(chǔ)器管管理中,如果一一個(gè)作業(yè)業(yè)需要運(yùn)運(yùn)行,系系統(tǒng)必須須將作業(yè)業(yè)的全部部信息裝裝入內(nèi)存存,并在在整個(gè)作作業(yè)運(yùn)行行結(jié)束后后,才能能釋放內(nèi)內(nèi)存。如果一個(gè)個(gè)作業(yè)信信息大于于內(nèi)存容容量,則則無(wú)法裝裝入內(nèi)存存,也無(wú)無(wú)法運(yùn)行行;如果果系統(tǒng)有有大量的的作業(yè)申申請(qǐng)進(jìn)入入內(nèi)存,則系統(tǒng)統(tǒng)只能接接納相當(dāng)當(dāng)有限的的作業(yè),系統(tǒng)的的多道度度和性能能都難以以得到提提高。通過(guò)對(duì)進(jìn)進(jìn)程運(yùn)行行的分析析而發(fā)現(xiàn)現(xiàn):在進(jìn)進(jìn)程執(zhí)行行時(shí),并并非同時(shí)時(shí)需要作作業(yè)的全全部信息息。虛擬存儲(chǔ)儲(chǔ)器概念念在進(jìn)程的的執(zhí)行過(guò)過(guò)程中,作業(yè)的的某部分
2、分信息,可能從從來(lái)不會(huì)會(huì)使用;也可能能運(yùn)行完完一次后后,再也也不會(huì)使使用。如果將這這些不使使用的信信息存放放在物理理內(nèi)存中中,對(duì)內(nèi)內(nèi)存是一一種浪費(fèi)費(fèi)。同樣樣,既然然作業(yè)的的全部信信息是分分階段需需要,則則可以分分階段將將作業(yè)信信息調(diào)入入內(nèi)存,而不需需要一次次將作業(yè)業(yè)的全部部信息調(diào)調(diào)入內(nèi)存存。于是是,提出出了這樣樣的問題題:能否將作作業(yè)不執(zhí)執(zhí)行的部部分暫時(shí)時(shí)存放在在外存,待到進(jìn)進(jìn)程需要要執(zhí)行時(shí)時(shí),再將將其從外外存調(diào)入入內(nèi)存。將外存作作為內(nèi)存存的補(bǔ)充充,從邏邏輯上擴(kuò)擴(kuò)充內(nèi)存存,是虛擬存儲(chǔ)儲(chǔ)管理的的基本思思想。虛擬存儲(chǔ)儲(chǔ)器概念念人們通過(guò)過(guò)對(duì)Fortran語(yǔ)言程序序、操作作系統(tǒng)過(guò)過(guò)程和通通用科學(xué)學(xué)計(jì)算
3、程程序的分分析,發(fā)發(fā)現(xiàn)了對(duì)對(duì)程序和和數(shù)據(jù)的的訪問具具有如下下特點(diǎn):(1)順序性性程序在運(yùn)運(yùn)行時(shí)除除了少部部分的分分支和過(guò)過(guò)程調(diào)用用指令外外,大部部分都是是順序執(zhí)執(zhí)行。對(duì)對(duì)大程序序沒有必必要把所所有的信信息一次次都放入入內(nèi)存。(2)局限性性程序在運(yùn)運(yùn)行時(shí),如果有有若干個(gè)個(gè)過(guò)程調(diào)調(diào)用,程程序執(zhí)行行的軌跡跡會(huì)轉(zhuǎn)移移至調(diào)用用區(qū)域,但過(guò)程程調(diào)用一一般由相相對(duì)較少少的指令令組成。當(dāng)程序在某某個(gè)局部部范圍內(nèi)內(nèi)運(yùn)行時(shí)時(shí),系統(tǒng)統(tǒng)可以只只將相關(guān)關(guān)的局部部信息放放入內(nèi)存存,其它它不相關(guān)關(guān)或暫時(shí)時(shí)不相關(guān)關(guān)的信息息放入外外存。虛擬存儲(chǔ)儲(chǔ)器概念念(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)存中可可以只放放入一個(gè)個(gè)版本,在需要要時(shí)才將將該版本本調(diào)入內(nèi)內(nèi)存。(4)獨(dú)立性性程序中可可能存在在彼此互互斥或相相互獨(dú)立立的部分分,每次次運(yùn)行時(shí)時(shí)總有部部分程序序不被使使用,沒沒有必要要將不被被使用的的部分放放入內(nèi)存存。虛擬存儲(chǔ)儲(chǔ)器概念念虛擬存儲(chǔ)儲(chǔ)器定義義:是指具具有請(qǐng)求求調(diào)入功功能和置置換功能能,能夠夠從邏輯輯上對(duì)內(nèi)內(nèi)存空間間進(jìn)行擴(kuò)擴(kuò)展,允允許用戶戶的邏輯輯地址空空間大于于物理內(nèi)內(nèi)存地址址空間的的存儲(chǔ)管管理系統(tǒng)統(tǒng)。虛擬存儲(chǔ)儲(chǔ)器的組織形式式如下圖圖所示。虛擬存儲(chǔ)儲(chǔ)管理的的組織虛擬存儲(chǔ)儲(chǔ)器概念念在虛擬存儲(chǔ)儲(chǔ)器中,一
5、般將將硬盤作作為外存存,因此此,硬盤盤也被稱稱為對(duì)換換設(shè)備。虛擬存儲(chǔ)儲(chǔ)器的邏輯地址址空間大大小與物物理內(nèi)存存大小沒沒有直接接關(guān)系,由計(jì)算算機(jī)系統(tǒng)統(tǒng)的地址址結(jié)構(gòu)決決定。如果計(jì)算算機(jī)系統(tǒng)統(tǒng)的地址址為32位,則可可尋址的的范圍為為04G;如果計(jì)計(jì)算機(jī)系系統(tǒng)的地地址為20位,則可可尋址的的范圍為為01M。計(jì)算機(jī)機(jī)系統(tǒng)的的可尋址址范圍為為虛擬存儲(chǔ)儲(chǔ)器的最大范圍圍。虛擬存儲(chǔ)儲(chǔ)器概念念虛擬存儲(chǔ)儲(chǔ)器完成成了邏輯地地址空間間和物理理地址空空間的分分離,能能夠在一一個(gè)小的的物理存存儲(chǔ)空間間上提供供給程序序一個(gè)巨巨大的虛虛擬存儲(chǔ)儲(chǔ)器空間間。虛擬存儲(chǔ)儲(chǔ)器的基礎(chǔ)是內(nèi)內(nèi)存的離離散管理理,實(shí)現(xiàn)現(xiàn)的方式式為請(qǐng)求分頁(yè)頁(yè)式虛擬擬
6、存儲(chǔ)器器管理或請(qǐng)求分段段式虛擬擬存儲(chǔ)器器管理。虛擬存儲(chǔ)儲(chǔ)器概念念以頁(yè)為單單位置換換需硬件支支持請(qǐng)求分頁(yè)頁(yè)的頁(yè)表表機(jī)構(gòu)缺頁(yè)中斷斷機(jī)構(gòu)地址變化化機(jī)構(gòu)需實(shí)現(xiàn)請(qǐng)請(qǐng)求分頁(yè)頁(yè)的軟件件用于實(shí)現(xiàn)現(xiàn)請(qǐng)求調(diào)調(diào)頁(yè)的軟軟件實(shí)現(xiàn)頁(yè)面面置換的的軟件請(qǐng)求分頁(yè)頁(yè)系統(tǒng)請(qǐng)求分段段系統(tǒng)以段為單單位置換換需硬件支支持請(qǐng)求分段段的段表表機(jī)構(gòu)缺段中斷斷機(jī)構(gòu)地址變化化機(jī)構(gòu)需實(shí)現(xiàn)請(qǐng)請(qǐng)求分段段的軟件件用于實(shí)現(xiàn)現(xiàn)請(qǐng)求調(diào)調(diào)段的軟軟件實(shí)現(xiàn)段面面置換的的軟件虛擬存儲(chǔ)儲(chǔ)器特征征多次性:最重要要的特征征虛擬存儲(chǔ)儲(chǔ)器在實(shí)實(shí)現(xiàn)上需需要將一一個(gè)作業(yè)業(yè)分多次次調(diào)入內(nèi)內(nèi)存運(yùn)行行。對(duì)換性虛擬存儲(chǔ)儲(chǔ)器允許許作業(yè)在在運(yùn)行過(guò)過(guò)程中將將暫時(shí)不不運(yùn)行的的部分換換出,在在需要時(shí)
7、時(shí)再換入入,對(duì)換換性使得得作業(yè)運(yùn)運(yùn)行所需需內(nèi)存更更少,系系統(tǒng)的多多道度提提高。虛擬性虛擬存儲(chǔ)儲(chǔ)器從邏邏輯上擴(kuò)擴(kuò)充內(nèi)存存容量,使得用用戶能夠夠使用的的內(nèi)存容容量遠(yuǎn)遠(yuǎn)遠(yuǎn)大于實(shí)實(shí)際內(nèi)存存容量,提高了了系統(tǒng)運(yùn)運(yùn)行程序序的能力力。虛擬存儲(chǔ)儲(chǔ)管理的的方式之之一為基基于內(nèi)存存的分頁(yè)頁(yè)管理。分頁(yè)虛虛擬存儲(chǔ)儲(chǔ)器管理理的實(shí)現(xiàn)現(xiàn)需要增加請(qǐng)求求調(diào)頁(yè)和頁(yè)面置換換功能。虛擬存儲(chǔ)儲(chǔ)管理首首先將需需要運(yùn)行行的作業(yè)業(yè)放在外外存。當(dāng)當(dāng)作業(yè)被被調(diào)度時(shí)時(shí),系統(tǒng)統(tǒng)只將作作業(yè)的少少數(shù)頁(yè)面面裝入內(nèi)內(nèi)存,隨隨著作業(yè)業(yè)運(yùn)行,再通過(guò)過(guò)頁(yè)面請(qǐng)請(qǐng)求功能能、調(diào)頁(yè)頁(yè)功能和和頁(yè)面置置換功能能,逐次次將作業(yè)業(yè)需要運(yùn)運(yùn)行的頁(yè)頁(yè)面調(diào)入入內(nèi)存運(yùn)運(yùn)行,并并將暫時(shí)時(shí)
8、不運(yùn)行行的頁(yè)面面換出到到外存。虛擬存儲(chǔ)儲(chǔ)管理的的主要功功能為請(qǐng)求調(diào)頁(yè)頁(yè)及頁(yè)面置置換。請(qǐng)求分頁(yè)存儲(chǔ)管管理請(qǐng)求分頁(yè)頁(yè)存儲(chǔ)管管理請(qǐng)求分頁(yè)頁(yè)的硬件件支持包包括:請(qǐng)求分頁(yè)頁(yè)的頁(yè)表表機(jī)制、缺頁(yè)中中斷機(jī)構(gòu)構(gòu)和地址址變換機(jī)機(jī)構(gòu)請(qǐng)求分頁(yè)頁(yè)的頁(yè)表表機(jī)制除了頁(yè)號(hào)號(hào)和物理理塊號(hào)外外,增加加了頁(yè)的的狀態(tài)位位、外存存地址、修改位位、訪問問字段等等信息虛擬存儲(chǔ)儲(chǔ)器管理下的的頁(yè)表頁(yè)表增加加字段的的用途:狀態(tài)位:用于標(biāo)標(biāo)志一個(gè)個(gè)頁(yè)面是是否已經(jīng)經(jīng)裝入內(nèi)內(nèi)存。外存地址址:頁(yè)面面在外存存中的地地址。當(dāng)當(dāng)需要將將某頁(yè)面面調(diào)入內(nèi)內(nèi)存時(shí),查詢頁(yè)頁(yè)表中的的外存地地址,通通常是物物理塊號(hào)號(hào)。修改位:頁(yè)面到到內(nèi)存后后是否被被修改過(guò)過(guò)的標(biāo)志志,以
9、確確定如果果頁(yè)面被被換出內(nèi)內(nèi)存時(shí),是否需需要寫入入外存。如果頁(yè)頁(yè)面在內(nèi)內(nèi)存沒有有被修改改過(guò),頁(yè)頁(yè)面中的的內(nèi)容和和外存中中的內(nèi)容容一致,則被換換出內(nèi)存存時(shí)不需需要再寫寫入外存存,節(jié)約約了寫入入外存的的時(shí)間。如果頁(yè)頁(yè)面在內(nèi)內(nèi)存中已已經(jīng)被修修改過(guò)了了,被換換出內(nèi)存存時(shí)需要要寫入外外存。請(qǐng)求分頁(yè)頁(yè)存儲(chǔ)管管理訪問字段段:標(biāo)志志頁(yè)面在在內(nèi)存時(shí)時(shí)是否被被訪問過(guò)過(guò)。用于于頁(yè)面置置換算法法時(shí)系統(tǒng)統(tǒng)是否將將頁(yè)面換換出內(nèi)存存時(shí)參考考。如果果頁(yè)面被被訪問過(guò)過(guò),在頁(yè)頁(yè)面置換換時(shí),系系統(tǒng)考慮慮該頁(yè)面面可能以以后會(huì)被被再次訪訪問而不不將其換換出。請(qǐng)求分頁(yè)頁(yè)存儲(chǔ)管管理請(qǐng)求分頁(yè)頁(yè)存儲(chǔ)管管理缺頁(yè)中斷斷機(jī)構(gòu)在進(jìn)程運(yùn)運(yùn)行過(guò)程程中,當(dāng)
10、當(dāng)發(fā)現(xiàn)所所訪問的的頁(yè)面不不在內(nèi)存存時(shí),缺缺頁(yè)中斷斷機(jī)構(gòu)便便產(chǎn)生一一缺頁(yè)中中斷信號(hào)號(hào),通知知操作系系統(tǒng)將所所需要的的頁(yè)面調(diào)調(diào)入內(nèi)存存。缺頁(yè)中斷斷與一般般中斷一一樣,都都需要經(jīng)經(jīng)歷保護(hù)護(hù)CPU環(huán)境、分分析中斷斷原因、轉(zhuǎn)入中中斷程序序處理、中斷處處理后恢恢復(fù)CPU環(huán)境等步步驟。請(qǐng)求分頁(yè)頁(yè)存儲(chǔ)管管理缺頁(yè)中斷斷又是非非常特殊殊的一種種中斷,與一般般中斷有有如下不不同:CPU檢測(cè)中斷斷的時(shí)間間不同對(duì)一般中中斷信號(hào)號(hào),CPU是在一條條指令執(zhí)執(zhí)行完后后檢測(cè)其其是否存存在,檢檢測(cè)時(shí)間間以一個(gè)指指令周期期為間隔隔。而對(duì)缺頁(yè)中斷斷信號(hào),CPU是在一條條指令執(zhí)執(zhí)行期間間,只要要有中斷斷信息就就可檢測(cè)測(cè),不需需要等待待
11、一個(gè)指指令周期期。因此此,CPU檢測(cè)缺頁(yè)頁(yè)中斷更更及時(shí)。CPU可以多次次處理如果在一一個(gè)指令令周期中中多次檢檢測(cè)到缺缺頁(yè)中斷斷,CPU都會(huì)及時(shí)時(shí)處理。由于缺頁(yè)頁(yè)中斷的的獨(dú)特性性,缺頁(yè)頁(yè)中斷的的處理過(guò)過(guò)程需要由硬硬件和軟軟件共同同完成。硬件寄存存器主要用于于保護(hù)缺缺頁(yè)時(shí)CPU未完成指指令狀態(tài)態(tài)和恢復(fù)復(fù)原指令令的執(zhí)行行。軟件為實(shí)現(xiàn)缺缺頁(yè)中斷斷的相應(yīng)應(yīng)算法程程序缺頁(yè)中斷處理理流程圖圖請(qǐng)求分頁(yè)頁(yè)存儲(chǔ)管管理虛擬存儲(chǔ)儲(chǔ)器管理理不可能能在程序序執(zhí)行前前將所有有的程序序頁(yè)面放放入內(nèi)存存,因此此,在程程序執(zhí)行行過(guò)程中中需要逐逐步將程程序頁(yè)面面調(diào)入內(nèi)內(nèi)存。這這樣,在在程序運(yùn)運(yùn)行過(guò)程程中完成成邏輯地址址到內(nèi)存存物理
12、地地址的變變換,是是動(dòng)態(tài)重重定位裝裝入。請(qǐng)求分頁(yè)頁(yè)存儲(chǔ)管管理具有快表的請(qǐng)請(qǐng)求分頁(yè)頁(yè)虛擬存存儲(chǔ)地址址變換機(jī)機(jī)構(gòu)請(qǐng)求分頁(yè)頁(yè)存儲(chǔ)管管理地址變換換機(jī)構(gòu)請(qǐng)求分頁(yè)頁(yè)存儲(chǔ)管管理當(dāng)進(jìn)程被被調(diào)度時(shí)時(shí),操作作系統(tǒng)將將進(jìn)程PCB中的頁(yè)表表起始地地址和長(zhǎng)長(zhǎng)度裝入入頁(yè)表寄寄存器中中。CPU從邏輯地地址中取取得頁(yè)號(hào)號(hào),根據(jù)據(jù)頁(yè)號(hào)查詢快表表,如果快表表中有該該頁(yè)面的的內(nèi)存塊塊號(hào),則將內(nèi)內(nèi)存塊號(hào)號(hào)與頁(yè)內(nèi)內(nèi)偏移一一起作為為該頁(yè)在在內(nèi)存的的物理地地址;如果快表表中沒有有該頁(yè)面面的內(nèi)存存塊號(hào),CPU從頁(yè)表寄寄存器得得到頁(yè)表表在內(nèi)存存中的起起始地址址,查詢頁(yè)表表,得到該該頁(yè)的內(nèi)內(nèi)存塊號(hào)號(hào),則將將該塊號(hào)號(hào)與頁(yè)內(nèi)內(nèi)偏移一一起作為為該頁(yè)在
13、在內(nèi)存中中的物理理地址,同時(shí)將將該頁(yè)的的頁(yè)號(hào)和和內(nèi)存塊塊號(hào)寫入入快表,以備下下次查詢?cè)儠r(shí)使用用。如果查詢?cè)冺?yè)表而而沒有得得到該頁(yè)頁(yè)的內(nèi)存存塊號(hào),即表示示該頁(yè)不不在內(nèi)存存,產(chǎn)生一缺缺頁(yè)中斷斷信號(hào),請(qǐng)求操操作系統(tǒng)統(tǒng)將該頁(yè)頁(yè)面調(diào)入入內(nèi)存。請(qǐng)求分頁(yè)頁(yè)存儲(chǔ)管管理在頁(yè)面調(diào)調(diào)入過(guò)程程中,如如果進(jìn)程程空間沒沒有空余余的頁(yè)框框,則系系統(tǒng)需要要調(diào)出一一個(gè)頁(yè)面面后再將將該頁(yè)面面調(diào)入內(nèi)內(nèi)存,同同時(shí)系統(tǒng)統(tǒng)修改頁(yè)頁(yè)表。請(qǐng)求分頁(yè)頁(yè)的虛擬擬存儲(chǔ)器器管理采采用請(qǐng)求求頁(yè)面調(diào)調(diào)入方式式,其實(shí)實(shí)現(xiàn)需要要硬件支支持,增增加了機(jī)機(jī)器成本本和系統(tǒng)統(tǒng)開銷。用于地址址變換和和各種數(shù)數(shù)據(jù)結(jié)構(gòu)構(gòu)的存儲(chǔ)儲(chǔ)開銷、執(zhí)行地地址變換換指令的的時(shí)間開開銷、內(nèi)
14、內(nèi)存與外外存之間間對(duì)換頁(yè)頁(yè)面的I/O開銷等與單純的的分頁(yè)存存儲(chǔ)管理理相比,虛擬存存儲(chǔ)器管管理是以犧牲系系統(tǒng)開銷銷為代價(jià)價(jià),換取取內(nèi)存的的邏輯擴(kuò)擴(kuò)充,換取系系統(tǒng)運(yùn)行行程序的的增大和和吞吐量量的提高高。請(qǐng)求分頁(yè)頁(yè)存儲(chǔ)管管理請(qǐng)求分頁(yè)頁(yè)的硬件件支持完完成了分分頁(yè)虛擬擬存儲(chǔ)器器管理中中的地址址變換,但是,在實(shí)施施分頁(yè)虛虛擬存儲(chǔ)儲(chǔ)器管理理中需要要解決如如下的策策略問題題:調(diào)頁(yè)策略略調(diào)頁(yè)策略略用于決決定何時(shí)時(shí)將進(jìn)程程所需要要的頁(yè)面面調(diào)入到到內(nèi)存分配策略略分配策略略決定系系統(tǒng)應(yīng)該該給一個(gè)個(gè)進(jìn)程分分配多少少內(nèi)存中中的物理理塊,進(jìn)進(jìn)程才能能運(yùn)行。內(nèi)存置換換策略內(nèi)存置換換策略用用于決定定內(nèi)存中中的哪些些頁(yè)面被被換出
15、內(nèi)內(nèi)存。請(qǐng)求分頁(yè)頁(yè)存儲(chǔ)管管理在虛擬存存儲(chǔ)器管管理中,有兩種種調(diào)頁(yè)策策略:請(qǐng)請(qǐng)求頁(yè)(demandpaging)調(diào)入和和預(yù)先頁(yè)頁(yè)(prepaging)調(diào)入:請(qǐng)求頁(yè)調(diào)調(diào)入請(qǐng)求頁(yè)調(diào)調(diào)入是在CPU需要訪問問進(jìn)程頁(yè)頁(yè)面時(shí),所訪訪問的進(jìn)進(jìn)程頁(yè)面面不在內(nèi)內(nèi)存,則則CPU發(fā)出缺頁(yè)頁(yè)中斷,請(qǐng)求將將頁(yè)面調(diào)調(diào)入內(nèi)存存。操作作系統(tǒng)接接收到缺缺頁(yè)中斷斷請(qǐng)求后后,分配配內(nèi)存頁(yè)頁(yè)框并完完成從外外存調(diào)入入頁(yè)面優(yōu)點(diǎn):只有在需需要時(shí)才才將頁(yè)面面調(diào)入內(nèi)內(nèi)存,節(jié)節(jié)省了內(nèi)內(nèi)存空間間。請(qǐng)求分頁(yè)頁(yè)存儲(chǔ)管管理缺點(diǎn):在進(jìn)程初初次執(zhí)行行時(shí),開開始會(huì)有有大部分分的頁(yè)面面調(diào)入內(nèi)內(nèi)存,這這時(shí)的進(jìn)進(jìn)程切換換開銷很很大。如果發(fā)生生缺頁(yè)時(shí)時(shí)系統(tǒng)調(diào)調(diào)入頁(yè)面面,
16、而每每次又僅僅調(diào)入一一個(gè)頁(yè)面面,則啟啟動(dòng)磁盤盤作I/O的頻率很很高。由由于每次次啟動(dòng)磁磁盤時(shí)會(huì)會(huì)產(chǎn)生一一個(gè)時(shí)間間延遲,因此,會(huì)造成成系統(tǒng)用用于I/O的時(shí)間增增長(zhǎng),系系統(tǒng)效率率降低。對(duì)于執(zhí)行行順序跳跳躍性大大的程序序,缺頁(yè)頁(yè)情況變變化大,難以趨趨向穩(wěn)定定的水平平,從而而引起系系統(tǒng)不穩(wěn)穩(wěn)定。請(qǐng)求分頁(yè)頁(yè)存儲(chǔ)管管理預(yù)先頁(yè)調(diào)調(diào)入預(yù)先頁(yè)調(diào)調(diào)入由操操作系統(tǒng)統(tǒng)根據(jù)某某種算法法,預(yù)先先動(dòng)態(tài)估估計(jì)進(jìn)程程可能要要訪問的的頁(yè)面,并在處處理器需需要訪問問頁(yè)面之之前先將將頁(yè)面預(yù)預(yù)先調(diào)入入內(nèi)存優(yōu)點(diǎn)一次可將將多個(gè)頁(yè)頁(yè)面調(diào)入入內(nèi)存,減少了了缺頁(yè)中中斷的次次數(shù)和I/O操作次數(shù)數(shù),系統(tǒng)統(tǒng)付出的的開銷減減少。如如果預(yù)先先動(dòng)態(tài)估估計(jì)準(zhǔn)
17、確確率高,該調(diào)入入策略會(huì)會(huì)大大提提高系統(tǒng)統(tǒng)效率。缺點(diǎn):如果預(yù)先先動(dòng)態(tài)估估計(jì)準(zhǔn)確確率較低低,調(diào)入入的頁(yè)面面不被使使用的可可能性大大,系統(tǒng)統(tǒng)效率較較低如果程序序員不能能預(yù)先提提供所需需程序部部分的信信息,則則該調(diào)度度策略難難以實(shí)施施。請(qǐng)求分頁(yè)頁(yè)存儲(chǔ)管管理物理塊的的分配策策略:為了合理理和有效效分配內(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ī)會(huì)會(huì)均等進(jìn)進(jìn)行分配配的方法法,即進(jìn)進(jìn)程平均均分配法法。進(jìn)程按比比例分配配法:根據(jù)進(jìn)程程的大小小,進(jìn)程程按比例例分配法法為按照
18、照比例分分配內(nèi)存存物理塊塊數(shù)。如如果系統(tǒng)統(tǒng)中有m個(gè)內(nèi)存物物理塊,n個(gè)并發(fā)進(jìn)進(jìn)程,每每個(gè)進(jìn)程程的頁(yè)面面數(shù)為si,則系統(tǒng)統(tǒng)中每個(gè)個(gè)進(jìn)程能能夠分得得的內(nèi)存存物理塊塊數(shù)為:內(nèi)存物理理塊數(shù)也應(yīng)該該取整數(shù)。例如,如果內(nèi)內(nèi)存能夠夠提供62個(gè)內(nèi)存物物理塊,并發(fā)進(jìn)進(jìn)程有P1(有10個(gè)頁(yè)面)和P2(有127個(gè)頁(yè)面),則進(jìn)進(jìn)程P1和P2分配到的的內(nèi)存物物理塊分分別為:請(qǐng)求分頁(yè)頁(yè)存儲(chǔ)管管理請(qǐng)求分頁(yè)頁(yè)存儲(chǔ)管管理進(jìn)程優(yōu)先先權(quán)分配配法對(duì)于在系系統(tǒng)中所所處地位位重要、時(shí)間要要求緊迫迫的進(jìn)程程,系統(tǒng)統(tǒng)應(yīng)該考考慮給其其分配較較多的內(nèi)內(nèi)存空間間,使其其加速完完成。在在實(shí)際應(yīng)應(yīng)用中,將按比例分分配法和和進(jìn)程優(yōu)優(yōu)先級(jí)結(jié)結(jié)合起來(lái)考慮慮,
19、系統(tǒng)統(tǒng)把內(nèi)存存中可以以分配的的物理塊塊分為兩兩部分,一部分分按照比比例分配配給各并并發(fā)進(jìn)程程,另一一部分根根據(jù)進(jìn)程程的優(yōu)先先權(quán)進(jìn)行行適當(dāng)增增加。對(duì)內(nèi)存物物理塊分分配還要考慮慮系統(tǒng)的的多道度度情況。如果隨隨著系統(tǒng)統(tǒng)運(yùn)行,多道度度增加了了,則每每個(gè)進(jìn)程程需要釋釋放出一一些內(nèi)存存物理塊塊給新進(jìn)進(jìn)程;相相反,如如果多道道度減少少了,則則將回收收的內(nèi)存存物理塊塊再分配配給剩余余進(jìn)程。請(qǐng)求分頁(yè)頁(yè)存儲(chǔ)管管理進(jìn)程的最最小物理理塊數(shù)不管給進(jìn)進(jìn)程分配配多少物物理塊,首要條條件是保證進(jìn)程程的正常常運(yùn)行。因此,在內(nèi)存存物理塊塊分配中中有一個(gè)個(gè)基本的的界限,即最小小物理塊塊數(shù)。最最小物理理塊數(shù)是是保證進(jìn)進(jìn)程正常常運(yùn)行所
20、所需要的的最小內(nèi)內(nèi)存塊數(shù)數(shù)進(jìn)程需要要的最小小物理塊塊數(shù)與計(jì)計(jì)算機(jī)的的硬件結(jié)結(jié)構(gòu)有關(guān)關(guān),取決決于計(jì)算算機(jī)的指指令格式式、功能能和尋址址方式。如果計(jì)算算機(jī)采用用單地址指指令的直直接尋址址方式,則只需需要用于于存放指指令的頁(yè)頁(yè)面和存存放數(shù)據(jù)據(jù)的頁(yè)面面,最小小物理塊塊數(shù)為2;如果采用間接接尋址方方式,則至少少需要3個(gè)物理塊塊。對(duì)于于功能較較強(qiáng)大的的計(jì)算機(jī)機(jī),指令令長(zhǎng)度可可能會(huì)超超過(guò)多個(gè)個(gè)字節(jié),指令本本身需要要跨過(guò)多多個(gè)頁(yè)面面,則物物理塊的的最小需需要數(shù)會(huì)會(huì)更大。請(qǐng)求分頁(yè)頁(yè)存儲(chǔ)管管理內(nèi)存置換換策略當(dāng)需要運(yùn)運(yùn)行的頁(yè)頁(yè)面不在在內(nèi)存時(shí)時(shí),系統(tǒng)統(tǒng)需要將將其從外外存調(diào)入入內(nèi)存。但是如如果內(nèi)存存沒有空空閑空間間提供
21、時(shí)時(shí),則系系統(tǒng)需要要先從內(nèi)內(nèi)存中選選擇頁(yè)面面換出內(nèi)內(nèi)存后,再將需需要的頁(yè)頁(yè)面換入入內(nèi)存。選擇被被換出的的頁(yè)面有有兩種類類型:全局置換換和局部部置換。請(qǐng)求分頁(yè)頁(yè)存儲(chǔ)管管理可變分配配全局置置換最容易實(shí)實(shí)現(xiàn)的物物理塊分分配和置置換策略略。首先為系系統(tǒng)中的的每個(gè)進(jìn)進(jìn)程分配配一定數(shù)數(shù)目的物物理塊,OS系統(tǒng)自身身也保持持一個(gè)空空閑物理理塊隊(duì)列列。如果有頁(yè)頁(yè)面需要要換入內(nèi)內(nèi)存時(shí),則系統(tǒng)統(tǒng)首先考考慮從空空閑物理理塊隊(duì)列列中分配配,其次次考慮從從所有的的進(jìn)程中中選擇合合適的頁(yè)頁(yè)面換出出內(nèi)存。請(qǐng)求分頁(yè)頁(yè)存儲(chǔ)管管理固定分配配局部置置換根據(jù)進(jìn)程程類型,或程序序員的建建議,為為每個(gè)進(jìn)進(jìn)程分配配一定數(shù)數(shù)目的物物理塊,在整
22、個(gè)個(gè)運(yùn)行期期間不再再改變。當(dāng)進(jìn)程有有頁(yè)面需需要換入入到內(nèi)存存時(shí),只只能從當(dāng)前需需要頁(yè)面面的進(jìn)程程中選擇擇頁(yè)面換換出到外外存,該置換換方法對(duì)對(duì)其它進(jìn)進(jìn)程沒有有影響,每個(gè)進(jìn)進(jìn)程在內(nèi)內(nèi)存中分分得的內(nèi)內(nèi)存物理理塊數(shù)不不變。局限在于于為每個(gè)個(gè)進(jìn)程分分配多少少個(gè)物理理塊難以以確定。請(qǐng)求分頁(yè)頁(yè)存儲(chǔ)管管理可變分配配局部置置換根據(jù)進(jìn)程程類型,或程序序員的建建議,開開始為每每個(gè)進(jìn)程程分配一一定數(shù)目目的物理理塊。當(dāng)進(jìn)程有有頁(yè)面需需要換入入到內(nèi)存存時(shí),只只能從當(dāng)當(dāng)前需要要頁(yè)面的的進(jìn)程中中選擇頁(yè)頁(yè)面換出出到外存存,該置置換方法法對(duì)其它它進(jìn)程沒沒有影響響。進(jìn)程運(yùn)行行中頻繁繁發(fā)生缺缺頁(yè),系系統(tǒng)再為為該進(jìn)程程分配若若干附加加
23、的物理理塊,直至其其缺頁(yè)率率減少到到適當(dāng)程程度為止止。頁(yè)面置換換虛擬存儲(chǔ)儲(chǔ)管理的的一個(gè)設(shè)設(shè)計(jì)問題題是:需要一個(gè)個(gè)空閑頁(yè)頁(yè)面時(shí)選選擇哪個(gè)個(gè)頁(yè)面來(lái)來(lái)進(jìn)行替替換目標(biāo):減減少缺頁(yè)頁(yè)中斷的的次數(shù),即減少少缺頁(yè)率舉例:如如果一個(gè)個(gè)進(jìn)程或或一個(gè)作作業(yè)在運(yùn)運(yùn)行中成成功的訪訪問次數(shù)數(shù)為S,即所訪訪問的頁(yè)頁(yè)面在內(nèi)內(nèi)存中;不成功功的訪問問次數(shù)為為F,即訪問問的頁(yè)面面需要缺缺頁(yè)中斷斷并且需需要調(diào)入入內(nèi)存;運(yùn)行需需要訪問問的頁(yè)面面的總次次數(shù)為A:A=S+F則缺頁(yè)率率f為:f=F/A進(jìn)程的內(nèi)存物物理塊數(shù)數(shù)進(jìn)程分得得的內(nèi)存存物理塊塊數(shù)越多多,缺頁(yè)頁(yè)率越低低。頁(yè)面大小小劃分的頁(yè)頁(yè)面越大大,缺頁(yè)頁(yè)率越低低。程序的局局部性如果編
24、制制的程序序局部性性好,則則缺頁(yè)率率低。頁(yè)面置換換算法如果選取取的置換換算法優(yōu)優(yōu),則缺缺頁(yè)率低低。影響缺頁(yè)頁(yè)率的因因素置換算法法最佳置換換算法FIFO (firstinfirstout)先進(jìn)先出出頁(yè)面置置換算法法LRU(least recently used)置換算法法時(shí)鐘更換換工作集法法最佳置換換最佳置換換算法:選擇一個(gè)個(gè)隨后最最長(zhǎng)時(shí)間間不會(huì)被被訪問的的頁(yè)面進(jìn)進(jìn)行替換換最長(zhǎng)時(shí)間間不被使使用的頁(yè)頁(yè)產(chǎn)生缺頁(yè)頁(yè)中斷的的次數(shù)最最小要具備預(yù)預(yù)知未來(lái)來(lái)的能力力預(yù)測(cè)未來(lái)來(lái)很困難難舉例:假假如某進(jìn)進(jìn)程的頁(yè)頁(yè)面號(hào)引引用串為為:6 012 030 523 032 120 116 01,系統(tǒng)為為進(jìn)程分分配三個(gè)個(gè)內(nèi)
25、存物物理塊。如下圖所所示。最最佳頁(yè)面面置換算算法缺頁(yè)頁(yè)6次,缺頁(yè)頁(yè)率為6/21。最佳頁(yè)面置換換算法最佳置換換FIFO頁(yè)面置換換更換最早早進(jìn)入內(nèi)內(nèi)存的頁(yè)頁(yè)面維護(hù)一個(gè)個(gè)所有頁(yè)頁(yè)面的鏈鏈表按照它們們進(jìn)入內(nèi)內(nèi)存的次次序替換鏈表表頭部的的頁(yè)面缺點(diǎn):可可能出現(xiàn)現(xiàn)最先加加載進(jìn)來(lái)來(lái)的頁(yè)面面是經(jīng)常常被訪問問的頁(yè)面面,這樣樣做很可可能造成成常被訪訪問的頁(yè)頁(yè)面替換換到磁盤盤上,導(dǎo)導(dǎo)致很快快就需要要再次發(fā)發(fā)生缺頁(yè)頁(yè)中斷假如某進(jìn)進(jìn)程的頁(yè)頁(yè)面號(hào)引引用串為為:6 012 030 523 032 120 116 01,系統(tǒng)為為進(jìn)程分分配三個(gè)個(gè)內(nèi)存物物理塊。FIFO頁(yè)面置換換FIFO頁(yè)面置換換算法最近最久久未使用用(LRU)置
26、換算算法LRU代表最近近使用最最少使用過(guò)去去的數(shù)據(jù)據(jù)預(yù)測(cè)未未來(lái)時(shí)空局域域性如果一個(gè)個(gè)頁(yè)面長(zhǎng)長(zhǎng)時(shí)間沒沒有被使使用過(guò)可能以后后的一段段時(shí)間也也用不到到最近最久久未使用用LRU置換算法法LRU接近于OPT基本思想想是替換換一個(gè)舊舊頁(yè)面不需要最最舊的頁(yè)頁(yè)面最近最久久未使用用LRU置換算法法舉例:在在LRU置換算法法中引用用串為:6 012 030 523 032 120 116 01,為進(jìn)程程分配三三個(gè)內(nèi)存存物理塊塊。置換換過(guò)程如如下圖所所示。缺頁(yè)9次,缺頁(yè)頁(yè)率為9/21。LRU頁(yè)面置換換算法最近最久久未使用用LRU置換算法法使用一個(gè)個(gè)頁(yè)面鏈鏈表最近被使使用的頁(yè)頁(yè)面在鏈鏈表頭,最近未被被使用的的在鏈表
27、表尾每次頁(yè)面面訪問時(shí)時(shí)更新這這個(gè)鏈表表在每一個(gè)個(gè)頁(yè)表項(xiàng)項(xiàng)中使用用計(jì)數(shù)器器選擇具有有最小計(jì)計(jì)數(shù)器值值的頁(yè)面面周期性的的將計(jì)數(shù)數(shù)器清零零使用矩陣陣實(shí)現(xiàn)LRU另一個(gè)選選擇是使使用nn矩陣這里n是虛擬空空間中的的頁(yè)面數(shù)數(shù)開始矩陣陣被設(shè)置置為0當(dāng)頁(yè)面k被訪問:將k行全部設(shè)設(shè)置為1,k列全部設(shè)設(shè)置為0需要替換換頁(yè)面時(shí)時(shí)選擇矩陣陣?yán)飳?duì)應(yīng)應(yīng)行值最最小的頁(yè)頁(yè)面更換換即可使用矩陣陣實(shí)現(xiàn)LRU頁(yè)面訪問問順序: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使用移位位寄存器器實(shí)現(xiàn)LRU給每個(gè)存存放在內(nèi)內(nèi)存的頁(yè)頁(yè)面配備備一個(gè)移移位寄存存器移位寄存存器的初初始值設(shè)設(shè)為0在每一個(gè)個(gè)規(guī)定長(zhǎng)長(zhǎng)度的時(shí)時(shí)鐘周期期:將移位寄寄存器的的值向右右移動(dòng)一一位并將對(duì)應(yīng)應(yīng)頁(yè)面的的訪問位位的值加加到該移移位寄存存器的最最左位上上當(dāng)需要尋尋找一個(gè)個(gè)頁(yè)面進(jìn)進(jìn)行更換換時(shí)選擇對(duì)應(yīng)應(yīng)移位寄寄存器值值最小的的頁(yè)面即即
29、可使用移位位寄存器器實(shí)現(xiàn)LRU時(shí)鐘算法法為每個(gè)常常駐頁(yè)維維護(hù)訪問問位頁(yè)面被訪訪問過(guò)后后訪問位位自動(dòng)設(shè)設(shè)置訪問位可可以被操操作系統(tǒng)統(tǒng)清零常駐頁(yè)面面被組織織到時(shí)鐘鐘循環(huán)中中針臂指向向其中的的一個(gè)頁(yè)頁(yè)面時(shí)鐘算法法查找一個(gè)個(gè)要替換換的頁(yè)面面時(shí):查看正在在被針臂臂指向的的頁(yè)面訪問位=0:較長(zhǎng)時(shí)間間內(nèi)沒有有被訪問問(自從上次次輪詢),置換該該頁(yè)訪問位=1:自從上次次輪詢后后頁(yè)面被被訪問過(guò)過(guò),重新新置0,暫不換換出時(shí)鐘算法法除考慮頁(yè)頁(yè)面訪問問情況外外,還須須考慮置置換代價(jià)價(jià),即修修改位A:訪問位位;M:修改位位改進(jìn)型時(shí)時(shí)鐘算法法工作集算算法工作集是是:最近的k次訪問均均涉及到到的頁(yè)面面集合在最近的的T秒或者
30、T次中的所所有頁(yè)面面w(k,t)表示在時(shí)時(shí)間t時(shí)k次訪問所所涉及的的頁(yè)面數(shù)數(shù)量工作集算算法工作集與與最近訪訪問次數(shù)數(shù)的關(guān)系系k(最近訪問問次數(shù))工作集算算法100311086120110203011680119981200912008011851最后使用時(shí)間訪問位R頁(yè)表當(dāng)前時(shí)間間:2220按下面方方式掃描描所有頁(yè)頁(yè)面:If(R=1)將最后使使用時(shí)間間設(shè)置為為當(dāng)前時(shí)時(shí)間繼續(xù)掃描,并并將訪問問位清零零if(R=0&ageT)替換此頁(yè)頁(yè)面工作集時(shí)時(shí)鐘算法法將工作集集算法和和時(shí)鐘算算法結(jié)合合起來(lái)將內(nèi)存里里的頁(yè)面面組織到到時(shí)鐘圈圈里每個(gè)頁(yè)面面有一個(gè)個(gè)最近訪訪問時(shí)間間和訪問問位需要更換換頁(yè)面時(shí)時(shí):從針臂指
31、指向的頁(yè)頁(yè)面開始始考察在工作集集之外的的訪問位位為0的第一個(gè)個(gè)頁(yè)面被被替換虛擬存儲(chǔ)儲(chǔ)器管理理以進(jìn)程程運(yùn)行的的時(shí)間增增長(zhǎng)為代代價(jià)換來(lái)來(lái)系統(tǒng)更更多的虛虛擬內(nèi)存存,是否否值得付付出這樣樣的代價(jià)價(jià)則需要要從缺頁(yè)率、頁(yè)面大大小等方面對(duì)對(duì)系統(tǒng)性性能的影影響進(jìn)行行分析。頁(yè)面調(diào)度度性能1缺頁(yè)率率對(duì)系統(tǒng)統(tǒng)性能的的影響用p表示缺頁(yè)頁(yè)率,如如果p=0,則不缺缺頁(yè);如如果p=1,則始終終缺頁(yè)。抖動(dòng):由由于缺頁(yè)頁(yè)而引起起的一種種系統(tǒng)現(xiàn)現(xiàn)象,即即處理器器頻繁地地處理頁(yè)頁(yè)面的換換出和調(diào)調(diào)入,使使得處理理器實(shí)際際處理程程序的能能力大大大減小?!岸秳?dòng)動(dòng)”現(xiàn)象象常在缺缺頁(yè)率非非常高時(shí)時(shí)發(fā)生。用st表示缺頁(yè)頁(yè)處理時(shí)時(shí)間。缺缺頁(yè)處理
32、理時(shí)間包包括從外外存取相相關(guān)頁(yè)面面并將其其放入內(nèi)內(nèi)存的時(shí)時(shí)間。用ma表示對(duì)內(nèi)內(nèi)存一個(gè)個(gè)頁(yè)面的的訪問時(shí)時(shí)間。用vt表示有效效訪問時(shí)時(shí)間。在非缺頁(yè)頁(yè)的情況況下,vt=ma在缺頁(yè)率率為p的情況下下,vt=(1p)ma+pst 頁(yè)面調(diào)度度對(duì)系統(tǒng)統(tǒng)性能的的影響分分析在任何情情況下,缺頁(yè)處處理時(shí)間間由下面面三個(gè)主主要部分分構(gòu)成:(1)缺頁(yè)中中斷服務(wù)務(wù)時(shí)間;(2)讀頁(yè)面面時(shí)間;(3)恢復(fù)進(jìn)進(jìn)程時(shí)間間。通過(guò)精簡(jiǎn)簡(jiǎn)指令而而減少缺缺頁(yè)中斷斷服務(wù)和和恢復(fù)進(jìn)進(jìn)程所花花費(fèi)的時(shí)時(shí)間,使使它們位位于1ms-100ms之間。 頁(yè)面調(diào)度度對(duì)系統(tǒng)統(tǒng)性能的的影響分分析在實(shí)際應(yīng)應(yīng)用中,缺頁(yè)不只只使得缺缺頁(yè)的進(jìn)進(jìn)程運(yùn)行行減慢,還會(huì)影影
33、響其他他進(jìn)程的的運(yùn)行。如果一一個(gè)進(jìn)程程隊(duì)列阻阻塞等待待某個(gè)設(shè)設(shè)備,而而該設(shè)備備正用于于一個(gè)缺缺頁(yè)的進(jìn)進(jìn)程,則則等待設(shè)設(shè)備的進(jìn)進(jìn)程會(huì)等等待更長(zhǎng)長(zhǎng)的時(shí)間間才能得得到請(qǐng)求求的設(shè)備備。可見,缺缺頁(yè)不只只使得缺缺頁(yè)進(jìn)程程本身的的運(yùn)行減減慢,還還使得整整個(gè)系統(tǒng)統(tǒng)的運(yùn)行行效率降降低,系系統(tǒng)性能能下降。因此,在分配進(jìn)程程物理塊塊和選擇擇置換算算法上,需要周周全考慮慮。頁(yè)面調(diào)度度對(duì)系統(tǒng)統(tǒng)性能的的影響分分析2對(duì)換空空間處理理對(duì)系統(tǒng)統(tǒng)性能的的影響訪問磁盤盤上對(duì)換換空間的的速度比比訪問磁磁盤上文文件系統(tǒng)統(tǒng)更快。因?yàn)閷?duì)對(duì)換空間間比文件件系統(tǒng)分分配的磁盤塊更更大,同時(shí)又又不需要文文件查詢?cè)兒烷g接分配配。這樣,系統(tǒng)可可以采
34、用用在進(jìn)程程開始時(shí)時(shí)將整個(gè)個(gè)文件映映像拷貝貝到對(duì)換換區(qū),然然后再?gòu)膹膶?duì)換區(qū)區(qū)完成調(diào)調(diào)入頁(yè)面面的方法法。頁(yè)面面換入時(shí)時(shí),直接接從對(duì)換換區(qū)調(diào)入入。頁(yè)面面換出時(shí)時(shí),如果果被修改改過(guò),則則需要寫寫入對(duì)換換區(qū);否否則不需需要寫入入對(duì)換區(qū)區(qū)。因此此,利用用硬盤上上的對(duì)換換空間,加快對(duì)對(duì)換空間間的訪問問速度,可加快快進(jìn)程頁(yè)頁(yè)面的調(diào)調(diào)入與調(diào)調(diào)出,減減少頁(yè)面面置換時(shí)時(shí)間,提提高系統(tǒng)統(tǒng)性能。頁(yè)面調(diào)度度對(duì)系統(tǒng)統(tǒng)性能的的影響分分析3頁(yè)面大大小對(duì)系系統(tǒng)性能能的影響響頁(yè)面大小小對(duì)性能能的影響響可以從從以下幾幾個(gè)方面面分析。頁(yè)表由于每個(gè)個(gè)作業(yè)運(yùn)運(yùn)行時(shí),頁(yè)表都都需要存存放在內(nèi)內(nèi)存,如如果頁(yè)面面大,則則頁(yè)表會(huì)會(huì)更小,頁(yè)表占占用
35、的內(nèi)內(nèi)存小。從磁盤讀讀寫頁(yè)面面次數(shù)除內(nèi)存外外,頁(yè)面面也需要要存放在在磁盤上上。如果果頁(yè)面大大,則系系統(tǒng)從磁磁盤上讀讀入頁(yè)面面到內(nèi)存存的次數(shù)數(shù)少,有有利于提提高I/O的效率。頁(yè)面調(diào)度度對(duì)系統(tǒng)統(tǒng)性能的的影響分分析頁(yè)內(nèi)碎片片在分頁(yè)的的情況下下,如果果頁(yè)面小小,則作作業(yè)的內(nèi)內(nèi)存碎片片少。在不考慮磁磁盤讀寫寫頁(yè)面對(duì)對(duì)頁(yè)面大大小的影影響,只只考慮頁(yè)頁(yè)表和作作業(yè)占用用的內(nèi)存存碎片情情況下,理論上上可以求求得最佳佳頁(yè)面大大小。如如果用A表示用戶戶作業(yè)的的平均長(zhǎng)長(zhǎng)度(單單位為字字節(jié)),L為頁(yè)面長(zhǎng)長(zhǎng)度(單單位為字字節(jié)),n為頁(yè)表項(xiàng)項(xiàng)所需要要的字節(jié)節(jié)數(shù),每每個(gè)作業(yè)業(yè)的頁(yè)表表占用的的字節(jié)數(shù)數(shù)為nA/L。假定作作業(yè)的平
36、平均碎片片為L(zhǎng)/2,則內(nèi)存存附加的的開銷為為:K=nA/L+L/2對(duì)該公式式求極小小值,即即對(duì)L求一階導(dǎo)導(dǎo)數(shù),得得到:頁(yè)面調(diào)度度對(duì)系統(tǒng)統(tǒng)性能的的影響分分析為最佳頁(yè)頁(yè)面長(zhǎng)度度。通常情況況下,頁(yè)頁(yè)表項(xiàng)所所需要的的字節(jié)數(shù)數(shù)為常數(shù)數(shù),如為為8或4,頁(yè)面大大小L與用戶作作業(yè)的平平均長(zhǎng)度度成非線線性增長(zhǎng)長(zhǎng)關(guān)系。如果系系統(tǒng)運(yùn)行行的作業(yè)業(yè)較長(zhǎng),則頁(yè)面面會(huì)較大大。但是,通通常意義義下,頁(yè)頁(yè)面的基基本大小小由計(jì)算算機(jī)處理理器決定定。如IBM370系列的頁(yè)頁(yè)面大小小為2048B或4096B,IBM400的頁(yè)面大大小為512B,Motorola68040的頁(yè)面大大小為4096B,Pentium的頁(yè)面大大小為4096B
37、。頁(yè)面調(diào)度度對(duì)系統(tǒng)統(tǒng)性能的的影響分分析4編制程程序?qū)θ比表?yè)率的的影響在程序編編制過(guò)程程中,程程序員應(yīng)應(yīng)該注意意程序的的局部性性。程序序編制方方法不同同,產(chǎn)生生缺頁(yè)率率的不同同,對(duì)系系統(tǒng)性能能的影響響也不同同。如果程序序員在編編程時(shí)考考慮了可可能引起起的缺頁(yè)頁(yè)中斷,并使系系統(tǒng)運(yùn)行行時(shí)盡量量少地產(chǎn)產(chǎn)生缺頁(yè)頁(yè)中斷,則會(huì)提提高系統(tǒng)統(tǒng)的性能能。頁(yè)面調(diào)度度對(duì)系統(tǒng)統(tǒng)性能的的影響分分析請(qǐng)求分段段存儲(chǔ)管管理方式式將用戶程程序的所所有段首首先放在在外存中中,當(dāng)用用戶程序序被執(zhí)行行時(shí),系系統(tǒng)再逐逐步從外外存調(diào)入入所需要要的段進(jìn)進(jìn)入內(nèi)存存。請(qǐng)求分段段的硬件件支持段表機(jī)制制缺段中斷斷機(jī)制地址變換換機(jī)構(gòu)請(qǐng)求分段段存儲(chǔ)管管
38、理方式式段表機(jī)制制段名段段長(zhǎng)長(zhǎng)段段基址存存取取方式訪訪問問字段A修改位M存在位P增補(bǔ)位外外存存地址存取方式式:標(biāo)識(shí)識(shí)段存取取屬性訪問字段段:段是是否被訪訪問修改位:段進(jìn)入入內(nèi)存后后是否被被修改過(guò)過(guò)存在位:段是否否在內(nèi)存存增補(bǔ)位:請(qǐng)求分段段系統(tǒng)的的特有字字段,標(biāo)識(shí)在在運(yùn)行過(guò)過(guò)程中是是否有過(guò)過(guò)動(dòng)態(tài)增增長(zhǎng)外存地址址:段在在外存的的起始地地址請(qǐng)求分段段存儲(chǔ)管管理方式式缺段中斷斷機(jī)構(gòu)請(qǐng)求分段段存儲(chǔ)管管理方式式地址變化化機(jī)構(gòu)否否否是是是請(qǐng)求分段段存儲(chǔ)管管理方式式分段的共共享和保保護(hù)共享段表表共享進(jìn)程程計(jì)數(shù)存取控制制字段段號(hào):不不同的進(jìn)進(jìn)程可以以使用不不同的段段號(hào)去共共享段段名段長(zhǎng)內(nèi)存地址狀態(tài)外存地址共享進(jìn)
39、程計(jì)數(shù)狀態(tài)進(jìn)程名進(jìn)程號(hào)段號(hào)存取控制請(qǐng)求分段段存儲(chǔ)管管理方式式分段的共共享和保保護(hù)共享段的的分配與與回收分配:第第一一次訪問問:分配配內(nèi)存,(1)增加共共享段表表;(2)修改進(jìn)進(jìn)程段表表。第二二次訪問問:(1)修改共共享段表表;(2)修改進(jìn)進(jìn)程段表表?;厥眨海?)count=0(2)count0請(qǐng)求分段段存儲(chǔ)管管理方式式分段的共共享和保保護(hù)分段保護(hù)護(hù)越界檢查查:段號(hào)號(hào)越界檢檢查;段段內(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)可可請(qǐng)求內(nèi)內(nèi)環(huán)服務(wù)務(wù)。Windows 2000/XP運(yùn)行在IntelPentium CPU硬件平臺(tái)臺(tái)。下面面介紹
40、IntelPentium的工作模模式。IntelPentium CPU提供三種種工作模模式:實(shí)地址址模式(real mode)、虛地地址模式式(又稱稱為保護(hù)護(hù)模式,protection mode)和虛擬擬模式(virtual mode)。實(shí)地址模模式采用段式式存儲(chǔ)器器管理或或單一連連續(xù)存儲(chǔ)儲(chǔ)器管理理,不啟啟用分頁(yè)頁(yè)機(jī)制,只能尋尋址1MB地址空間間。DOS操作系統(tǒng)統(tǒng)采用這這種模式式。虛地址模模式采用三種種內(nèi)存管管理方式式:段式式虛擬存存儲(chǔ)器管管理、頁(yè)頁(yè)式虛擬擬存儲(chǔ)器器管理和和段頁(yè)式式虛擬存存儲(chǔ)器管管理。Linux和Windows操作系統(tǒng)統(tǒng)采用這這種模式式。虛擬模式式是在保護(hù)護(hù)方式下下的實(shí)地地址模
41、式式的仿真真。Windows 2000/XP系統(tǒng)存儲(chǔ)儲(chǔ)器管理理實(shí)例Window2000/XP采用請(qǐng)求頁(yè)式式虛擬存存儲(chǔ)管理理,提供32位的虛擬擬地址,為每一一個(gè)進(jìn)程程提供一一個(gè)受保保護(hù)的4G虛擬地址址空間。虛擬地地址空間間布局為為低2G的地址空空間為用戶程序序區(qū),高2G的地址空空間為操作系統(tǒng)統(tǒng)區(qū),如圖所所示。Windows系統(tǒng)虛擬擬存儲(chǔ)器器地址布布局基于分頁(yè)頁(yè)管理的的Windows2000/XP系統(tǒng)區(qū)又又分為固固定頁(yè)面面區(qū)、頁(yè)頁(yè)交換區(qū)區(qū)和操作作系統(tǒng)駐駐留區(qū)。固定頁(yè)面面區(qū)中存存放關(guān)鍵鍵的系統(tǒng)統(tǒng)代碼,頁(yè)面不不可與外外存對(duì)換換;頁(yè)交換區(qū)區(qū)存放非非常駐系系統(tǒng)代碼碼和數(shù)據(jù)據(jù),可以以與外存存進(jìn)行頁(yè)頁(yè)面對(duì)換換
42、;操作系統(tǒng)統(tǒng)駐留區(qū)區(qū)存放操操作系統(tǒng)統(tǒng)內(nèi)核、執(zhí)行體體和引導(dǎo)導(dǎo)驅(qū)動(dòng)程程序以及及硬件抽抽象代碼碼層,非非常重要要永不失失效,為為了加快快運(yùn)行速速度,這這一區(qū)的的尋址由由硬件直直接映射射。另外,在在操作系系統(tǒng)引導(dǎo)導(dǎo)時(shí),也也可以選選擇另一一種地址址分配方方式:3GB用戶程序序區(qū)和1GB操作系統(tǒng)統(tǒng)區(qū)。這這種情況況主要用用于運(yùn)行行大的用用戶程序序。基于分頁(yè)頁(yè)管理的的Windows2000/XP1頁(yè)表在Windows 2000/XP系統(tǒng)中的的頁(yè)表如如下圖所所示。Windows 2000/XP系統(tǒng)中的的頁(yè)表基于分頁(yè)頁(yè)管理的的Windows2000/XP2邏輯地地址到物物理地址址的變換換在Windows 2000
43、/XP系統(tǒng)中的的32位邏輯地地址被劃劃分為:頁(yè)表目錄錄索引、頁(yè)表頁(yè)頁(yè)索引和和頁(yè)面。其中頁(yè)頁(yè)表目錄錄索引占占10位,頁(yè)表表頁(yè)索引引占10位,頁(yè)面面占12位。頁(yè)表機(jī)制制為2級(jí)頁(yè)表,頁(yè)面大大小為4K。分頁(yè)管管理中采采用了二二級(jí)頁(yè)表表結(jié)構(gòu)實(shí)實(shí)現(xiàn)進(jìn)程程的邏輯輯地址到到物理地地址的變變換,如如下圖所所示?;诜猪?yè)頁(yè)管理的的Windows2000/XPWindows系統(tǒng)的二級(jí)頁(yè)表結(jié)構(gòu) 物理塊號(hào) 塊內(nèi)偏移第一級(jí)頁(yè)表頁(yè)表目錄邏輯地址 31 22 21 12 11 0頁(yè)表目錄索引 頁(yè)表頁(yè)索引 頁(yè)面第二級(jí)頁(yè)表頁(yè)表物理地址基于分頁(yè)頁(yè)管理的的Windows2000/XP頁(yè)目錄用用來(lái)指向向進(jìn)程頁(yè)頁(yè)表地址址。每個(gè)個(gè)進(jìn)程都都擁有自自己的頁(yè)頁(yè)目錄。在地址變變換時(shí),操作系系統(tǒng)從運(yùn)運(yùn)行進(jìn)程程的進(jìn)程程控制塊塊中得到到進(jìn)程頁(yè)目目錄的起起始地址址,并將該該地址放放入頁(yè)目目錄寄存存器中。通過(guò)頁(yè)頁(yè)目錄寄寄存器尋尋址到頁(yè)頁(yè)目錄。頁(yè)目錄的的目錄項(xiàng)項(xiàng)中包含含有進(jìn)程程所有頁(yè)頁(yè)表的位位置和狀狀態(tài),即即通過(guò)頁(yè)頁(yè)目錄得得到頁(yè)表表。由于頁(yè)表表占用10位地址,故最多多有1024張頁(yè)表。每張頁(yè)頁(yè)表最長(zhǎng)長(zhǎng)可以達(dá)達(dá)到1024個(gè)頁(yè)表項(xiàng)項(xiàng),指向向1024
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年黑龍江省建筑安全員A證考試題庫(kù)及答案
- 覆土撒播有機(jī)肥施工方案
- 單位購(gòu)置窗簾合同范本
- 出租鄉(xiāng)鎮(zhèn)倉(cāng)庫(kù)房合同范本
- 二年級(jí)口算題目全集100道
- 企業(yè)標(biāo)志商標(biāo)設(shè)計(jì)合同范本
- 卸貨安全合同范本
- 全村荒地出租合同范例
- 寫真退款合同范本
- 單位車輛報(bào)廢合同范例
- 統(tǒng)籌管理方案
- 建筑工程安全文明施工標(biāo)準(zhǔn)化圖集(附圖豐富)
- 人教版 美術(shù)二年級(jí)上冊(cè) 第9課 蜻蜓飛飛 教案
- Unit 1 Travel教案-2023-2024學(xué)年高一下學(xué)期 中職英語(yǔ)高教版(2023修訂版)基礎(chǔ)模塊2
- DB3206T 1083-2024機(jī)關(guān)會(huì)議服務(wù)人員操作技術(shù)規(guī)范
- 習(xí)作《我的家人 》教案-2024-2025學(xué)年統(tǒng)編版語(yǔ)文四年級(jí)上冊(cè)
- 眼鏡學(xué)智慧樹知到答案2024年溫州醫(yī)科大學(xué)
- 24年注安-其他安全-必背考點(diǎn)-王培山
- 《積極心理學(xué)(第3版)》 課件 第9章 積極的愛
- 中醫(yī)淋巴排毒
- 第四屆檔案職業(yè)技能競(jìng)賽理論試題庫(kù)資料-上(選擇題)
評(píng)論
0/150
提交評(píng)論