操作系統(tǒng)5 存儲(chǔ)器管理

五、存儲(chǔ)器管理
1、存儲(chǔ)器的層次結(jié)構(gòu)
■??多層結(jié)構(gòu)存儲(chǔ)器系統(tǒng):通用計(jì)算機(jī)而言,存儲(chǔ)層次至少應(yīng)具有三級(jí):最高層為CPU寄存器,中間為主存,最底層是輔存。

■??存儲(chǔ)管理的任務(wù)和功能
1.主要任務(wù):為多道程序的并發(fā)提供良好的環(huán)境、提高存儲(chǔ)器的利用率、邏輯上擴(kuò)充主存空間、方便用戶使用存儲(chǔ)器。
2.存儲(chǔ)管理必須具備的功能:存儲(chǔ)空間的分配和回收、地址映射、存儲(chǔ)共享與保護(hù)、主存擴(kuò)充。
2、存儲(chǔ)分配形式
存儲(chǔ)分配解決多道程序之間共享主存的存儲(chǔ)空間。
1.直接存儲(chǔ)分配方式:程序員使用存儲(chǔ)器的物理地址進(jìn)行編程,以確保各程序之間互不重疊。
缺點(diǎn):用戶編程不方便;存儲(chǔ)器的利用率不高。
2.靜態(tài)存儲(chǔ)分配方式:程序員使用存儲(chǔ)器的邏輯地址進(jìn)行編程,當(dāng)連接程序?qū)λ鼈冞M(jìn)行裝入、連接時(shí),才確定它們?cè)谥鞔嬷械?strong>物理地址,從而產(chǎn)生可執(zhí)行程序。這種分配方式在進(jìn)行裝入、連接時(shí),要求系統(tǒng)必須分配其要求的全部存儲(chǔ)空間,否則不能裝入該用戶程序。一旦裝入,直到程序結(jié)束時(shí)才釋放。
缺點(diǎn):存儲(chǔ)器不能有效共享;不能實(shí)現(xiàn)對(duì)存儲(chǔ)器的動(dòng)態(tài)擴(kuò)展。
3.動(dòng)態(tài)存儲(chǔ)分配方式:現(xiàn)代操作系統(tǒng)通常采用的存儲(chǔ)管理方法。動(dòng)態(tài)存儲(chǔ)分配通常可采用覆蓋和交換技術(shù)實(shí)現(xiàn)。
特點(diǎn):在進(jìn)行裝入、連接時(shí),不要求一次性將整個(gè)程序裝入主存中,可根據(jù)執(zhí)行需要一部分一部分的裝入;同時(shí),已裝入主存的程序不在執(zhí)行時(shí),系統(tǒng)可以回收該程序占據(jù)的存儲(chǔ)空間。
3、重定位:將邏輯地址轉(zhuǎn)換稱(chēng)物理地址。
■?? 地址空間和存儲(chǔ)空間:源程序經(jīng)過(guò)編譯或是匯編之后,產(chǎn)生了目標(biāo)程序,而編譯程序總是從0號(hào)地址單元開(kāi)始,為目標(biāo)程序指令順序分配地址,我們稱(chēng)為相對(duì)地址或邏輯地址,這些地址的集合稱(chēng)為地址空間。存儲(chǔ)空間就是指主存中一系列存儲(chǔ)信息的物理單元的集合,這些物理單元的編號(hào)稱(chēng)為物理地址或絕對(duì)地址。
■??重定位:
?(1)靜態(tài)地址重定位:指用戶程序在裝入是由裝配程序一次完成,即地址變換只是在裝入時(shí)一次完成,以后不在改變。
特點(diǎn):實(shí)現(xiàn)簡(jiǎn)單。
不足:必須分配一個(gè)連續(xù)的存儲(chǔ)空間;難以實(shí)現(xiàn)程序和數(shù)據(jù)共享。

