![操作系統(tǒng)虛擬內(nèi)存課件_第1頁(yè)](http://file4.renrendoc.com/view/ec87e1201137a05a507ecc0cf286154b/ec87e1201137a05a507ecc0cf286154b1.gif)
![操作系統(tǒng)虛擬內(nèi)存課件_第2頁(yè)](http://file4.renrendoc.com/view/ec87e1201137a05a507ecc0cf286154b/ec87e1201137a05a507ecc0cf286154b2.gif)
![操作系統(tǒng)虛擬內(nèi)存課件_第3頁(yè)](http://file4.renrendoc.com/view/ec87e1201137a05a507ecc0cf286154b/ec87e1201137a05a507ecc0cf286154b3.gif)
![操作系統(tǒng)虛擬內(nèi)存課件_第4頁(yè)](http://file4.renrendoc.com/view/ec87e1201137a05a507ecc0cf286154b/ec87e1201137a05a507ecc0cf286154b4.gif)
![操作系統(tǒng)虛擬內(nèi)存課件_第5頁(yè)](http://file4.renrendoc.com/view/ec87e1201137a05a507ecc0cf286154b/ec87e1201137a05a507ecc0cf286154b5.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
虛擬存儲(chǔ)管理虛擬存儲(chǔ)管理由于受到計(jì)算機(jī)結(jié)構(gòu)限制和系統(tǒng)成本限制,計(jì)算機(jī)系統(tǒng)的內(nèi)存容量總是有限的。在傳統(tǒng)存儲(chǔ)器管理中,如果一個(gè)作業(yè)需要運(yùn)行,系統(tǒng)必須將作業(yè)的全部信息裝入內(nèi)存,并在整個(gè)作業(yè)運(yùn)行結(jié)束后,才能釋放內(nèi)存。如果一個(gè)作業(yè)信息大于內(nèi)存容量,則無(wú)法裝入內(nèi)存,也無(wú)法運(yùn)行;如果系統(tǒng)有大量的作業(yè)申請(qǐng)進(jìn)入內(nèi)存,則系統(tǒng)只能接納相當(dāng)有限的作業(yè),系統(tǒng)的多道度和性能都難以得到提高。通過(guò)對(duì)進(jìn)程運(yùn)行的分析而發(fā)現(xiàn):在進(jìn)程執(zhí)行時(shí),并非同時(shí)需要作業(yè)的全部信息。虛擬存儲(chǔ)器概念由于受到計(jì)算機(jī)結(jié)構(gòu)限制和系統(tǒng)成本限制,計(jì)算機(jī)系統(tǒng)的內(nèi)存容量總在進(jìn)程的執(zhí)行過(guò)程中,作業(yè)的某部分信息,可能從來(lái)不會(huì)使用;也可能運(yùn)行完一次后,再也不會(huì)使用。如果將這些不使用的信息存放在物理內(nèi)存中,對(duì)內(nèi)存是一種浪費(fèi)。同樣,既然作業(yè)的全部信息是分階段需要,則可以分階段將作業(yè)信息調(diào)入內(nèi)存,而不需要一次將作業(yè)的全部信息調(diào)入內(nèi)存。于是,提出了這樣的問(wèn)題:能否將作業(yè)不執(zhí)行的部分暫時(shí)存放在外存,待到進(jìn)程需要執(zhí)行時(shí),再將其從外存調(diào)入內(nèi)存。將外存作為內(nèi)存的補(bǔ)充,從邏輯上擴(kuò)充內(nèi)存,是虛擬存儲(chǔ)管理的基本思想。虛擬存儲(chǔ)器概念在進(jìn)程的執(zhí)行過(guò)程中,作業(yè)的某部分信息,可能從來(lái)不會(huì)使用;也可人們通過(guò)對(duì)Fortran語(yǔ)言程序、操作系統(tǒng)過(guò)程和通用科學(xué)計(jì)算程序的分析,發(fā)現(xiàn)了對(duì)程序和數(shù)據(jù)的訪問(wèn)具有如下特點(diǎn):(1)順序性程序在運(yùn)行時(shí)除了少部分的分支和過(guò)程調(diào)用指令外,大部分都是順序執(zhí)行。對(duì)大程序沒(méi)有必要把所有的信息一次都放入內(nèi)存。(2)局限性程序在運(yùn)行時(shí),如果有若干個(gè)過(guò)程調(diào)用,程序執(zhí)行的軌跡會(huì)轉(zhuǎn)移至調(diào)用區(qū)域,但過(guò)程調(diào)用一般由相對(duì)較少的指令組成。當(dāng)程序在某個(gè)局部范圍內(nèi)運(yùn)行時(shí),系統(tǒng)可以只將相關(guān)的局部信息放入內(nèi)存,其它不相關(guān)或暫時(shí)不相關(guān)的信息放入外存。虛擬存儲(chǔ)器概念人們通過(guò)對(duì)Fortran語(yǔ)言程序、操作系統(tǒng)過(guò)程和通用科學(xué)計(jì)算(3)多次性雖然程序中可能包含許多循環(huán)結(jié)構(gòu),但是這些循環(huán)結(jié)構(gòu)通常只由少數(shù)指令構(gòu)成。這些集中在一起的少數(shù)指令被多次執(zhí)行,在內(nèi)存中可以只放入一個(gè)版本,在需要時(shí)才將該版本調(diào)入內(nèi)存。(4)獨(dú)立性程序中可能存在彼此互斥或相互獨(dú)立的部分,每次運(yùn)行時(shí)總有部分程序不被使用,沒(méi)有必要將不被使用的部分放入內(nèi)存。
虛擬存儲(chǔ)器概念(3)多次性虛擬存儲(chǔ)器概念
虛擬存儲(chǔ)器定義:是指具有請(qǐng)求調(diào)入功能和置換功能,能夠從邏輯上對(duì)內(nèi)存空間進(jìn)行擴(kuò)展,允許用戶的邏輯地址空間大于物理內(nèi)存地址空間的存儲(chǔ)管理系統(tǒng)。虛擬存儲(chǔ)器的組織形式如下圖所示。虛擬存儲(chǔ)管理的組織虛擬存儲(chǔ)器概念虛擬存儲(chǔ)器定義:是指具有請(qǐng)求調(diào)入功能和置換功能,能夠從邏輯上在虛擬存儲(chǔ)器中,一般將硬盤(pán)作為外存,因此,硬盤(pán)也被稱(chēng)為對(duì)換設(shè)備。虛擬存儲(chǔ)器的邏輯地址空間大小與物理內(nèi)存大小沒(méi)有直接關(guān)系,由計(jì)算機(jī)系統(tǒng)的地址結(jié)構(gòu)決定。如果計(jì)算機(jī)系統(tǒng)的地址為32位,則可尋址的范圍為0~4G;如果計(jì)算機(jī)系統(tǒng)的地址為20位,則可尋址的范圍為0~1M。計(jì)算機(jī)系統(tǒng)的可尋址范圍為虛擬存儲(chǔ)器的最大范圍。
虛擬存儲(chǔ)器概念在虛擬存儲(chǔ)器中,一般將硬盤(pán)作為外存,因此,硬盤(pán)也被稱(chēng)為對(duì)換設(shè)虛擬存儲(chǔ)器完成了邏輯地址空間和物理地址空間的分離,能夠在一個(gè)小的物理存儲(chǔ)空間上提供給程序一個(gè)巨大的虛擬存儲(chǔ)器空間。虛擬存儲(chǔ)器的基礎(chǔ)是內(nèi)存的離散管理,實(shí)現(xiàn)的方式為請(qǐng)求分頁(yè)式虛擬存儲(chǔ)器管理或請(qǐng)求分段式虛擬存儲(chǔ)器管理。虛擬存儲(chǔ)器概念虛擬存儲(chǔ)器完成了邏輯地址空間和物理地址空間的分離,能夠在一個(gè)以頁(yè)為單位置換需硬件支持請(qǐng)求分頁(yè)的頁(yè)表機(jī)構(gòu)缺頁(yè)中斷機(jī)構(gòu)地址變化機(jī)構(gòu)需實(shí)現(xiàn)請(qǐng)求分頁(yè)的軟件用于實(shí)現(xiàn)請(qǐng)求調(diào)頁(yè)的軟件實(shí)現(xiàn)頁(yè)面置換的軟件請(qǐng)求分頁(yè)系統(tǒng)以頁(yè)為單位置換請(qǐng)求分頁(yè)系統(tǒng)請(qǐng)求分段系統(tǒng)以段為單位置換需硬件支持請(qǐng)求分段的段表機(jī)構(gòu)缺段中斷機(jī)構(gòu)地址變化機(jī)構(gòu)需實(shí)現(xiàn)請(qǐng)求分段的軟件用于實(shí)現(xiàn)請(qǐng)求調(diào)段的軟件實(shí)現(xiàn)段面置換的軟件請(qǐng)求分段系統(tǒng)以段為單位置換虛擬存儲(chǔ)器特征多次性:最重要的特征虛擬存儲(chǔ)器在實(shí)現(xiàn)上需要將一個(gè)作業(yè)分多次調(diào)入內(nèi)存運(yùn)行。對(duì)換性虛擬存儲(chǔ)器允許作業(yè)在運(yùn)行過(guò)程中將暫時(shí)不運(yùn)行的部分換出,在需要時(shí)再換入,對(duì)換性使得作業(yè)運(yùn)行所需內(nèi)存更少,系統(tǒng)的多道度提高。虛擬性虛擬存儲(chǔ)器從邏輯上擴(kuò)充內(nèi)存容量,使得用戶能夠使用的內(nèi)存容量遠(yuǎn)遠(yuǎn)大于實(shí)際內(nèi)存容量,提高了系統(tǒng)運(yùn)行程序的能力。
虛擬存儲(chǔ)器特征多次性:最重要的特征虛擬存儲(chǔ)管理的方式之一為基于內(nèi)存的分頁(yè)管理。分頁(yè)虛擬存儲(chǔ)器管理的實(shí)現(xiàn)需要增加請(qǐng)求調(diào)頁(yè)和頁(yè)面置換功能。虛擬存儲(chǔ)管理首先將需要運(yùn)行的作業(yè)放在外存。當(dāng)作業(yè)被調(diào)度時(shí),系統(tǒng)只將作業(yè)的少數(shù)頁(yè)面裝入內(nèi)存,隨著作業(yè)運(yùn)行,再通過(guò)頁(yè)面請(qǐng)求功能、調(diào)頁(yè)功能和頁(yè)面置換功能,逐次將作業(yè)需要運(yùn)行的頁(yè)面調(diào)入內(nèi)存運(yùn)行,并將暫時(shí)不運(yùn)行的頁(yè)面換出到外存。虛擬存儲(chǔ)管理的主要功能為請(qǐng)求調(diào)頁(yè)及頁(yè)面置換。請(qǐng)求分頁(yè)存儲(chǔ)管理虛擬存儲(chǔ)管理的方式之一為基于內(nèi)存的分頁(yè)管理。分頁(yè)請(qǐng)求分頁(yè)存儲(chǔ)管理請(qǐng)求分頁(yè)的硬件支持包括:請(qǐng)求分頁(yè)的頁(yè)表機(jī)制、缺頁(yè)中斷機(jī)構(gòu)和地址變換機(jī)構(gòu)請(qǐng)求分頁(yè)的頁(yè)表機(jī)制除了頁(yè)號(hào)和物理塊號(hào)外,增加了頁(yè)的狀態(tài)位、外存地址、修改位、訪問(wèn)字段等信息虛擬存儲(chǔ)器管理下的頁(yè)表請(qǐng)求分頁(yè)存儲(chǔ)管理請(qǐng)求分頁(yè)的硬件支持包括:虛擬存儲(chǔ)器管理下的頁(yè)頁(yè)表增加字段的用途:狀態(tài)位:用于標(biāo)志一個(gè)頁(yè)面是否已經(jīng)裝入內(nèi)存。外存地址:頁(yè)面在外存中的地址。當(dāng)需要將某頁(yè)面調(diào)入內(nèi)存時(shí),查詢(xún)頁(yè)表中的外存地址,通常是物理塊號(hào)。修改位:頁(yè)面到內(nèi)存后是否被修改過(guò)的標(biāo)志,以確定如果頁(yè)面被換出內(nèi)存時(shí),是否需要寫(xiě)入外存。如果頁(yè)面在內(nèi)存沒(méi)有被修改過(guò),頁(yè)面中的內(nèi)容和外存中的內(nèi)容一致,則被換出內(nèi)存時(shí)不需要再寫(xiě)入外存,節(jié)約了寫(xiě)入外存的時(shí)間。如果頁(yè)面在內(nèi)存中已經(jīng)被修改過(guò)了,被換出內(nèi)存時(shí)需要寫(xiě)入外存。請(qǐng)求分頁(yè)存儲(chǔ)管理頁(yè)表增加字段的用途:請(qǐng)求分頁(yè)存儲(chǔ)管理訪問(wèn)字段:標(biāo)志頁(yè)面在內(nèi)存時(shí)是否被訪問(wèn)過(guò)。用于頁(yè)面置換算法時(shí)系統(tǒng)是否將頁(yè)面換出內(nèi)存時(shí)參考。如果頁(yè)面被訪問(wèn)過(guò),在頁(yè)面置換時(shí),系統(tǒng)考慮該頁(yè)面可能以后會(huì)被再次訪問(wèn)而不將其換出。請(qǐng)求分頁(yè)存儲(chǔ)管理訪問(wèn)字段:標(biāo)志頁(yè)面在內(nèi)存時(shí)是否被訪問(wèn)過(guò)。用于頁(yè)面置換算法時(shí)系請(qǐng)求分頁(yè)存儲(chǔ)管理缺頁(yè)中斷機(jī)構(gòu)在進(jìn)程運(yùn)行過(guò)程中,當(dāng)發(fā)現(xiàn)所訪問(wèn)的頁(yè)面不在內(nèi)存時(shí),缺頁(yè)中斷機(jī)構(gòu)便產(chǎn)生一缺頁(yè)中斷信號(hào),通知操作系統(tǒng)將所需要的頁(yè)面調(diào)入內(nèi)存。缺頁(yè)中斷與一般中斷一樣,都需要經(jīng)歷保護(hù)CPU環(huán)境、分析中斷原因、轉(zhuǎn)入中斷程序處理、中斷處理后恢復(fù)CPU環(huán)境等步驟。請(qǐng)求分頁(yè)存儲(chǔ)管理缺頁(yè)中斷機(jī)構(gòu)請(qǐng)求分頁(yè)存儲(chǔ)管理缺頁(yè)中斷又是非常特殊的一種中斷,與一般中斷有如下不同:CPU檢測(cè)中斷的時(shí)間不同對(duì)一般中斷信號(hào),CPU是在一條指令執(zhí)行完后檢測(cè)其是否存在,檢測(cè)時(shí)間以一個(gè)指令周期為間隔。而對(duì)缺頁(yè)中斷信號(hào),CPU是在一條指令執(zhí)行期間,只要有中斷信息就可檢測(cè),不需要等待一個(gè)指令周期。因此,CPU檢測(cè)缺頁(yè)中斷更及時(shí)。CPU可以多次處理如果在一個(gè)指令周期中多次檢測(cè)到缺頁(yè)中斷,CPU都會(huì)及時(shí)處理。由于缺頁(yè)中斷的獨(dú)特性,缺頁(yè)中斷的處理過(guò)程需要由硬件和軟件共同完成。硬件寄存器主要用于保護(hù)缺頁(yè)時(shí)CPU未完成指令狀態(tài)和恢復(fù)原指令的執(zhí)行。軟件為實(shí)現(xiàn)缺頁(yè)中斷的相應(yīng)算法程序請(qǐng)求分頁(yè)存儲(chǔ)管理缺頁(yè)中斷又是非常特殊的一種中斷,與一般中斷有缺頁(yè)中斷處理流程圖請(qǐng)求分頁(yè)存儲(chǔ)管理缺頁(yè)中斷處理流程圖請(qǐng)求分頁(yè)存儲(chǔ)管理
虛擬存儲(chǔ)器管理不可能在程序執(zhí)行前將所有的程序頁(yè)面放入內(nèi)存,因此,在程序執(zhí)行過(guò)程中需要逐步將程序頁(yè)面調(diào)入內(nèi)存。這樣,在程序運(yùn)行過(guò)程中完成邏輯地址到內(nèi)存物理地址的變換,是動(dòng)態(tài)重定位裝入。請(qǐng)求分頁(yè)存儲(chǔ)管理虛擬存儲(chǔ)器管理不可能在程序執(zhí)行前將所有的程序頁(yè)面放入內(nèi)存具有快表的請(qǐng)求分頁(yè)虛擬存儲(chǔ)地址變換機(jī)構(gòu)請(qǐng)求分頁(yè)存儲(chǔ)管理地址變換機(jī)構(gòu)具有快表的請(qǐng)求分頁(yè)虛擬存儲(chǔ)地址變換機(jī)構(gòu)請(qǐng)求分頁(yè)存儲(chǔ)管理地址變請(qǐng)求分頁(yè)存儲(chǔ)管理當(dāng)進(jìn)程被調(diào)度時(shí),操作系統(tǒng)將進(jìn)程PCB中的頁(yè)表起始地址和長(zhǎng)度裝入頁(yè)表寄存器中。CPU從邏輯地址中取得頁(yè)號(hào),根據(jù)頁(yè)號(hào)查詢(xún)快表,如果快表中有該頁(yè)面的內(nèi)存塊號(hào),則將內(nèi)存塊號(hào)與頁(yè)內(nèi)偏移一起作為該頁(yè)在內(nèi)存的物理地址;如果快表中沒(méi)有該頁(yè)面的內(nèi)存塊號(hào),CPU從頁(yè)表寄存器得到頁(yè)表在內(nèi)存中的起始地址,查詢(xún)頁(yè)表,得到該頁(yè)的內(nèi)存塊號(hào),則將該塊號(hào)與頁(yè)內(nèi)偏移一起作為該頁(yè)在內(nèi)存中的物理地址,同時(shí)將該頁(yè)的頁(yè)號(hào)和內(nèi)存塊號(hào)寫(xiě)入快表,以備下次查詢(xún)時(shí)使用。如果查詢(xún)頁(yè)表而沒(méi)有得到該頁(yè)的內(nèi)存塊號(hào),即表示該頁(yè)不在內(nèi)存,產(chǎn)生一缺頁(yè)中斷信號(hào),請(qǐng)求操作系統(tǒng)將該頁(yè)面調(diào)入內(nèi)存。請(qǐng)求分頁(yè)存儲(chǔ)管理當(dāng)進(jìn)程被調(diào)度時(shí),操作系統(tǒng)將進(jìn)程PCB中的頁(yè)表請(qǐng)求分頁(yè)存儲(chǔ)管理在頁(yè)面調(diào)入過(guò)程中,如果進(jìn)程空間沒(méi)有空余的頁(yè)框,則系統(tǒng)需要調(diào)出一個(gè)頁(yè)面后再將該頁(yè)面調(diào)入內(nèi)存,同時(shí)系統(tǒng)修改頁(yè)表。請(qǐng)求分頁(yè)的虛擬存儲(chǔ)器管理采用請(qǐng)求頁(yè)面調(diào)入方式,其實(shí)現(xiàn)需要硬件支持,增加了機(jī)器成本和系統(tǒng)開(kāi)銷(xiāo)。用于地址變換和各種數(shù)據(jù)結(jié)構(gòu)的存儲(chǔ)開(kāi)銷(xiāo)、執(zhí)行地址變換指令的時(shí)間開(kāi)銷(xiāo)、內(nèi)存與外存之間對(duì)換頁(yè)面的I/O開(kāi)銷(xiāo)等與單純的分頁(yè)存儲(chǔ)管理相比,虛擬存儲(chǔ)器管理是以犧牲系統(tǒng)開(kāi)銷(xiāo)為代價(jià),換取內(nèi)存的邏輯擴(kuò)充,換取系統(tǒng)運(yùn)行程序的增大和吞吐量的提高。請(qǐng)求分頁(yè)存儲(chǔ)管理在頁(yè)面調(diào)入過(guò)程中,如果進(jìn)程空間沒(méi)有空余的頁(yè)框請(qǐng)求分頁(yè)存儲(chǔ)管理請(qǐng)求分頁(yè)的硬件支持完成了分頁(yè)虛擬存儲(chǔ)器管理中的地址變換,但是,在實(shí)施分頁(yè)虛擬存儲(chǔ)器管理中需要解決如下的策略問(wèn)題:調(diào)頁(yè)策略調(diào)頁(yè)策略用于決定何時(shí)將進(jìn)程所需要的頁(yè)面調(diào)入到內(nèi)存分配策略分配策略決定系統(tǒng)應(yīng)該給一個(gè)進(jìn)程分配多少內(nèi)存中的物理塊,進(jìn)程才能運(yùn)行。內(nèi)存置換策略?xún)?nèi)存置換策略用于決定內(nèi)存中的哪些頁(yè)面被換出內(nèi)存。請(qǐng)求分頁(yè)存儲(chǔ)管理請(qǐng)求分頁(yè)的硬件支持完成了分頁(yè)虛擬存儲(chǔ)器請(qǐng)求分頁(yè)存儲(chǔ)管理在虛擬存儲(chǔ)器管理中,有兩種調(diào)頁(yè)策略:請(qǐng)求頁(yè)(demandpaging)調(diào)入和預(yù)先頁(yè)(prepaging)調(diào)入:請(qǐng)求頁(yè)調(diào)入請(qǐng)求頁(yè)調(diào)入是在CPU需要訪問(wèn)進(jìn)程頁(yè)面時(shí),所訪問(wèn)的進(jìn)程頁(yè)面不在內(nèi)存,則CPU發(fā)出缺頁(yè)中斷,請(qǐng)求將頁(yè)面調(diào)入內(nèi)存。操作系統(tǒng)接收到缺頁(yè)中斷請(qǐng)求后,分配內(nèi)存頁(yè)框并完成從外存調(diào)入頁(yè)面優(yōu)點(diǎn):只有在需要時(shí)才將頁(yè)面調(diào)入內(nèi)存,節(jié)省了內(nèi)存空間。請(qǐng)求分頁(yè)存儲(chǔ)管理在虛擬存儲(chǔ)器管理中,有兩種調(diào)頁(yè)策略:請(qǐng)請(qǐng)求分頁(yè)存儲(chǔ)管理缺點(diǎn):在進(jìn)程初次執(zhí)行時(shí),開(kāi)始會(huì)有大部分的頁(yè)面調(diào)入內(nèi)存,這時(shí)的進(jìn)程切換開(kāi)銷(xiāo)很大。如果發(fā)生缺頁(yè)時(shí)系統(tǒng)調(diào)入頁(yè)面,而每次又僅調(diào)入一個(gè)頁(yè)面,則啟動(dòng)磁盤(pán)作I/O的頻率很高。由于每次啟動(dòng)磁盤(pán)時(shí)會(huì)產(chǎn)生一個(gè)時(shí)間延遲,因此,會(huì)造成系統(tǒng)用于I/O的時(shí)間增長(zhǎng),系統(tǒng)效率降低。對(duì)于執(zhí)行順序跳躍性大的程序,缺頁(yè)情況變化大,難以趨向穩(wěn)定的水平,從而引起系統(tǒng)不穩(wěn)定。請(qǐng)求分頁(yè)存儲(chǔ)管理缺點(diǎn):請(qǐng)求分頁(yè)存儲(chǔ)管理預(yù)先頁(yè)調(diào)入預(yù)先頁(yè)調(diào)入由操作系統(tǒng)根據(jù)某種算法,預(yù)先動(dòng)態(tài)估計(jì)進(jìn)程可能要訪問(wèn)的頁(yè)面,并在處理器需要訪問(wèn)頁(yè)面之前先將頁(yè)面預(yù)先調(diào)入內(nèi)存優(yōu)點(diǎn)一次可將多個(gè)頁(yè)面調(diào)入內(nèi)存,減少了缺頁(yè)中斷的次數(shù)和I/O操作次數(shù),系統(tǒng)付出的開(kāi)銷(xiāo)減少。如果預(yù)先動(dòng)態(tài)估計(jì)準(zhǔn)確率高,該調(diào)入策略會(huì)大大提高系統(tǒng)效率。缺點(diǎn):如果預(yù)先動(dòng)態(tài)估計(jì)準(zhǔn)確率較低,調(diào)入的頁(yè)面不被使用的可能性大,系統(tǒng)效率較低 如果程序員不能預(yù)先提供所需程序部分的信息,則該調(diào)度策略難以實(shí)施。請(qǐng)求分頁(yè)存儲(chǔ)管理預(yù)先頁(yè)調(diào)入請(qǐng)求分頁(yè)存儲(chǔ)管理物理塊的分配策略:為了合理和有效分配內(nèi)存,內(nèi)存物理塊可以按照進(jìn)程平均分配法、進(jìn)程按比例分配法和進(jìn)程優(yōu)先權(quán)分配法進(jìn)行分配。進(jìn)程平均分配法在內(nèi)存物理塊的分配上,早期采用的是各進(jìn)程機(jī)會(huì)均等進(jìn)行分配的方法,即進(jìn)程平均分配法。進(jìn)程按比例分配法:根據(jù)進(jìn)程的大小,進(jìn)程按比例分配法為按照比例分配內(nèi)存物理塊數(shù)。如果系統(tǒng)中有m個(gè)內(nèi)存物理塊,n個(gè)并發(fā)進(jìn)程,每個(gè)進(jìn)程的頁(yè)面數(shù)為si,則系統(tǒng)中每個(gè)進(jìn)程能夠分得的內(nèi)存物理塊數(shù)為:請(qǐng)求分頁(yè)存儲(chǔ)管理物理塊的分配策略:內(nèi)存物理塊數(shù)也應(yīng)該取整數(shù)。例如,如果內(nèi)存能夠提供62個(gè)內(nèi)存物理塊,并發(fā)進(jìn)程有P1(有10個(gè)頁(yè)面)和P2(有127個(gè)頁(yè)面),則進(jìn)程P1和P2分配到的內(nèi)存物理塊分別為:請(qǐng)求分頁(yè)存儲(chǔ)管理內(nèi)存物理塊數(shù)也應(yīng)該取整數(shù)。請(qǐng)求分頁(yè)存儲(chǔ)管理請(qǐng)求分頁(yè)存儲(chǔ)管理進(jìn)程優(yōu)先權(quán)分配法對(duì)于在系統(tǒng)中所處地位重要、時(shí)間要求緊迫的進(jìn)程,系統(tǒng)應(yīng)該考慮給其分配較多的內(nèi)存空間,使其加速完成。在實(shí)際應(yīng)用中,將按比例分配法和進(jìn)程優(yōu)先級(jí)結(jié)合起來(lái)考慮,系統(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)運(yùn)行,多道度增加了,則每個(gè)進(jìn)程需要釋放出一些內(nèi)存物理塊給新進(jìn)程;相反,如果多道度減少了,則將回收的內(nèi)存物理塊再分配給剩余進(jìn)程。請(qǐng)求分頁(yè)存儲(chǔ)管理進(jìn)程優(yōu)先權(quán)分配法對(duì)內(nèi)存物理塊分配還要考慮系統(tǒng)請(qǐng)求分頁(yè)存儲(chǔ)管理進(jìn)程的最小物理塊數(shù)不管給進(jìn)程分配多少物理塊,首要條件是保證進(jìn)程的正常運(yùn)行。因此,在內(nèi)存物理塊分配中有一個(gè)基本的界限,即最小物理塊數(shù)。最小物理塊數(shù)是保證進(jìn)程正常運(yùn)行所需要的最小內(nèi)存塊數(shù)進(jìn)程需要的最小物理塊數(shù)與計(jì)算機(jī)的硬件結(jié)構(gòu)有關(guān),取決于計(jì)算機(jī)的指令格式、功能和尋址方式。如果計(jì)算機(jī)采用單地址指令的直接尋址方式,則只需要用于存放指令的頁(yè)面和存放數(shù)據(jù)的頁(yè)面,最小物理塊數(shù)為2;如果采用間接尋址方式,則至少需要3個(gè)物理塊。對(duì)于功能較強(qiáng)大的計(jì)算機(jī),指令長(zhǎng)度可能會(huì)超過(guò)多個(gè)字節(jié),指令本身需要跨過(guò)多個(gè)頁(yè)面,則物理塊的最小需要數(shù)會(huì)更大。請(qǐng)求分頁(yè)存儲(chǔ)管理進(jìn)程的最小物理塊數(shù)請(qǐng)求分頁(yè)存儲(chǔ)管理內(nèi)存置換策略當(dāng)需要運(yùn)行的頁(yè)面不在內(nèi)存時(shí),系統(tǒng)需要將其從外存調(diào)入內(nèi)存。但是如果內(nèi)存沒(méi)有空閑空間提供時(shí),則系統(tǒng)需要先從內(nèi)存中選擇頁(yè)面換出內(nèi)存后,再將需要的頁(yè)面換入內(nèi)存。選擇被換出的頁(yè)面有兩種類(lèi)型:全局置換和局部置換。請(qǐng)求分頁(yè)存儲(chǔ)管理內(nèi)存置換策略請(qǐng)求分頁(yè)存儲(chǔ)管理可變分配全局置換最容易實(shí)現(xiàn)的物理塊分配和置換策略。首先為系統(tǒng)中的每個(gè)進(jìn)程分配一定數(shù)目的物理塊,OS系統(tǒng)自身也保持一個(gè)空閑物理塊隊(duì)列。如果有頁(yè)面需要換入內(nèi)存時(shí),則系統(tǒng)首先考慮從空閑物理塊隊(duì)列中分配,其次考慮從所有的進(jìn)程中選擇合適的頁(yè)面換出內(nèi)存。請(qǐng)求分頁(yè)存儲(chǔ)管理可變分配全局置換請(qǐng)求分頁(yè)存儲(chǔ)管理固定分配局部置換根據(jù)進(jìn)程類(lèi)型,或程序員的建議,為每個(gè)進(jìn)程分配一定數(shù)目的物理塊,在整個(gè)運(yùn)行期間不再改變。當(dāng)進(jìn)程有頁(yè)面需要換入到內(nèi)存時(shí),只能從當(dāng)前需要頁(yè)面的進(jìn)程中選擇頁(yè)面換出到外存,該置換方法對(duì)其它進(jìn)程沒(méi)有影響,每個(gè)進(jìn)程在內(nèi)存中分得的內(nèi)存物理塊數(shù)不變。局限在于為每個(gè)進(jìn)程分配多少個(gè)物理塊難以確定。請(qǐng)求分頁(yè)存儲(chǔ)管理固定分配局部置換請(qǐng)求分頁(yè)存儲(chǔ)管理可變分配局部置換根據(jù)進(jìn)程類(lèi)型,或程序員的建議,開(kāi)始為每個(gè)進(jìn)程分配一定數(shù)目的物理塊。當(dāng)進(jìn)程有頁(yè)面需要換入到內(nèi)存時(shí),只能從當(dāng)前需要頁(yè)面的進(jìn)程中選擇頁(yè)面換出到外存,該置換方法對(duì)其它進(jìn)程沒(méi)有影響。進(jìn)程運(yùn)行中頻繁發(fā)生缺頁(yè),系統(tǒng)再為該進(jìn)程分配若干附加的物理塊,直至其缺頁(yè)率減少到適當(dāng)程度為止。請(qǐng)求分頁(yè)存儲(chǔ)管理可變分配局部置換頁(yè)面置換虛擬存儲(chǔ)管理的一個(gè)設(shè)計(jì)問(wèn)題是:需要一個(gè)空閑頁(yè)面時(shí)選擇哪個(gè)頁(yè)面來(lái)進(jìn)行替換目標(biāo):減少缺頁(yè)中斷的次數(shù),即減少缺頁(yè)率舉例:如果一個(gè)進(jìn)程或一個(gè)作業(yè)在運(yùn)行中成功的訪問(wèn)次數(shù)為S,即所訪問(wèn)的頁(yè)面在內(nèi)存中;不成功的訪問(wèn)次數(shù)為F,即訪問(wèn)的頁(yè)面需要缺頁(yè)中斷并且需要調(diào)入內(nèi)存;運(yùn)行需要訪問(wèn)的頁(yè)面的總次數(shù)為A:
A
=
S
+
F
則缺頁(yè)率f為:
f
=
F
/
A頁(yè)面置換虛擬存儲(chǔ)管理的一個(gè)設(shè)計(jì)問(wèn)題是:進(jìn)程的內(nèi)存物理塊數(shù)進(jìn)程分得的內(nèi)存物理塊數(shù)越多,缺頁(yè)率越低。頁(yè)面大小劃分的頁(yè)面越大,缺頁(yè)率越低。程序的局部性如果編制的程序局部性好,則缺頁(yè)率低。頁(yè)面置換算法如果選取的置換算法優(yōu),則缺頁(yè)率低。影響缺頁(yè)率的因素進(jìn)程的內(nèi)存物理塊數(shù)影響缺頁(yè)率的因素置換算法最佳置換算法FIFO(firstinfirstout)先進(jìn)先出頁(yè)面置換算法LRU(leastrecentlyused)置換算法時(shí)鐘更換工作集法置換算法最佳置換算法最佳置換最佳置換算法:選擇一個(gè)隨后最長(zhǎng)時(shí)間不會(huì)被訪問(wèn)的頁(yè)面進(jìn)行替換最長(zhǎng)時(shí)間不被使用的頁(yè)產(chǎn)生缺頁(yè)中斷的次數(shù)最小要具備預(yù)知未來(lái)的能力預(yù)測(cè)未來(lái)很困難舉例:假如某進(jìn)程的頁(yè)面號(hào)引用串為:601203052303212011601,系統(tǒng)為進(jìn)程分配三個(gè)內(nèi)存物理塊。如下圖所示。最佳頁(yè)面置換算法缺頁(yè)6次,缺頁(yè)率為6/21。最佳置換最佳置換算法:最佳頁(yè)面置換算法最佳置換最佳頁(yè)面置換算法最佳置換FIFO頁(yè)面置換更換最早進(jìn)入內(nèi)存的頁(yè)面維護(hù)一個(gè)所有頁(yè)面的鏈表按照它們進(jìn)入內(nèi)存的次序替換鏈表頭部的頁(yè)面缺點(diǎn):可能出現(xiàn)最先加載進(jìn)來(lái)的頁(yè)面是經(jīng)常被訪問(wèn)的頁(yè)面,這樣做很可能造成常被訪問(wèn)的頁(yè)面替換到磁盤(pán)上,導(dǎo)致很快就需要再次發(fā)生缺頁(yè)中斷FIFO頁(yè)面置換更換最早進(jìn)入內(nèi)存的頁(yè)面假如某進(jìn)程的頁(yè)面號(hào)引用串為:601203052303212011601,系統(tǒng)為進(jìn)程分配三個(gè)內(nèi)存物理塊。FIFO頁(yè)面置換FIFO頁(yè)面置換算法假如某進(jìn)程的頁(yè)面號(hào)引用串為:60120305最近最久未使用(LRU)置換算法LRU代表最近使用最少使用過(guò)去的數(shù)據(jù)預(yù)測(cè)未來(lái)時(shí)空局域性如果一個(gè)頁(yè)面長(zhǎng)時(shí)間沒(méi)有被使用過(guò)可能以后的一段時(shí)間也用不到最近最久未使用(LRU)置換算法LRU代表最近使用最少最近最久未使用LRU置換算法LRU接近于OPT基本思想是替換一個(gè)舊頁(yè)面不需要最舊的頁(yè)面最近最久未使用LRU置換算法LRU接近于OPT最近最久未使用LRU置換算法舉例:在LRU置換算法中引用串為:601203052303212011601,為進(jìn)程分配三個(gè)內(nèi)存物理塊。置換過(guò)程如下圖所示。缺頁(yè)9次,缺頁(yè)率為9/21。LRU頁(yè)面置換算法最近最久未使用LRU置換算法舉例:在LRU置換算法中引用串為最近最久未使用LRU置換算法使用一個(gè)頁(yè)面鏈表最近被使用的頁(yè)面在鏈表頭,最近未被使用的在鏈表尾每次頁(yè)面訪問(wèn)時(shí)更新這個(gè)鏈表在每一個(gè)頁(yè)表項(xiàng)中使用計(jì)數(shù)器選擇具有最小計(jì)數(shù)器值的頁(yè)面周期性的將計(jì)數(shù)器清零最近最久未使用LRU置換算法使用一個(gè)頁(yè)面鏈表使用矩陣實(shí)現(xiàn)LRU另一個(gè)選擇是使用n×n矩陣這里n是虛擬空間中的頁(yè)面數(shù)開(kāi)始矩陣被設(shè)置為0當(dāng)頁(yè)面k被訪問(wèn):將k行全部設(shè)置為1,k列全部設(shè)置為0需要替換頁(yè)面時(shí)選擇矩陣?yán)飳?duì)應(yīng)行值最小的頁(yè)面更換即可使用矩陣實(shí)現(xiàn)LRU另一個(gè)選擇是使用n×n矩陣使用矩陣實(shí)現(xiàn)LRU頁(yè)面訪問(wèn)順序:0,1,2,3,2,1,0,3,2,30000000000001110Page012301230000000011011100Page01230000101110011000Page01230111001100010000Page01230011101100010000Page0123000110011101000001230000100011001110011100000100011000111011000000100111001100000010使用矩陣實(shí)現(xiàn)LRU頁(yè)面訪問(wèn)順序:0,1,2,3,2,1,0使用移位寄存器實(shí)現(xiàn)LRU給每個(gè)存放在內(nèi)存的頁(yè)面配備一個(gè)移位寄存器移位寄存器的初始值設(shè)為0在每一個(gè)規(guī)定長(zhǎng)度的時(shí)鐘周期:將移位寄存器的值向右移動(dòng)一位并將對(duì)應(yīng)頁(yè)面的訪問(wèn)位的值加到該移位寄存器的最左位上當(dāng)需要尋找一個(gè)頁(yè)面進(jìn)行更換時(shí)選擇對(duì)應(yīng)移位寄存器值最小的頁(yè)面即可使用移位寄存器實(shí)現(xiàn)LRU給每個(gè)存放在內(nèi)存的頁(yè)面配備一個(gè)移使用移位寄存器實(shí)現(xiàn)LRU使用移位寄存器實(shí)現(xiàn)LRU時(shí)鐘算法為每個(gè)常駐頁(yè)維護(hù)訪問(wèn)位頁(yè)面被訪問(wèn)過(guò)后訪問(wèn)位自動(dòng)設(shè)置訪問(wèn)位可以被操作系統(tǒng)清零常駐頁(yè)面被組織到時(shí)鐘循環(huán)中針臂指向其中的一個(gè)頁(yè)面時(shí)鐘算法為每個(gè)常駐頁(yè)維護(hù)訪問(wèn)位時(shí)鐘算法查找一個(gè)要替換的頁(yè)面時(shí):查看正在被針臂指向的頁(yè)面訪問(wèn)位=0:較長(zhǎng)時(shí)間內(nèi)沒(méi)有被訪問(wèn)(自從上次輪詢(xún)),置換該頁(yè)訪問(wèn)位=1:自從上次輪詢(xún)后頁(yè)面被訪問(wèn)過(guò),重新置0,暫不換出時(shí)鐘算法查找一個(gè)要替換的頁(yè)面時(shí):時(shí)鐘算法時(shí)鐘算法除考慮頁(yè)面訪問(wèn)情況外,還須考慮置換代價(jià),即修改位A:訪問(wèn)位;M:修改位改進(jìn)型時(shí)鐘算法除考慮頁(yè)面訪問(wèn)情況外,還須考慮置換代價(jià),即修改位改進(jìn)型時(shí)鐘算工作集算法工作集是:最近的k次訪問(wèn)均涉及到的頁(yè)面集合在最近的T秒或者T次中的所有頁(yè)面w(k,t)表示在時(shí)間
t時(shí)k次訪問(wèn)所涉及的頁(yè)面數(shù)量工作集算法工作集是:工作集算法工作集與最近訪問(wèn)次數(shù)的關(guān)系k(最近訪問(wèn)次數(shù))工作集算法工作集與最近訪問(wèn)次數(shù)的關(guān)系k(最近訪問(wèn)次數(shù))工作集算法10031…10861…20110…20301…………16801…19981…………20091…20080…………11851…最后使用時(shí)間訪問(wèn)位R頁(yè)表當(dāng)前時(shí)間:2220按下面方式掃描所有頁(yè)面:If(R=1)將最后使用時(shí)間設(shè)置為當(dāng)前時(shí)間繼續(xù)掃描,并將訪問(wèn)位清零if(R==0&&age<T)
記住看過(guò)最早時(shí)間If(R==0&&age>T)
替換此頁(yè)面工作集算法10031…10861…20110…20301……工作集時(shí)鐘算法將工作集算法和時(shí)鐘算法結(jié)合起來(lái)將內(nèi)存里的頁(yè)面組織到時(shí)鐘圈里每個(gè)頁(yè)面有一個(gè)最近訪問(wèn)時(shí)間和訪問(wèn)位需要更換頁(yè)面時(shí):從針臂指向的頁(yè)面開(kāi)始考察在工作集之外的訪問(wèn)位為0的第一個(gè)頁(yè)面被替換工作集時(shí)鐘算法將工作集算法和時(shí)鐘算法結(jié)合起來(lái)虛擬存儲(chǔ)器管理以進(jìn)程運(yùn)行的時(shí)間增長(zhǎng)為代價(jià)換來(lái)系統(tǒng)更多的虛擬內(nèi)存,是否值得付出這樣的代價(jià)則需要從缺頁(yè)率、頁(yè)面大小等方面對(duì)系統(tǒng)性能的影響進(jìn)行分析。頁(yè)面調(diào)度性能虛擬存儲(chǔ)器管理以進(jìn)程運(yùn)行的時(shí)間增長(zhǎng)為代價(jià)換來(lái)系統(tǒng)1.缺頁(yè)率對(duì)系統(tǒng)性能的影響用p表示缺頁(yè)率,如果p
=
0,則不缺頁(yè);如果p
=
1,則始終缺頁(yè)。抖動(dòng):由于缺頁(yè)而引起的一種系統(tǒng)現(xiàn)象,即處理器頻繁地處理頁(yè)面的換出和調(diào)入,使得處理器實(shí)際處理程序的能力大大減小?!岸秳?dòng)”現(xiàn)象常在缺頁(yè)率非常高時(shí)發(fā)生。用st表示缺頁(yè)處理時(shí)間。缺頁(yè)處理時(shí)間包括從外存取相關(guān)頁(yè)面并將其放入內(nèi)存的時(shí)間。用ma表示對(duì)內(nèi)存一個(gè)頁(yè)面的訪問(wèn)時(shí)間。用vt表示有效訪問(wèn)時(shí)間。在非缺頁(yè)的情況下,vt
=
ma在缺頁(yè)率為p的情況下,vt=
(1
?
p)
×
ma
+
p
×
st
頁(yè)面調(diào)度對(duì)系統(tǒng)性能的影響分析1.缺頁(yè)率對(duì)系統(tǒng)性能的影響頁(yè)面調(diào)度對(duì)系統(tǒng)性能的影響分析在任何情況下,缺頁(yè)處理時(shí)間由下面三個(gè)主要部分構(gòu)成:(1)缺頁(yè)中斷服務(wù)時(shí)間;(2)讀頁(yè)面時(shí)間;(3)恢復(fù)進(jìn)程時(shí)間。通過(guò)精簡(jiǎn)指令而減少缺頁(yè)中斷服務(wù)和恢復(fù)進(jìn)程所花費(fèi)的時(shí)間,使它們位于1ms-100ms之間。
頁(yè)面調(diào)度對(duì)系統(tǒng)性能的影響分析在任何情況下,缺頁(yè)處理時(shí)間由下面三個(gè)主要部分構(gòu)成:頁(yè)面在實(shí)際應(yīng)用中,缺頁(yè)不只使得缺頁(yè)的進(jìn)程運(yùn)行減慢,還會(huì)影響其他進(jìn)程的運(yùn)行。如果一個(gè)進(jìn)程隊(duì)列阻塞等待某個(gè)設(shè)備,而該設(shè)備正用于一個(gè)缺頁(yè)的進(jìn)程,則等待設(shè)備的進(jìn)程會(huì)等待更長(zhǎng)的時(shí)間才能得到請(qǐng)求的設(shè)備。可見(jiàn),缺頁(yè)不只使得缺頁(yè)進(jìn)程本身的運(yùn)行減慢,還使得整個(gè)系統(tǒng)的運(yùn)行效率降低,系統(tǒng)性能下降。因此,在分配進(jìn)程物理塊和選擇置換算法上,需要周全考慮。頁(yè)面調(diào)度對(duì)系統(tǒng)性能的影響分析在實(shí)際應(yīng)用中,缺頁(yè)不只使得缺頁(yè)的進(jìn)程運(yùn)行減慢,還會(huì)影響其他進(jìn)2.對(duì)換空間處理對(duì)系統(tǒng)性能的影響訪問(wèn)磁盤(pán)上對(duì)換空間的速度比訪問(wèn)磁盤(pán)上文件系統(tǒng)更快。因?yàn)閷?duì)換空間比文件系統(tǒng)分配的磁盤(pán)塊更大,同時(shí)又不需要文件查詢(xún)和間接分配。這樣,系統(tǒng)可以采用在進(jìn)程開(kāi)始時(shí)將整個(gè)文件映像拷貝到對(duì)換區(qū),然后再?gòu)膶?duì)換區(qū)完成調(diào)入頁(yè)面的方法。頁(yè)面換入時(shí),直接從對(duì)換區(qū)調(diào)入。頁(yè)面換出時(shí),如果被修改過(guò),則需要寫(xiě)入對(duì)換區(qū);否則不需要寫(xiě)入對(duì)換區(qū)。因此,利用硬盤(pán)上的對(duì)換空間,加快對(duì)換空間的訪問(wèn)速度,可加快進(jìn)程頁(yè)面的調(diào)入與調(diào)出,減少頁(yè)面置換時(shí)間,提高系統(tǒng)性能。頁(yè)面調(diào)度對(duì)系統(tǒng)性能的影響分析2.對(duì)換空間處理對(duì)系統(tǒng)性能的影響頁(yè)面調(diào)度對(duì)系統(tǒng)性能的影響分析3.頁(yè)面大小對(duì)系統(tǒng)性能的影響頁(yè)面大小對(duì)性能的影響可以從以下幾個(gè)方面分析。
頁(yè)表由于每個(gè)作業(yè)運(yùn)行時(shí),頁(yè)表都需要存放在內(nèi)存,如果頁(yè)面大,則頁(yè)表會(huì)更小,頁(yè)表占用的內(nèi)存小。
從磁盤(pán)讀寫(xiě)頁(yè)面次數(shù)除內(nèi)存外,頁(yè)面也需要存放在磁盤(pán)上。如果頁(yè)面大,則系統(tǒng)從磁盤(pán)上讀入頁(yè)面到內(nèi)存的次數(shù)少,有利于提高I/O的效率。頁(yè)面調(diào)度對(duì)系統(tǒng)性能的影響分析3.頁(yè)面大小對(duì)系統(tǒng)性能的影響頁(yè)面調(diào)度對(duì)系統(tǒng)性能的影響分析
頁(yè)內(nèi)碎片在分頁(yè)的情況下,如果頁(yè)面小,則作業(yè)的內(nèi)存碎片少。在不考慮磁盤(pán)讀寫(xiě)頁(yè)面對(duì)頁(yè)面大小的影響,只考慮頁(yè)表和作業(yè)占用的內(nèi)存碎片情況下,理論上可以求得最佳頁(yè)面大小。如果用A表示用戶作業(yè)的平均長(zhǎng)度(單位為字節(jié)),L為頁(yè)面長(zhǎng)度(單位為字節(jié)),n為頁(yè)表項(xiàng)所需要的字節(jié)數(shù),每個(gè)作業(yè)的頁(yè)表占用的字節(jié)數(shù)為nA/L。假定作業(yè)的平均碎片為L(zhǎng)/2,則內(nèi)存附加的開(kāi)銷(xiāo)為:
K
=
nA
/
L
+
L/2對(duì)該公式求極小值,即對(duì)L求一階導(dǎo)數(shù),得到:頁(yè)面調(diào)度對(duì)系統(tǒng)性能的影響分析頁(yè)內(nèi)碎片頁(yè)面調(diào)度對(duì)系統(tǒng)性能的影響分析為最佳頁(yè)面長(zhǎng)度。通常情況下,頁(yè)表項(xiàng)所需要的字節(jié)數(shù)為常數(shù),如為8或4,頁(yè)面大小L與用戶作業(yè)的平均長(zhǎng)度成非線性增長(zhǎng)關(guān)系。如果系統(tǒng)運(yùn)行的作業(yè)較長(zhǎng),則頁(yè)面會(huì)較大。但是,通常意義下,頁(yè)面的基本大小由計(jì)算機(jī)處理器決定。如IBM370系列的頁(yè)面大小為2
048B或4
096B,IBM400的頁(yè)面大小為512B,Motorola68040的頁(yè)面大小為4
096B,Pentium的頁(yè)面大小為4
096B。頁(yè)面調(diào)度對(duì)系統(tǒng)性能的影響分析為最佳頁(yè)面長(zhǎng)度。通常情況下,頁(yè)表項(xiàng)所需要的字節(jié)數(shù)為常4.編制程序?qū)θ表?yè)率的影響在程序編制過(guò)程中,程序員應(yīng)該注意程序的局部性。程序編制方法不同,產(chǎn)生缺頁(yè)率的不同,對(duì)系統(tǒng)性能的影響也不同。如果程序員在編程時(shí)考慮了可能引起的缺頁(yè)中斷,并使系統(tǒng)運(yùn)行時(shí)盡量少地產(chǎn)生缺頁(yè)中斷,則會(huì)提高系統(tǒng)的性能。
頁(yè)面調(diào)度對(duì)系統(tǒng)性能的影響分析4.編制程序?qū)θ表?yè)率的影響頁(yè)面調(diào)度對(duì)系統(tǒng)性能的影響分析請(qǐng)求分段存儲(chǔ)管理方式將用戶程序的所有段首先放在外存中,當(dāng)用戶程序被執(zhí)行時(shí),系統(tǒng)再逐步從外存調(diào)入所需要的段進(jìn)入內(nèi)存。請(qǐng)求分段的硬件支持段表機(jī)制缺段中斷機(jī)制地址變換機(jī)構(gòu)請(qǐng)求分段存儲(chǔ)管理方式將用戶程序的所有段首先放在外存中,當(dāng)用戶請(qǐng)求分段存儲(chǔ)管理方式段表機(jī)制段名段長(zhǎng)段基址存取方式訪問(wèn)字段A修改位M存在位P增補(bǔ)位外存地址存取方式:標(biāo)識(shí)段存取屬性訪問(wèn)字段:段是否被訪問(wèn)修改位:段進(jìn)入內(nèi)存后是否被修改過(guò)存在位:段是否在內(nèi)存增補(bǔ)位:請(qǐng)求分段系統(tǒng)的特有字段,標(biāo)識(shí)在運(yùn)行過(guò)程中是否有過(guò)動(dòng)態(tài)增長(zhǎng)外存地址:段在外存的起始地址請(qǐng)求分段存儲(chǔ)管理方式段表機(jī)制段名段長(zhǎng)段基址存取請(qǐng)求分段存儲(chǔ)管理方式缺段中斷機(jī)構(gòu)請(qǐng)求分段存儲(chǔ)管理方式缺段中斷機(jī)構(gòu)請(qǐng)求分段存儲(chǔ)管理方式地址變化機(jī)構(gòu)否否否是是是請(qǐng)求分段存儲(chǔ)管理方式地址變化機(jī)構(gòu)否否否是是是請(qǐng)求分段存儲(chǔ)管理方式分段的共享和保護(hù)共享段表共享進(jìn)程計(jì)數(shù)存取控制字段段號(hào):不同的進(jìn)程可以使用不同的段號(hào)去共享段段名段長(zhǎng)內(nèi)存地址狀態(tài)外存地址共享進(jìn)程計(jì)數(shù)狀態(tài)進(jìn)程名進(jìn)程號(hào)段號(hào)存取控制請(qǐng)求分段存儲(chǔ)管理方式分段的共享和保護(hù)段名段長(zhǎng)內(nèi)存地址狀態(tài)外存請(qǐng)求分段存儲(chǔ)管理方式分段的共享和保護(hù)共享段的分配與回收分配:第一次訪問(wèn):分配內(nèi)存,(1)增加共享段表;(2)修改進(jìn)程段表。第二次訪問(wèn):(1)修改共享段表;(2)修改進(jìn)程段表?;厥眨海?)count=0(2)count<>0請(qǐng)求分段存儲(chǔ)管理方式分段的共享和保護(hù)請(qǐng)求分段存儲(chǔ)管理方式分段的共享和保護(hù)分段保護(hù)越界檢查:段號(hào)越界檢查;段內(nèi)偏移越界檢查。存取控制檢查:R;R/W;E環(huán)保護(hù)機(jī)構(gòu)(1)內(nèi)環(huán)可訪問(wèn)外環(huán)數(shù)據(jù);(2)外環(huán)可請(qǐng)求內(nèi)環(huán)服務(wù)。請(qǐng)求分段存儲(chǔ)管理方式分段的共享和保護(hù)Windows2000/XP運(yùn)行在IntelPentiumCPU硬件平臺(tái)。下面介紹IntelPentium的工作模式。
IntelPentiumCPU提供三種工作模式:實(shí)地址模式(realmode)、虛地址模式(又稱(chēng)為保護(hù)模式,protectionmode)和虛擬模式(virtualmode)。
實(shí)地址模式采用段式存儲(chǔ)器管理或單一連續(xù)存儲(chǔ)器管理,不啟用分頁(yè)機(jī)制,只能尋址1MB地址空間。DOS操作系統(tǒng)采用這種模式。
虛地址模式采用三種內(nèi)存管理方式:段式虛擬存儲(chǔ)器管理、頁(yè)式虛擬存儲(chǔ)器管理和段頁(yè)式虛擬存儲(chǔ)器管理。Linux和Windows操作系統(tǒng)采用這種模式。
虛擬模式是在保護(hù)方式下的實(shí)地址模式的仿真。Windows2000/XP系統(tǒng)存儲(chǔ)器管理實(shí)例Windows2000/XP運(yùn)行在IntelWindow2000/XP采用請(qǐng)求頁(yè)式虛擬存儲(chǔ)管理,提供32位的虛擬地址,為每一個(gè)進(jìn)程提供一個(gè)受保護(hù)的4G虛擬地址空間。虛擬地址空間布局為低2G的地址空間為用戶程序區(qū),高2G的地址空間為操作系統(tǒng)區(qū),如圖所示。Windows系統(tǒng)虛擬存儲(chǔ)器地址布局基于分頁(yè)管理的Windows2000/XPWindow2000/XP采用請(qǐng)求頁(yè)式虛擬存儲(chǔ)管理,提供3系統(tǒng)區(qū)又分為固定頁(yè)面區(qū)、頁(yè)交換區(qū)和操作系統(tǒng)駐留區(qū)。固定頁(yè)面區(qū)中存放關(guān)鍵的系統(tǒng)代碼,頁(yè)面不可與外存對(duì)換;頁(yè)交換區(qū)存放非常駐系統(tǒng)代碼和數(shù)據(jù),可以與外存進(jìn)行頁(yè)面對(duì)換;操作系統(tǒng)駐留區(qū)存放操作系統(tǒng)內(nèi)核、執(zhí)行體和引導(dǎo)驅(qū)動(dòng)程序以及硬件抽象代碼層,非常重要永不失效,為了加快運(yùn)行速度,這一區(qū)的尋址由硬件直接映射。另外,在操作系統(tǒng)引導(dǎo)時(shí),也可以選擇另一種地址分配方式:3GB用戶程序區(qū)和1GB操作系統(tǒng)區(qū)。這種情況主要用于運(yùn)行大的用戶程序?;诜猪?yè)管理的Windows2000/XP系統(tǒng)區(qū)又分為固定頁(yè)面區(qū)、頁(yè)交換區(qū)和操作系統(tǒng)駐留區(qū)?;诜猪?yè)管1.頁(yè)表在Windows2000/XP系統(tǒng)中的頁(yè)表如下圖所示。Windows2000/XP系統(tǒng)中的頁(yè)表基于分頁(yè)管理的Windows2000/XP1.頁(yè)表Windows2000/XP系統(tǒng)中的頁(yè)表基于分頁(yè)管2.邏輯地址到物理地址的變換在Windows2000/XP系統(tǒng)中的32位邏輯地址被劃分為:頁(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í)現(xiàn)進(jìn)程的邏輯地址到物理地址的變換,如下圖所示。基于分頁(yè)管理的Windows2000/XP2.邏輯地址到物理地址的變換基于分頁(yè)管理的Windows2Windows系統(tǒng)的二級(jí)頁(yè)表結(jié)構(gòu)物理塊號(hào)塊內(nèi)偏移第一級(jí)頁(yè)表頁(yè)表目錄邏輯地址
31222112110頁(yè)表目錄索引頁(yè)表頁(yè)索引頁(yè)面第二級(jí)頁(yè)表頁(yè)表物理地址基于分頁(yè)管理的Windows2000/XPWindows系統(tǒng)的二級(jí)頁(yè)表結(jié)構(gòu)物理塊號(hào)頁(yè)目錄用來(lái)指向進(jìn)程頁(yè)表地址。每個(gè)進(jìn)程都擁有自己的頁(yè)目錄。在地址變換時(shí),操作系統(tǒng)從運(yùn)行進(jìn)程的進(jìn)程控制塊中得到進(jìn)程頁(yè)目錄的起
溫馨提示
- 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 施工單位關(guān)于施工進(jìn)度報(bào)告的工作聯(lián)系函
- 跨越障礙培養(yǎng)學(xué)生創(chuàng)新能力的有效措施
- 跨領(lǐng)域視角下的安全工作與生產(chǎn)計(jì)劃整合
- DB3702T 45.1-2024地理標(biāo)志產(chǎn)品 平度牛肉 第1部分:生產(chǎn)技術(shù)規(guī)程
- 二手貨物買(mǎi)賣(mài)合同范文
- 中外合資企業(yè)職工住房公積金合同范本
- 中外合作經(jīng)營(yíng)企業(yè)合同范本
- 中外合資飯店租賃合同模板
- 專(zhuān)利實(shí)施許可合同協(xié)議
- 中外原材料供應(yīng)合同樣本
- 西安經(jīng)濟(jì)技術(shù)開(kāi)發(fā)區(qū)管委會(huì)招聘筆試真題2024
- 六年級(jí)2025寒假特色作業(yè)
- (八省聯(lián)考)云南省2025年普通高校招生適應(yīng)性測(cè)試 物理試卷(含答案解析)
- 2025藥劑科工作人員工作計(jì)劃
- 春節(jié)節(jié)后安全教育培訓(xùn)
- 2025年新高考數(shù)學(xué)一輪復(fù)習(xí)第5章重難點(diǎn)突破02向量中的隱圓問(wèn)題(五大題型)(學(xué)生版+解析)
- 水土保持方案投標(biāo)文件技術(shù)部分
- 印刷品質(zhì)量保證協(xié)議書(shū)
- 小紅書(shū)食用農(nóng)產(chǎn)品承諾書(shū)示例
- 2023年浙江省公務(wù)員錄用考試《行測(cè)》題(A類(lèi))
- CQI-23模塑系統(tǒng)評(píng)估審核表-中英文
評(píng)論
0/150
提交評(píng)論