?(2)動(dòng)態(tài)地址重定位
必須有硬件地址變換機(jī)構(gòu)的支持,即須在系統(tǒng)中增設(shè)一個(gè)重定位寄存器,用它來(lái)存放程序(數(shù)據(jù))在內(nèi)存中的起始地址。程序在執(zhí)行時(shí),真正訪問(wèn)的內(nèi)存地址是相對(duì)地址與重定位寄存器中的地址相加而形成的。
特點(diǎn):1.執(zhí)行時(shí)程序可以在主存中移動(dòng),對(duì)于移動(dòng)后的程序,
只需將新的起始地址寫(xiě)入重定位寄存器即可。2.利于程序段共享。3.為實(shí)現(xiàn)虛擬存儲(chǔ)管理提供了基礎(chǔ)。
缺點(diǎn):1.實(shí)現(xiàn)存儲(chǔ)管理的軟件比較復(fù)雜。2.需要硬件支持。

4、覆蓋與交換
覆蓋與交換技術(shù)是從邏輯上擴(kuò)充主存的二種方法。
1.覆蓋技術(shù):把程序劃分成若干功能相互獨(dú)立的程序段,并且讓那些不會(huì)同時(shí)被CPU執(zhí)行的程序段共享同一主存區(qū)。通常這些程序段保存在外存中,當(dāng)CPU要求某一程序段執(zhí)行時(shí),才將該程序段調(diào)入主存并覆蓋某程序段。從用戶的角度看,主存擴(kuò)大了。

2.交換技術(shù):也稱(chēng)為對(duì)換技術(shù),最早用于麻省理工學(xué)院的單用戶分時(shí)系統(tǒng)CTSS中。由于當(dāng)時(shí)計(jì)算機(jī)的內(nèi)存都非常小,為了使該系統(tǒng)能分時(shí)運(yùn)行多個(gè)用戶程序而引入了交換技術(shù)。系統(tǒng)把所有的用戶作業(yè)存放在磁盤(pán)上,每次只能調(diào)入一個(gè)作業(yè)進(jìn)入內(nèi)存,當(dāng)該作業(yè)的一個(gè)時(shí)間片用完時(shí),將它調(diào)至外存的后備隊(duì)列上等待,再?gòu)暮髠潢?duì)列上將另一個(gè)作業(yè)調(diào)入內(nèi)存。這就是最早出現(xiàn)的分時(shí)系統(tǒng)中所用的交換技術(shù)。
交換分為如下兩類(lèi):(1) 整體交換。(2) 頁(yè)面(分段)交換。
3. 交換空間的分配與回收
由于交換分區(qū)的分配采用的是連續(xù)分配方式,因而交換空間的分配與回收與動(dòng)態(tài)分區(qū)方式時(shí)的內(nèi)存分配與回收方法雷同。其分配算法可以是首次適應(yīng)算法、循環(huán)首次適應(yīng)算法或最佳適應(yīng)算法等。
3、單道環(huán)境下的存儲(chǔ)管理
??
在單道程序環(huán)境下,存儲(chǔ)器管理方式是把內(nèi)存分為系統(tǒng)區(qū)、用戶區(qū)和剩余空閑區(qū)3部分,系統(tǒng)區(qū)僅提供給OS使用,它通常是放在內(nèi)存的低址部分。而在用戶區(qū)內(nèi)存中,僅裝有一道用戶程序,即整個(gè)內(nèi)存的用戶空間由該程序獨(dú)占。這樣的存儲(chǔ)器分配方式被稱(chēng)為單一連續(xù)分配方式。
特點(diǎn):1.管理簡(jiǎn)單,只需很少的軟件硬件支持。2.便于用戶了解使用。
缺點(diǎn): 1. 存儲(chǔ)空間浪費(fèi)大。2. CPU效率低。3. 程序和數(shù)據(jù)不能共享。4. I/O設(shè)備利用率低。
??

?
4、分區(qū)存儲(chǔ)管理
■?? 固定分區(qū)法
1.分區(qū)方法:
(1) 分區(qū)大小相等(指所有的內(nèi)存分區(qū)大小相等)。(2) 分區(qū)大小不等。
2. 內(nèi)存分配:為了便于內(nèi)存分配,通常將分區(qū)按其大小進(jìn)行排隊(duì),并為之建立一張分區(qū)使用表,其中各表項(xiàng)包括每個(gè)分區(qū)的起始地址、大小及狀態(tài)(是否已分配)

3. 缺點(diǎn):固定分區(qū)存儲(chǔ)分配技術(shù),分區(qū)的大小是在系統(tǒng)初始化時(shí)進(jìn)行的。但用戶作業(yè)占據(jù)的存儲(chǔ)空間,不可能剛好等于某個(gè)分區(qū)的大小,所以在分配的分區(qū)中,通常都有一部分未被進(jìn)程占用浪費(fèi)的存儲(chǔ)空間,我們稱(chēng)這部分空間“碎片”
■?? 動(dòng)態(tài)分區(qū)法
1. 基本概念:采用動(dòng)態(tài)分區(qū)分配方式,在系統(tǒng)啟動(dòng)時(shí),除了操作系統(tǒng)常駐主存部分外,只存在一個(gè)空閑分區(qū),分配程序?qū)⒃撘来蝿澐纸o調(diào)度程序選中的進(jìn)程,并且分配的大小可隨用戶進(jìn)程對(duì)主存的要求而改變,這種分配方式不會(huì)產(chǎn)生“碎片” 現(xiàn)象,從而大大提高的主存的利用率。

2. 動(dòng)態(tài)分區(qū)分配與回收
動(dòng)態(tài)分區(qū)的分配方式:
(1)首次適應(yīng)(first fit,F(xiàn)F)算法:分配第一個(gè)大小滿足要求分區(qū)
(2)最佳適應(yīng)(best fit,BF)算法:分配滿足要求的最小分區(qū)
(3)最壞適應(yīng)(worst fit,WF)算法:與最佳適應(yīng)算法相反,挑選一個(gè)最大空閑區(qū),從中分一部分存儲(chǔ)空間給作業(yè)使用
■?? 動(dòng)態(tài)分區(qū)的回收

■?? 地址轉(zhuǎn)換與存儲(chǔ)保護(hù)

■?? 移動(dòng)技術(shù)

■?? 分區(qū)存儲(chǔ)管理優(yōu)缺點(diǎn)
優(yōu)點(diǎn):
1. 實(shí)現(xiàn)了多道程序設(shè)計(jì),從而提高了系統(tǒng)資源的利用率。
2. 系統(tǒng)要求的硬件支持少,管理簡(jiǎn)單,實(shí)現(xiàn)容易。
缺點(diǎn):
1. 由于作業(yè)裝入時(shí)的連續(xù)性,導(dǎo)致主存的利用率不高,采用移動(dòng)技術(shù)可以提高主存的利用率,但增加了系統(tǒng)的開(kāi)銷(xiāo)。
2. 主存的擴(kuò)充只能采用覆蓋與交換技術(shù),無(wú)法真正實(shí)現(xiàn)虛擬存儲(chǔ)。
5、頁(yè)式存儲(chǔ)管理
■?? 基本原理:
1. 將主存劃分成多個(gè)大小相等的頁(yè)框。
2. 受頁(yè)架尺寸限制,程序的邏輯地址也自然分成頁(yè)。
3. 不同的頁(yè)可以放在不同的頁(yè)框中,不需要連續(xù)。
■?? 優(yōu)越性:
1. 實(shí)現(xiàn)連續(xù)存儲(chǔ)到非連續(xù)存儲(chǔ)的飛躍,為實(shí)現(xiàn)虛擬存儲(chǔ)打下了基礎(chǔ)。
2. 解決了主存中的“碎片”問(wèn)題。
■??缺點(diǎn):
(1)要求有硬件支持,如動(dòng)態(tài)地址變換,缺頁(yè)中斷處理機(jī)構(gòu);
(2)必須提供相應(yīng)的數(shù)據(jù)結(jié)構(gòu)來(lái)管理存儲(chǔ)器,而這些數(shù)據(jù)結(jié)構(gòu)不僅占用了部分儲(chǔ)存空間,同時(shí)它們的建立和管理也要花費(fèi)CPU的時(shí)間。
(3)雖能解決了分區(qū)管理中區(qū)間的零頭問(wèn)題,但在頁(yè)式存儲(chǔ)管理系統(tǒng)中的頁(yè)內(nèi)的零頭問(wèn)題仍然存在。
(4)對(duì)于靜態(tài)頁(yè)式存儲(chǔ)管理系統(tǒng),用戶作業(yè)要求一次性裝入主存,將給用戶作業(yè)的運(yùn)行帶來(lái)一定的限制。
(5)在請(qǐng)求頁(yè)式存儲(chǔ)管理中,需要進(jìn)行缺頁(yè)中斷處理,特別是請(qǐng)求調(diào)頁(yè)的算法,若選擇不當(dāng),還有可能出現(xiàn)“抖動(dòng)” 現(xiàn)象,增加了系統(tǒng)開(kāi)銷(xiāo),降低了系統(tǒng)的效率。
■?? 分類(lèi):靜態(tài)頁(yè)式存儲(chǔ)管理、虛擬頁(yè)式存儲(chǔ)管理
■??靜態(tài)頁(yè)式存儲(chǔ)管理
用戶作業(yè)執(zhí)行前,將該作業(yè)的程序和數(shù)據(jù)全部裝入到主存中,然后,操作系統(tǒng)通過(guò)頁(yè)表和硬件地址變換機(jī)構(gòu)實(shí)現(xiàn)邏輯地址到物理地址的轉(zhuǎn)換。
5.1主存頁(yè)架的分配與回收
1、頁(yè)表:在頁(yè)式系統(tǒng)中,允許將進(jìn)程的各個(gè)頁(yè)離散地存儲(chǔ)在內(nèi)存的任一物理塊中,為保證進(jìn)程仍然能夠正確地運(yùn)行,即能在內(nèi)存中找到每個(gè)頁(yè)面所對(duì)應(yīng)的物理塊,系統(tǒng)又為每個(gè)進(jìn)程建立了一張頁(yè)面映像表,簡(jiǎn)稱(chēng)頁(yè)表。

2、請(qǐng)求表:當(dāng)系統(tǒng)有多個(gè)作業(yè)或進(jìn)程時(shí),系統(tǒng)必須知道每個(gè)作業(yè)或進(jìn)程的頁(yè)表起始地址和長(zhǎng)度,才能進(jìn)行主存分配和地址變換。

3、存儲(chǔ)頁(yè)框表:描述主存空間的分配情況,頁(yè)框表指出了各頁(yè)框是否已分配,以及未被分配的頁(yè)框總數(shù)。

4、頁(yè)框分配與回收算法:
1)分配:首先,從請(qǐng)求表中查出作業(yè)和進(jìn)程數(shù)要求的頁(yè)框數(shù),然后由存儲(chǔ)頁(yè)框表檢查是否有足夠的空閑頁(yè)框,若沒(méi)有,則本次無(wú)法分配;如果有,則分配并設(shè)置頁(yè)表,并填寫(xiě)請(qǐng)求表中的相應(yīng)表項(xiàng)(頁(yè)表起址、頁(yè)表長(zhǎng)度和狀態(tài)),之后,再按一定的查詢算法搜索出所要求的空閑頁(yè)框,并將對(duì)應(yīng)的頁(yè)框號(hào)填入頁(yè)表中。
2)回收:頁(yè)框的回收算法也較為簡(jiǎn)單,當(dāng)進(jìn)程執(zhí)行完畢時(shí),根據(jù)進(jìn)程頁(yè)表中登記的頁(yè)框號(hào),將這些頁(yè)框插入到存儲(chǔ)頁(yè)框表中,使之成為空閑頁(yè)框,最后拆除該進(jìn)程所對(duì)應(yīng)的頁(yè)表即可。
5.2頁(yè)式地址變換
進(jìn)程在運(yùn)行期間,需要對(duì)程序和數(shù)據(jù)的地址進(jìn)行變換,即將用戶地址空間中的邏輯地址變換為內(nèi)存空間中的物理地址,由于它執(zhí)行的頻率非常高,每條指令的地址都需要進(jìn)行變換,因此需要采用硬件來(lái)實(shí)現(xiàn)。頁(yè)表功能是由一組專(zhuān)門(mén)的寄存器來(lái)實(shí)現(xiàn)的。一個(gè)頁(yè)表項(xiàng)用一個(gè)寄存器。

5.3快表
為提高地址轉(zhuǎn)換速度,設(shè)置一個(gè)專(zhuān)用的高速存儲(chǔ)器(Cache),用來(lái)存放頁(yè)表的一部分,我們稱(chēng)這部分頁(yè)表為快表。

有效訪問(wèn)時(shí)間(Effective Access Time,EAT):假設(shè)λ表示查找快表所需時(shí)間,а表示命中率,t表示訪問(wèn)內(nèi)存所需時(shí)間。
那么只用頁(yè)表:EAT?=?t?+?t?=?2t
引入快表后:EAT=а×λ+(t+λ)(1—а)+t=2t+λ—t×а
5.4虛擬頁(yè)式存儲(chǔ)器
1. 常規(guī)存儲(chǔ)管理方式的特征
(1) 一次性:在作業(yè)運(yùn)行前,要求將全部的內(nèi)容一次性裝入主存。
(2) 駐留性:作業(yè)裝入主存后,一直占據(jù)主存的部分空間,一直要等作業(yè)運(yùn)行結(jié)束。
2. 局部性原理
(1) 時(shí)間局限性。表現(xiàn)在如果程序中某一條指令一旦執(zhí)行,則在不久以后還可能被繼續(xù)執(zhí)行,同樣,若某一個(gè)數(shù)據(jù)被訪問(wèn)后不久,還可能被繼續(xù)訪問(wèn),其典型的情況是程序中存在著大量的循環(huán)。
(2) 空間局限性。表現(xiàn)在如果程序訪問(wèn)了某一個(gè)程序單元,其附近的存儲(chǔ)單元?jiǎng)t不久也會(huì)被訪問(wèn),即程序在一段時(shí)間內(nèi)訪問(wèn)的地址,可能集中在一定的范圍內(nèi),其典型的情況是程序順序執(zhí)行。
3. 虛擬存儲(chǔ)器的基本思想
基于局部性原理可知,應(yīng)用程序在運(yùn)行之前沒(méi)有必要將之全部裝入內(nèi)存,而僅須將那些當(dāng)前要運(yùn)行的少數(shù)頁(yè)面或段先裝入內(nèi)存便可運(yùn)行,其余部分暫留在盤(pán)上。
4. 虛擬存儲(chǔ)器的特征
(1) 多次性。用戶程序在運(yùn)行前并不是一次將全部?jī)?nèi)容裝入到內(nèi)存中,而是在程序的運(yùn)行過(guò)程中,系統(tǒng)不斷的對(duì)程序和數(shù)據(jù)部分的調(diào)入調(diào)出,完成程序的多處裝入工作。
(2) 對(duì)換性。程序在運(yùn)行期間,允許將暫時(shí)不用的程序和數(shù)據(jù)調(diào)出主存(換出),放入外存的對(duì)換區(qū)中,但以后需要時(shí)再將他調(diào)了主存(換入),這便是虛擬存儲(chǔ)器的換入、換出操作。
5.4頁(yè)式存儲(chǔ)管理技術(shù)實(shí)現(xiàn)虛擬存儲(chǔ)器
1.技術(shù)支持
(1)硬件支持:請(qǐng)求分頁(yè)的頁(yè)表機(jī)制、缺頁(yè)中斷機(jī)構(gòu)、地址變換機(jī)構(gòu)
(2)實(shí)現(xiàn)請(qǐng)求分頁(yè)的軟件
2.兩級(jí)頁(yè)表(Two-Level Page Table)

3.多級(jí)頁(yè)表:對(duì)于32位的機(jī)器,采用兩級(jí)頁(yè)表結(jié)構(gòu)是合適的,但對(duì)于64位及以上的機(jī)器,可能需要使用多級(jí)頁(yè)表結(jié)構(gòu)。
4.缺頁(yè)中斷機(jī)構(gòu):在頁(yè)式虛擬存儲(chǔ)系統(tǒng)中,每當(dāng)要訪問(wèn)的頁(yè)面不在內(nèi)存時(shí),便產(chǎn)生一個(gè)缺頁(yè)中斷,請(qǐng)求操作系統(tǒng)將所缺的頁(yè)調(diào)入內(nèi)存,此時(shí)應(yīng)將缺頁(yè)的進(jìn)程阻塞,如果內(nèi)存中有空閑塊,則分配一個(gè)塊,將要調(diào)入的頁(yè)裝入該塊,并修改頁(yè)表中相應(yīng)的頁(yè)表項(xiàng),若此時(shí)內(nèi)存中沒(méi)有空閑塊,只要淘汰某頁(yè)。缺頁(yè)中斷與一般中斷區(qū)別在于:(1) 在指令執(zhí)行期間產(chǎn)生和處理中斷信號(hào)。(2) 一條指令在執(zhí)行期間可能產(chǎn)生多次缺頁(yè)中斷
5.地址變換機(jī)構(gòu):地址變換機(jī)構(gòu)是在頁(yè)式系統(tǒng)地址變換機(jī)構(gòu)的基礎(chǔ)上,為實(shí)現(xiàn)虛擬存儲(chǔ)器,再增加了某些功能所形成的,如產(chǎn)生和處理缺頁(yè)中斷,以及從內(nèi)存中換出一頁(yè)的功能等等。

5.5頁(yè)面置換
1.調(diào)頁(yè)策略
(1) 預(yù)調(diào)頁(yè)策略
預(yù)調(diào)頁(yè)策略的優(yōu)點(diǎn)在于,當(dāng)在外存上查找一頁(yè)時(shí)需經(jīng)歷較長(zhǎng)時(shí)間,如果進(jìn)程的許多頁(yè)是存放在外存的一個(gè)連續(xù)區(qū)域中,一次調(diào)入若干相鄰的頁(yè),要比每次調(diào)入一頁(yè)更高效。
(2) 請(qǐng)求調(diào)頁(yè)策略
當(dāng)進(jìn)程運(yùn)行中需要訪問(wèn)某部分程序和數(shù)據(jù),而其所在頁(yè)面又不在主存時(shí),立即提出請(qǐng)求,由系統(tǒng)將其所需頁(yè)面調(diào)入主存,請(qǐng)求調(diào)頁(yè)策略比較容易實(shí)現(xiàn),故在目前的頁(yè)式虛擬存儲(chǔ)系統(tǒng)當(dāng)中,大多采用此策略,也稱(chēng)之為請(qǐng)求分頁(yè)系統(tǒng)。
2.分配策略
在請(qǐng)求分頁(yè)系統(tǒng)中,可采取兩種內(nèi)存分配策略,即固定和可變分配策略。在進(jìn)行置換時(shí),也可采取兩種策略,即全局置換和局部置換。于是可組合出以下三種適用的策略。
1) 固定分配局部置換(Fixed Allocation,Local Replacement)
2) 可變分配全局置換(Variable Allocation,Global Replacement)
3) 可變分配局部置換(Variable Allocation,Local Replacement)
3.缺頁(yè)率
假設(shè)一個(gè)進(jìn)程的邏輯空間為n頁(yè),系統(tǒng)為其分配的內(nèi)存物理塊數(shù)為m(m≤n)。如果在進(jìn)程的運(yùn)行過(guò)程中,訪問(wèn)頁(yè)面成功(即所訪問(wèn)頁(yè)面在內(nèi)存中)的次數(shù)為S,訪問(wèn)頁(yè)面失敗(即所訪問(wèn)頁(yè)面不在內(nèi)存中,需要從外存調(diào)入)的次數(shù)為F,則該進(jìn)程總的頁(yè)面訪問(wèn)次數(shù)為A?=?S?+?F,那么該進(jìn)程在其運(yùn)行過(guò)程中的缺頁(yè)率即為:

4. 頁(yè)面置換算法
(1)最佳(Optimal)置換算法:最佳置換算法是由Belady于1966年提出的一種理論上的算法。其所選擇的被淘汰頁(yè)面將是以后永不使用的,或許是在最長(zhǎng)(未來(lái))時(shí)間內(nèi)不再被訪問(wèn)的頁(yè)面。采用最佳置換算法通??杀WC獲得最低的缺頁(yè)率。但由于人們目前還無(wú)法預(yù)知,一個(gè)進(jìn)程在內(nèi)存的若干個(gè)頁(yè)面中,哪一個(gè)頁(yè)面是未來(lái)最長(zhǎng)時(shí)間內(nèi)不再被訪問(wèn)的,因而該算法是無(wú)法實(shí)現(xiàn)的,但可以利用該算法去評(píng)價(jià)其它算法。

發(fā)生缺頁(yè)中斷的次數(shù)為9,頁(yè)面置換的次數(shù)為6,缺頁(yè)中斷率為:9/20=45%
(2)先進(jìn)先出(FIFO)頁(yè)面置換算法:該算法總是淘汰最先進(jìn)入內(nèi)存的頁(yè)面,即選擇在內(nèi)存中駐留時(shí)間最久的頁(yè)面予以淘汰。

發(fā)生缺頁(yè)中斷的次數(shù)為15,頁(yè)面置換的次數(shù)為12,缺頁(yè)中斷率為:15/20=75%
(3) 最近最久未使用置換算法LRU

發(fā)生缺頁(yè)中斷的次數(shù)為12,頁(yè)面置換的次數(shù)為9,缺頁(yè)中斷率為:12/20=60%
5.6虛擬頁(yè)式存儲(chǔ)管理系統(tǒng)的性能分析
(1)多道程序度與處理機(jī)的利用率
由于虛擬存儲(chǔ)器系統(tǒng)能從邏輯上擴(kuò)大內(nèi)存,這時(shí),只需裝入一個(gè)進(jìn)程的部分程序和數(shù)據(jù)便可開(kāi)始運(yùn)行,故人們希望在系統(tǒng)中能運(yùn)行更多的進(jìn)程,即增加多道程序度,以提高處理機(jī)的利用率。

(2)產(chǎn)生“抖動(dòng)”的原因:同時(shí)在系統(tǒng)中運(yùn)行的進(jìn)程太多,由此分配給每一個(gè)進(jìn)程的物理塊太少,不能滿足進(jìn)程正常運(yùn)行的基本要求,致使每個(gè)進(jìn)程在運(yùn)行時(shí),頻繁地出現(xiàn)缺頁(yè),必須請(qǐng)求系統(tǒng)將所缺之頁(yè)調(diào)入內(nèi)存。這會(huì)使得在系統(tǒng)中排隊(duì)等待頁(yè)面調(diào)進(jìn)/調(diào)出的進(jìn)程數(shù)目增加。顯然,對(duì)磁盤(pán)的有效訪問(wèn)時(shí)間也隨之急劇增加,造成每個(gè)進(jìn)程的大部分時(shí)間都用于頁(yè)面的換進(jìn)/換出,而幾乎不能再去做任何有效的工作,從而導(dǎo)致發(fā)生處理機(jī)的利用率急劇下降并趨于0的情況。我們稱(chēng)此時(shí)的進(jìn)程是處于“抖動(dòng)”狀態(tài)。

4)“抖動(dòng)”的預(yù)防方法
采取局部置換策略:在頁(yè)面分配和置換策略中,如果采取的是可變分配方式,則為了預(yù)防發(fā)生“抖動(dòng)”,可采取局部置換策略。
5.6段式及段頁(yè)式存儲(chǔ)管理
分頁(yè)管理方式是從計(jì)算機(jī)的角度考慮設(shè)計(jì)的,以提高內(nèi)存的利用率,提升計(jì)算機(jī)的性能,且分頁(yè)通過(guò)硬件機(jī)制實(shí)現(xiàn),對(duì)用戶完全透明。
分段管理方式的提出則是考慮用戶和程序員,以滿足方便編程,信息保護(hù)和共享,動(dòng)態(tài)增長(zhǎng)以及動(dòng)態(tài)鏈接等方多方面的需要。
■?? 段式存儲(chǔ)管理
1. 分段
分段地址中的地址具有如下結(jié)構(gòu):

2. 段表

3. 地址變換機(jī)構(gòu)

4. 信息共享和保護(hù)
????? 在分段系統(tǒng)中,由于是以段為基本單位的,不管該段有多大,我們都只需為該段設(shè)置一個(gè)段表項(xiàng),因此使實(shí)現(xiàn)共享變得非常容易。我們以共享editor為例,此時(shí)只需在(每個(gè))進(jìn)程1和進(jìn)程2的段表中,為文本編輯程序設(shè)置一個(gè)段表項(xiàng),讓段表項(xiàng)中的基址(80)指向editor程序在內(nèi)存的起始地址。

5、段頁(yè)式虛擬存儲(chǔ)管理
????? 頁(yè)式存儲(chǔ)管理能有效的提高內(nèi)存利用率,而段式存儲(chǔ)管理能反映程序的邏輯結(jié)構(gòu),并有利于段的共享,如果將這兩種存儲(chǔ)管理方法結(jié)合起來(lái),就形成了段頁(yè)式存儲(chǔ)管理方式。
■?? 基本原理:

■??地址映射:

■??地址變換過(guò)程:

■? 分頁(yè)管理和管理的比較分段
