操作系統(tǒng)存儲(chǔ)管理學(xué)習(xí)課程_第1頁(yè)
操作系統(tǒng)存儲(chǔ)管理學(xué)習(xí)課程_第2頁(yè)
操作系統(tǒng)存儲(chǔ)管理學(xué)習(xí)課程_第3頁(yè)
操作系統(tǒng)存儲(chǔ)管理學(xué)習(xí)課程_第4頁(yè)
操作系統(tǒng)存儲(chǔ)管理學(xué)習(xí)課程_第5頁(yè)
已閱讀5頁(yè),還剩159頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、5.1 5.2 分區(qū)存儲(chǔ)管理5.3 簡(jiǎn)單頁(yè)式存儲(chǔ)管理5.4 請(qǐng)求頁(yè)式虛擬存儲(chǔ)管理5.5 windows系統(tǒng)的存儲(chǔ)管理5.6 段式與段頁(yè)式存儲(chǔ)管理第1頁(yè)/共164頁(yè)第一頁(yè),編輯于星期日:十七點(diǎn) 二十二分。用戶程序的地址空間、重定位概念存儲(chǔ)管理的基本任務(wù)第2頁(yè)/共164頁(yè)第二頁(yè),編輯于星期日:十七點(diǎn) 二十二分。1、存儲(chǔ)器的層次第3頁(yè)/共164頁(yè)第三頁(yè),編輯于星期日:十七點(diǎn) 二十二分。 按照速度、容量和成本劃分,存儲(chǔ)器系統(tǒng)構(gòu)成一個(gè)層次結(jié)構(gòu),如圖所示。 第4頁(yè)/共164頁(yè)第四頁(yè),編輯于星期日:十七點(diǎn) 二十二分。存儲(chǔ)系統(tǒng)的層次組織存儲(chǔ)管理的基本任務(wù)第5頁(yè)/共164頁(yè)第五頁(yè),編輯于星期日:十七點(diǎn) 二十二分

2、。1. 第6頁(yè)/共164頁(yè)第六頁(yè),編輯于星期日:十七點(diǎn) 二十二分。:完成重定位,裝入內(nèi)存; (可以確定物理地址):邏輯地址-物理地址裝入方式: 絕對(duì)裝入方式、可重定位裝入方式、動(dòng)態(tài)運(yùn)行時(shí)裝入方式: 建立進(jìn)程并執(zhí)行,得到運(yùn)行結(jié)果。 (可以確定物理地址)第7頁(yè)/共164頁(yè)第七頁(yè),編輯于星期日:十七點(diǎn) 二十二分。第8頁(yè)/共164頁(yè)第八頁(yè),編輯于星期日:十七點(diǎn) 二十二分。第9頁(yè)/共164頁(yè)第九頁(yè),編輯于星期日:十七點(diǎn) 二十二分。 程序中符號(hào)名的集合(符號(hào)空間) 目標(biāo)模塊中的地址(邏輯空間) CPU直接執(zhí)行的絕對(duì)地址程序。這一地址集合(物理空間)第10頁(yè)/共164頁(yè)第十頁(yè),編輯于星期日:十七點(diǎn) 二十二分

3、。 程序必須裝入內(nèi)存后才能運(yùn)行,裝入程序需要根據(jù)內(nèi)存的使用情況和分配策略,將模塊放入到內(nèi)存中,需要執(zhí)行重定位。:用戶程序中經(jīng)編譯之后的每個(gè)目標(biāo)模塊都以0為基地址順序編址。也稱(chēng)為相對(duì)地址。:內(nèi)存中各物理存儲(chǔ)單元的地址都是從統(tǒng)一的基地址開(kāi)始順序編址。也稱(chēng)為絕對(duì)地址。它是數(shù)據(jù)在內(nèi)存中的實(shí)際存儲(chǔ)地址。邏輯地址:邏輯地址:Load 1,Load 1,500500物理地址物理地址: :Load 1,Load 1,15001500第11頁(yè)/共164頁(yè)第十一頁(yè),編輯于星期日:十七點(diǎn) 二十二分。:由程序中邏輯地址組成的地址范圍。:由內(nèi)存中一系列存儲(chǔ)單元所限定的地址范圍。內(nèi)存空間的編址從統(tǒng)一的基址0開(kāi)始,為線性的

4、一維地址空間,簡(jiǎn)稱(chēng)物理空間或絕對(duì)空間。:程序和數(shù)據(jù)裝入內(nèi)存時(shí),需對(duì)目標(biāo)程序中的地址進(jìn)行修改。將邏輯地址轉(zhuǎn)換為內(nèi)存物理地址的過(guò)程稱(chēng)作重定位。重定位的技術(shù)按重定位的時(shí)機(jī)可分為兩種:(裝入內(nèi)存時(shí)重定位)和(程序執(zhí)行時(shí)重定位)第12頁(yè)/共164頁(yè)第十二頁(yè),編輯于星期日:十七點(diǎn) 二十二分。第13頁(yè)/共164頁(yè)第十三頁(yè),編輯于星期日:十七點(diǎn) 二十二分。1. 靜態(tài)重定位在目標(biāo)程序裝入內(nèi)存時(shí),由裝入程序?qū)δ繕?biāo)程序中的指令和數(shù)據(jù)的地址進(jìn)行修改,即將程序的邏輯地址都改成為實(shí)際的內(nèi)存地址。裝入操作要求完成。無(wú)需增加硬件地址轉(zhuǎn)換機(jī)構(gòu),便于實(shí)現(xiàn)程序的靜態(tài)連接。 存儲(chǔ)空間為連續(xù)區(qū)域,且不可移動(dòng),不利于內(nèi)存空間的有效利用;

5、 各進(jìn)程很難共享內(nèi)存中同一程序的副本。第14頁(yè)/共164頁(yè)第十四頁(yè),編輯于星期日:十七點(diǎn) 二十二分。第15頁(yè)/共164頁(yè)第十五頁(yè),編輯于星期日:十七點(diǎn) 二十二分。如:LOAD 1,2500 這條指令是把相對(duì)地址為2500的存儲(chǔ)單元的內(nèi)容365裝入1號(hào)累加器而這時(shí)內(nèi)容為365的存儲(chǔ)單元的實(shí)際物理地址為12500(起始地址10000+相對(duì)地址2500)所以LOAD 1,2500 這條指令中的直接地址碼要作相應(yīng)的修改,第16頁(yè)/共164頁(yè)第十六頁(yè),編輯于星期日:十七點(diǎn) 二十二分。2. 動(dòng)態(tài)重定位在程序執(zhí)行期間,每次訪問(wèn)內(nèi)存前進(jìn)行重定位。地址變換依靠硬件地址轉(zhuǎn)換機(jī)構(gòu)實(shí)現(xiàn)。: 程序占用的內(nèi)存空間動(dòng)態(tài)可變

6、,不必連續(xù)存放在一處; 比較容易實(shí)現(xiàn)幾個(gè)進(jìn)程對(duì)同一程序副本的共享使用。:需附加的硬件地址變換機(jī)構(gòu),增加了機(jī)器成本,且軟件實(shí)現(xiàn)算法復(fù)雜。第17頁(yè)/共164頁(yè)第十七頁(yè),編輯于星期日:十七點(diǎn) 二十二分。第18頁(yè)/共164頁(yè)第十八頁(yè),編輯于星期日:十七點(diǎn) 二十二分。存儲(chǔ)系統(tǒng)的層次組織用戶程序的地址空間、重定位概念第19頁(yè)/共164頁(yè)第十九頁(yè),編輯于星期日:十七點(diǎn) 二十二分。 存儲(chǔ)分配 存儲(chǔ)保護(hù) 存儲(chǔ)共享 存儲(chǔ)擴(kuò)充第20頁(yè)/共164頁(yè)第二十頁(yè),編輯于星期日:十七點(diǎn) 二十二分。內(nèi)存分配 內(nèi)存分配是存儲(chǔ)器管理的最基本任務(wù),也就是按用戶要求把適當(dāng)?shù)拇鎯?chǔ)空間分配給相應(yīng)的作業(yè)。(1)分配基本內(nèi)存空間 (2)增加新

7、的內(nèi)存空間 動(dòng)態(tài)申請(qǐng)或釋放內(nèi)存空間 (3)回收內(nèi)存空間第21頁(yè)/共164頁(yè)第二十一頁(yè),編輯于星期日:十七點(diǎn) 二十二分。第22頁(yè)/共164頁(yè)第二十二頁(yè),編輯于星期日:十七點(diǎn) 二十二分。第23頁(yè)/共164頁(yè)第二十三頁(yè),編輯于星期日:十七點(diǎn) 二十二分。第24頁(yè)/共164頁(yè)第二十四頁(yè),編輯于星期日:十七點(diǎn) 二十二分。 在一般情況下,一個(gè)作業(yè)裝入時(shí)分配到的存儲(chǔ)空間和它的地址空間是不一致的。因此,作業(yè)在裝入的時(shí)候,或在其執(zhí)行時(shí),必須把程序地址空間中的邏輯地址轉(zhuǎn)換為內(nèi)存空間對(duì)應(yīng)的物理地址。 第25頁(yè)/共164頁(yè)第二十五頁(yè),編輯于星期日:十七點(diǎn) 二十二分。進(jìn)程執(zhí)行時(shí)的尋址進(jìn)程執(zhí)行時(shí)的尋址當(dāng)前棧頂當(dāng)前棧頂進(jìn)程控

8、制信息進(jìn)程控制信息程序入口點(diǎn)程序入口點(diǎn)地址值增加地址值增加進(jìn)程控制塊進(jìn)程控制塊程序程序棧棧數(shù)據(jù)數(shù)據(jù)訪問(wèn)數(shù)據(jù)訪問(wèn)數(shù)據(jù)分支指令分支指令進(jìn)程映像進(jìn)程映像第26頁(yè)/共164頁(yè)第二十六頁(yè),編輯于星期日:十七點(diǎn) 二十二分。第27頁(yè)/共164頁(yè)第二十七頁(yè),編輯于星期日:十七點(diǎn) 二十二分。PCB3 數(shù)據(jù)數(shù)據(jù)代碼代碼PCB2 代碼代碼數(shù)據(jù)數(shù)據(jù)PCB1數(shù)據(jù)數(shù)據(jù)代碼代碼 進(jìn)程進(jìn)程1進(jìn)程進(jìn)程2進(jìn)程進(jìn)程3進(jìn)程之間共享代碼和數(shù)據(jù)進(jìn)程之間共享代碼和數(shù)據(jù)第28頁(yè)/共164頁(yè)第二十八頁(yè),編輯于星期日:十七點(diǎn) 二十二分。第29頁(yè)/共164頁(yè)第二十九頁(yè),編輯于星期日:十七點(diǎn) 二十二分。5.1 存儲(chǔ)管理的基本概念5.3 簡(jiǎn)單頁(yè)式存儲(chǔ)

9、管理5.4 請(qǐng)求頁(yè)式虛擬存儲(chǔ)管理5.5 windows系統(tǒng)的存儲(chǔ)管理5.6 段式與段頁(yè)式存儲(chǔ)管理第30頁(yè)/共164頁(yè)第三十頁(yè),編輯于星期日:十七點(diǎn) 二十二分。5.2 分區(qū)管理技術(shù)1. 固定分區(qū)法2. 動(dòng)態(tài)分區(qū)法可重定位分區(qū)分配第31頁(yè)/共164頁(yè)第三十一頁(yè),編輯于星期日:十七點(diǎn) 二十二分。5.2 分區(qū)管理技術(shù) 內(nèi)存分區(qū)的基本思想:由系統(tǒng)把實(shí)際內(nèi)存的物理空間劃分為若干個(gè)分區(qū),每個(gè)分區(qū)都是一片在地址上連續(xù)的“小”空間。 某個(gè)進(jìn)程建立時(shí)就獲得一個(gè)內(nèi)存分區(qū),進(jìn)程執(zhí)行完后歸還該分區(qū)。第32頁(yè)/共164頁(yè)第三十二頁(yè),編輯于星期日:十七點(diǎn) 二十二分。1. 固定分區(qū)法內(nèi)存中分區(qū)的個(gè)數(shù)固定不變,各個(gè)分區(qū)的大小也

10、固定不變,但不同分區(qū)的大小可以不同。每個(gè)分區(qū)只可裝入一個(gè)進(jìn)程。 :內(nèi)存的分配釋放、存儲(chǔ)保護(hù)以及地址變換都通過(guò)分區(qū)說(shuō)明表進(jìn)行。分配、回收方便,適用于用戶不多的小型機(jī);管理方式簡(jiǎn)單,內(nèi)存空間利用率低;第33頁(yè)/共164頁(yè)第三十三頁(yè),編輯于星期日:十七點(diǎn) 二十二分。進(jìn)程進(jìn)程1 1)第34頁(yè)/共164頁(yè)第三十四頁(yè),編輯于星期日:十七點(diǎn) 二十二分。2. 動(dòng)態(tài)分區(qū)法各個(gè)分區(qū)是在相應(yīng)進(jìn)程要進(jìn)入內(nèi)存時(shí)才建立的,使其大小恰好適應(yīng)進(jìn)程的大小。:改變了固定分區(qū)中小進(jìn)程占據(jù)大分區(qū)的浪費(fèi)現(xiàn)象,從而提高了系統(tǒng)的利用率。 操作系統(tǒng)內(nèi)部設(shè)置一個(gè),記載整個(gè)內(nèi)存中所有空閑區(qū)和已用區(qū)的情況,每個(gè)分區(qū)占一個(gè)表項(xiàng),每個(gè)表項(xiàng)包括相應(yīng)分區(qū)

11、的大小、位置和狀態(tài)等。 第35頁(yè)/共164頁(yè)第三十五頁(yè),編輯于星期日:十七點(diǎn) 二十二分。 第36頁(yè)/共164頁(yè)第三十六頁(yè),編輯于星期日:十七點(diǎn) 二十二分。內(nèi)存中每一個(gè)空閑的分區(qū)占用該表的一項(xiàng)。第37頁(yè)/共164頁(yè)第三十七頁(yè),編輯于星期日:十七點(diǎn) 二十二分。第38頁(yè)/共164頁(yè)第三十八頁(yè),編輯于星期日:十七點(diǎn) 二十二分。分配算法從一組空閑區(qū)中選擇一個(gè)可用區(qū)的常用策略有兩種:最先適應(yīng)算法(First-fit)和最佳適應(yīng)算法(Best-fit)。 空閑表是按地址排列的,即:空閑分區(qū)起始地址小的分區(qū)在表中的序號(hào)也小。當(dāng)要為進(jìn)程分配內(nèi)存空間時(shí),就查該表,在各空閑分區(qū)中查找滿足大小要求的可用分區(qū)。只要找到

12、第一個(gè)足以滿足要求的空閑分區(qū)就停止查找,并把它分配出去 。同時(shí)修改空閑分區(qū)表。第39頁(yè)/共164頁(yè)第三十九頁(yè),編輯于星期日:十七點(diǎn) 二十二分。2.以空閑分區(qū)的大小為序、按增量形式排列的,即小分區(qū)在前,大分區(qū)在后。它在滿足需要的前提下,盡量分配最小的空閑分區(qū)。 第40頁(yè)/共164頁(yè)第四十頁(yè),編輯于星期日:十七點(diǎn) 二十二分。是在所有空閑的分區(qū)中尋找最大的一個(gè),把該區(qū)按照申請(qǐng)的尺寸進(jìn)行分割,剩下的部分仍然是一個(gè)空閑區(qū),而且可能仍然很大。第41頁(yè)/共164頁(yè)第四十一頁(yè),編輯于星期日:十七點(diǎn) 二十二分。5.2 分區(qū)管理技術(shù)分區(qū)法1. 固定分區(qū)法2. 動(dòng)態(tài)分區(qū)法第42頁(yè)/共164頁(yè)第四十二頁(yè),編輯于星期日

13、:十七點(diǎn) 二十二分。問(wèn)題描述 第43頁(yè)/共164頁(yè)第四十三頁(yè),編輯于星期日:十七點(diǎn) 二十二分??芍囟ㄎ环謪^(qū)法:移動(dòng)某些已分配區(qū)的內(nèi)容,使所有進(jìn)程的分區(qū)緊挨在一起,而把空閑區(qū)留在另一端。 采用緊縮技術(shù)的分區(qū)方法稱(chēng)為。 動(dòng)態(tài)重定位技術(shù)。硬件支持包括一對(duì)寄存器:基址寄存器和限長(zhǎng)寄存器。 一個(gè)存放用戶程序在內(nèi)存的起始地址,稱(chēng)作;另一個(gè)表示用戶程序的邏輯地址的最大范圍,稱(chēng)作。 第44頁(yè)/共164頁(yè)第四十四頁(yè),編輯于星期日:十七點(diǎn) 二十二分??芍囟ㄎ环謪^(qū)的緊縮 第45頁(yè)/共164頁(yè)第四十五頁(yè),編輯于星期日:十七點(diǎn) 二十二分。動(dòng)態(tài)重定位的實(shí)現(xiàn)過(guò)程 第46頁(yè)/共164頁(yè)第四十六頁(yè),編輯于星期日:十七點(diǎn) 二十二

14、分??芍囟ㄎ环謪^(qū)法:為了減少進(jìn)程移動(dòng)的數(shù)量,可以。進(jìn)程裝入內(nèi)存時(shí),不是從上至下依次放置,而是采用“”的辦法。當(dāng)緊縮時(shí),各個(gè)進(jìn)程按地址大小分別向兩端靠攏,從而使空閑區(qū)保留在內(nèi)存的中間部位。 :可以消除碎片,能夠分配更多的分區(qū),有助于多道程序設(shè)計(jì),提高內(nèi)存的利用率。:緊縮花費(fèi)了大量CPU時(shí)間;當(dāng)進(jìn)程大于整個(gè)空閑區(qū)時(shí),仍要浪費(fèi)一定的內(nèi)存;進(jìn)程的存儲(chǔ)區(qū)內(nèi)可能放有從未使用的信息;進(jìn)程之間無(wú)法對(duì)信息共享。 第47頁(yè)/共164頁(yè)第四十七頁(yè),編輯于星期日:十七點(diǎn) 二十二分。1.把作業(yè)地址空間中使用的邏輯地址變成內(nèi)存中物理地址稱(chēng)為( )。A、加載 B、重定位 C、物理化 D、邏輯化2在可變分區(qū)存儲(chǔ)管理中的緊湊技

15、術(shù)可以( )。A.集中空閑區(qū) B.增加主存容量C.縮短訪問(wèn)時(shí)間 D.加速地址轉(zhuǎn)換3把邏輯地址轉(zhuǎn)換成物理地址稱(chēng)為( )。A.地址分配 B.地址映射 C.地址保護(hù) D.地址越界第48頁(yè)/共164頁(yè)第四十八頁(yè),編輯于星期日:十七點(diǎn) 二十二分。4在內(nèi)存分配的“最佳適應(yīng)法”中,空閑塊是按( )。A.始地址從小到大排序 B.始地址從大到小排序C.塊的大小從小到大排序 D.塊的大小從大到小排序5下面最有可能使得高地址空間成為大的空閑區(qū)的分配算法是( )。A.首次適應(yīng)法 B.最佳適應(yīng)法C.最壞適應(yīng)法 D.循環(huán)首次適應(yīng)法6靜態(tài)重定位的時(shí)機(jī)是( )。A.程序編譯時(shí) B.程序鏈接時(shí)C.程序裝入時(shí) D.程序運(yùn)行時(shí) 第

16、49頁(yè)/共164頁(yè)第四十九頁(yè),編輯于星期日:十七點(diǎn) 二十二分。7. 通常所說(shuō)的“存儲(chǔ)保護(hù)”的基本含義是( )A.防止存儲(chǔ)器硬件受損 B.防止程序在內(nèi)存丟失C.防止程序間相互越界訪問(wèn) D.防止程序被人偷看8能夠裝入內(nèi)存任何位置的代碼程序必須是( )。A.可重入的 B.可重定位 C.可動(dòng)態(tài)鏈接 D.可靜態(tài)鏈接9在固定分區(qū)分配中,每個(gè)分區(qū)的大小是( )。A.相同B.隨作業(yè)長(zhǎng)度變化C.可以不同但預(yù)先固定D.可以不同但根據(jù)作業(yè)長(zhǎng)度固定 第50頁(yè)/共164頁(yè)第五十頁(yè),編輯于星期日:十七點(diǎn) 二十二分。5.1 存儲(chǔ)管理的基本概念5.2 分區(qū)存儲(chǔ)管理5.4 請(qǐng)求頁(yè)式虛擬存儲(chǔ)管理5.5 windows系統(tǒng)的存儲(chǔ)管

17、理5.6 段式與段頁(yè)式存儲(chǔ)管理第51頁(yè)/共164頁(yè)第五十一頁(yè),編輯于星期日:十七點(diǎn) 二十二分。5.3 分頁(yè)技術(shù)分頁(yè)系統(tǒng)中的地址映射頁(yè)的共享和保護(hù)內(nèi)存擴(kuò)充第52頁(yè)/共164頁(yè)第五十二頁(yè),編輯于星期日:十七點(diǎn) 二十二分。分頁(yè)的基本概念 將一個(gè)進(jìn)程的邏輯地址空間劃分為若干大小相等的部分, 每部分稱(chēng)作頁(yè)面或頁(yè);每頁(yè)都有一個(gè)編號(hào),叫做頁(yè)號(hào),頁(yè)號(hào)從0開(kāi)始依次編排,如0,1,2。 將內(nèi)存劃分成與頁(yè)面相同大小的若干存儲(chǔ)塊, 稱(chēng)作內(nèi)存塊;塊號(hào)從0開(kāi)始依次順序排列:0#塊,1#塊,2#塊,。 由硬件決定, 一般為2n,不同機(jī)器頁(yè)面大小不同。0123Process A0123012Process B-0123401

18、23Process C789104561112Process DFree Frame List1314第53頁(yè)/共164頁(yè)第五十三頁(yè),編輯于星期日:十七點(diǎn) 二十二分。分頁(yè)的基本概念 其中011位為頁(yè)內(nèi)地址,表示每頁(yè)的大小為212,即4 KB;1231位為頁(yè)號(hào),表示地址空間中最多可容納220個(gè)頁(yè)面。0111231第54頁(yè)/共164頁(yè)第五十四頁(yè),編輯于星期日:十七點(diǎn) 二十二分。系統(tǒng)以塊為單位把內(nèi)存分給各個(gè)進(jìn)程,進(jìn)程的每個(gè)頁(yè)面對(duì)應(yīng)一個(gè)內(nèi)存塊,并且一個(gè)進(jìn)程的若干頁(yè)可以分別裝入物理上不連續(xù)的內(nèi)存塊中。在分頁(yè)系統(tǒng)中,允許將進(jìn)程的各頁(yè)面離散地裝入內(nèi)存的任何空閑塊中。系統(tǒng)為每個(gè)進(jìn)程設(shè)立一張頁(yè)面映像表,簡(jiǎn)稱(chēng)頁(yè)表

19、。 :實(shí)現(xiàn)某一進(jìn)程的邏輯頁(yè)號(hào)到物理塊號(hào)的地址映射。分頁(yè)的基本概念第55頁(yè)/共164頁(yè)第五十五頁(yè),編輯于星期日:十七點(diǎn) 二十二分。2、分頁(yè)存儲(chǔ)實(shí)現(xiàn)第56頁(yè)/共164頁(yè)第五十六頁(yè),編輯于星期日:十七點(diǎn) 二十二分。 整個(gè)系統(tǒng)有一個(gè)。每個(gè)內(nèi)存塊在內(nèi)存塊表中占一項(xiàng),表明該塊當(dāng)前空閑還是已分出去了;如果已分出去,是分給哪個(gè)進(jìn)程的哪個(gè)頁(yè)面了。 第57頁(yè)/共164頁(yè)第五十七頁(yè),編輯于星期日:十七點(diǎn) 二十二分。5.3 分頁(yè)技術(shù)分頁(yè)的基本概念頁(yè)的共享和保護(hù)內(nèi)存擴(kuò)充第58頁(yè)/共164頁(yè)第五十八頁(yè),編輯于星期日:十七點(diǎn) 二十二分。分頁(yè)的基本概念頁(yè)表地址結(jié)構(gòu) 分頁(yè)系統(tǒng)地址交換機(jī)構(gòu)自動(dòng)將邏輯地址轉(zhuǎn)換為兩部分: 高位部分為

20、頁(yè)號(hào),地位部分為頁(yè)內(nèi)地址; 則邏輯地址:用數(shù)對(duì)(p,d)表示。第59頁(yè)/共164頁(yè)第五十九頁(yè),編輯于星期日:十七點(diǎn) 二十二分。 通常頁(yè)的大小為2的n次冪。 如取頁(yè)大小為1024=(210)=1K或4096= (212)=4K,若頁(yè)的大小為2n,則: 頁(yè)內(nèi)地址占位:n, 頁(yè)號(hào)占位:有效地址長(zhǎng)度-n;0?91015第60頁(yè)/共164頁(yè)第六十頁(yè),編輯于星期日:十七點(diǎn) 二十二分。分頁(yè)的基本概念 其中011位為頁(yè)內(nèi)地址,表示每頁(yè)的大小為212,即4 KB;1231位為頁(yè)號(hào),表示地址空間中最多可容納220個(gè)頁(yè)面。0111231 第61頁(yè)/共164頁(yè)第六十一頁(yè),編輯于星期日:十七點(diǎn) 二十二分。分頁(yè)系統(tǒng)中的地

21、址映射 用去檢索頁(yè)表,從頁(yè)表中得到該頁(yè)的,把它裝入物理地址寄存器中; 將直接送入物理地址寄存器的字段中; 物理地址寄存器中的內(nèi)容就是由成的實(shí)際訪問(wèn)內(nèi)存的地址,從而完成了從邏輯地址到物理地址的轉(zhuǎn)換。第62頁(yè)/共164頁(yè)第六十二頁(yè),編輯于星期日:十七點(diǎn) 二十二分。3、分頁(yè)系統(tǒng)中的地址映射第63頁(yè)/共164頁(yè)第六十三頁(yè),編輯于星期日:十七點(diǎn) 二十二分。 L=1024 L=1024,A=2052=2048+4=A=2052=2048+4=2 21111+2+22 2 頁(yè)號(hào)頁(yè)號(hào)p=2p=2,頁(yè)內(nèi)地址,頁(yè)內(nèi)地址d=4 d=4 10 000000010010 0000000100查頁(yè)表得頁(yè)號(hào)查頁(yè)表得頁(yè)號(hào)2

22、2對(duì)應(yīng)的物理塊號(hào)為對(duì)應(yīng)的物理塊號(hào)為1111,則,則20522052對(duì)應(yīng)的物理地址為:對(duì)應(yīng)的物理地址為:頁(yè)長(zhǎng)頁(yè)長(zhǎng)塊號(hào)塊號(hào)+ +頁(yè)內(nèi)地址頁(yè)內(nèi)地址=1024=102411+4=1126811+4=11268或或: : 1011 00000001001011 0000000100 物理地址為:物理地址為:2C04H=112682C04H=11268例如:例如: 某分頁(yè)存儲(chǔ)管理,頁(yè)面大小某分頁(yè)存儲(chǔ)管理,頁(yè)面大小L=1KL=1K,頁(yè)表如下:,頁(yè)表如下:則邏輯地址則邏輯地址A=2052A=2052所對(duì)應(yīng)的物理地址是什么?要求寫(xiě)出主要計(jì)算過(guò)程。所對(duì)應(yīng)的物理地址是什么?要求寫(xiě)出主要計(jì)算過(guò)程。解:解:第64頁(yè)/共

23、164頁(yè)第六十四頁(yè),編輯于星期日:十七點(diǎn) 二十二分。 假設(shè)系統(tǒng)的頁(yè)面長(zhǎng)度為1k。當(dāng)前正在執(zhí)行的進(jìn)程對(duì)應(yīng)的頁(yè)面如圖所示:當(dāng)前進(jìn)程中有一條指令load 1,2500,如何利用頁(yè)表進(jìn)行地址變換,正確的執(zhí)行這條指令呢?第65頁(yè)/共164頁(yè)第六十五頁(yè),編輯于星期日:十七點(diǎn) 二十二分。頁(yè)號(hào)頁(yè)面號(hào)021328Load 1,2500 data21488644第66頁(yè)/共164頁(yè)第六十六頁(yè),編輯于星期日:十七點(diǎn) 二十二分。 為了提高地址變換的速度,在地址變換機(jī)構(gòu)中增設(shè)了一個(gè)具有并行查詢功能的特殊的高速緩沖存儲(chǔ)器,稱(chēng)為“”或“”,用以存放當(dāng)前訪問(wèn)的那些頁(yè)表項(xiàng)。第67頁(yè)/共164頁(yè)第六十七頁(yè),編輯于星期日:十七點(diǎn)

24、二十二分。此時(shí)為:若在快表中對(duì)應(yīng)的頁(yè)表項(xiàng),則需,找到后,把從頁(yè)表中讀出的頁(yè)表項(xiàng)存入快表中的一個(gè)寄存器單元中,以取代一個(gè)舊的頁(yè)表項(xiàng)。第68頁(yè)/共164頁(yè)第六十八頁(yè),編輯于星期日:十七點(diǎn) 二十二分。 頁(yè) 號(hào) f 頁(yè)內(nèi)地址d頁(yè)表始址p 頁(yè)表長(zhǎng)度d塊號(hào) p 塊內(nèi)地址 d 聯(lián)想寄存器越界中斷頁(yè)表寄存器邏輯地址頁(yè) 號(hào) 塊 號(hào)頁(yè) 表快 表物理地址頁(yè)號(hào) 塊號(hào)245210245210第69頁(yè)/共164頁(yè)第六十九頁(yè),編輯于星期日:十七點(diǎn) 二十二分。1分區(qū)管理和分頁(yè)管理的主要區(qū)別是( )。A.分區(qū)管理中的塊比分頁(yè)管理中的頁(yè)要小B.分頁(yè)管理有地址映射而分區(qū)管理沒(méi)有C.分頁(yè)管理有存儲(chǔ)保護(hù)而分區(qū)管理沒(méi)有D.分區(qū)管理要求一

25、道程序存放在連續(xù)的空間內(nèi)而分頁(yè)管理沒(méi)有這種要求。第70頁(yè)/共164頁(yè)第七十頁(yè),編輯于星期日:十七點(diǎn) 二十二分。某虛擬存儲(chǔ)器的用戶空間共有32個(gè)頁(yè)面,每頁(yè)1KB,主存16KB。試問(wèn):(1)邏輯地址的有效位是多少?(2)物理地址需要多少位?(3)假定某時(shí)刻系統(tǒng)用戶的第0,1,2,3頁(yè)分別分配的物理塊號(hào)為5,10,4,7,試將虛地址0A5C和093C變換為物理地址。第71頁(yè)/共164頁(yè)第七十一頁(yè),編輯于星期日:十七點(diǎn) 二十二分。5.3 分頁(yè)技術(shù)分頁(yè)的基本概念分頁(yè)系統(tǒng)中的地址映射內(nèi)存擴(kuò)充第72頁(yè)/共164頁(yè)第七十二頁(yè),編輯于星期日:十七點(diǎn) 二十二分。頁(yè)的共享與保護(hù)使多個(gè)相關(guān)進(jìn)程的邏輯空間中的頁(yè)指向相同

26、的內(nèi)存塊(該塊中放有共享程序或數(shù)據(jù))。如圖所示: 實(shí)際上,那些只讀的頁(yè)面(如程序文件)可以被共享,而數(shù)據(jù)頁(yè)面往往并不能共享。 第73頁(yè)/共164頁(yè)第七十三頁(yè),編輯于星期日:十七點(diǎn) 二十二分。9 9、頁(yè)的共享與保護(hù)第74頁(yè)/共164頁(yè)第七十四頁(yè),編輯于星期日:十七點(diǎn) 二十二分。在頁(yè)表的表項(xiàng)中設(shè)置存取控制字段,用于指明對(duì)應(yīng)內(nèi)存塊中的內(nèi)容允許執(zhí)行何種操作,從而禁止非法訪問(wèn)。ead rite ecute分頁(yè)系統(tǒng)中把進(jìn)程的地址空間劃分頁(yè)面的方法對(duì)用戶是屏蔽的,即用戶不知道頁(yè)面的劃分情況。第75頁(yè)/共164頁(yè)第七十五頁(yè),編輯于星期日:十七點(diǎn) 二十二分。5.3 分頁(yè)技術(shù)分頁(yè)的基本概念分頁(yè)系統(tǒng)中的地址映射頁(yè)的

27、共享和保護(hù)第76頁(yè)/共164頁(yè)第七十六頁(yè),編輯于星期日:十七點(diǎn) 二十二分。內(nèi)存擴(kuò)充技術(shù)1.覆蓋(overlay) 覆蓋:一個(gè)/幾個(gè)作業(yè)的某些部分共享某一段存儲(chǔ)空間2.交換(swapping) 交換:在空間不夠的時(shí)候把部分內(nèi)容暫時(shí)放入外存。第77頁(yè)/共164頁(yè)第七十七頁(yè),編輯于星期日:十七點(diǎn) 二十二分。1.覆蓋(overlay) 引入:其目標(biāo)是在較小的可用內(nèi)存中。常用于多道程序系統(tǒng),與分區(qū)存儲(chǔ)管理配合使用。第78頁(yè)/共164頁(yè)第七十八頁(yè),編輯于星期日:十七點(diǎn) 二十二分。 原理:一個(gè)程序的幾個(gè)代碼段或數(shù)據(jù)段,按照先后來(lái)。 將程序的(常用功能)的代碼和數(shù)據(jù)常駐內(nèi)存;(不常用功能)在其他程序模塊中實(shí)現(xiàn)

28、,平時(shí)存放在外存中(覆蓋文件),在需要用到時(shí)才裝入到內(nèi)存; 不存在調(diào)用關(guān)系的模塊不必同時(shí)裝入到內(nèi)存,從而可以相互覆蓋。(即)1. 覆蓋(overlay)第79頁(yè)/共164頁(yè)第七十九頁(yè),編輯于星期日:十七點(diǎn) 二十二分。A20KB50KC30KF30KD20KE40KResident20KOverlay 050KOverlay 140KTotal: 190KTotal: 110KA 20KB 50KF 30KC 30KD 20KE 40KRAMA 20K覆蓋區(qū)覆蓋區(qū)0 50K覆蓋區(qū)覆蓋區(qū)1 40KBCFDE第80頁(yè)/共164頁(yè)第八十頁(yè),編輯于星期日:十七點(diǎn) 二十二分。 缺點(diǎn): 編程時(shí)必須劃分程序模

29、塊和確定程序模塊之間的覆蓋關(guān)系,增加編程復(fù)雜度。 從外存裝入覆蓋文件,以時(shí)間延長(zhǎng)來(lái)?yè)Q取空間節(jié)省。1. 覆蓋(overlay)第81頁(yè)/共164頁(yè)第八十一頁(yè),編輯于星期日:十七點(diǎn) 二十二分。2 .交換(swapping) 引入:多個(gè)程序并發(fā)執(zhí)行,可以將送到外存中,從而來(lái)裝入新程序,或讀入保存在外存中而目前到達(dá)就緒狀態(tài)的進(jìn)程。常用于多道程序系統(tǒng)或小型分時(shí)系統(tǒng)中。又稱(chēng)作對(duì)換或滾進(jìn)/滾出(roll-in/roll-out);:處于阻塞狀態(tài),低優(yōu)先級(jí)(確保高優(yōu)先級(jí)程序執(zhí)行);第82頁(yè)/共164頁(yè)第八十二頁(yè),編輯于星期日:十七點(diǎn) 二十二分。2. 交換(swapping) 原理:執(zhí)行內(nèi)存中的進(jìn)程,將整個(gè)進(jìn)程

30、的地址空間的交換區(qū)中(換出swap out),而將外存中由阻塞變?yōu)榫途w的進(jìn)程的地址空間到內(nèi)存中,并將該進(jìn)程送到就緒隊(duì)列(換入swap in)。第83頁(yè)/共164頁(yè)第八十三頁(yè),編輯于星期日:十七點(diǎn) 二十二分。2 .交換(swapping)1. 除操作系統(tǒng)所占用的內(nèi)存空間外, 所有剩余全部?jī)?nèi)存中只供一個(gè)用戶進(jìn)程使用, 所有其它進(jìn)程都放到外存上;2. 每次只調(diào)入一個(gè)進(jìn)程進(jìn)入內(nèi)存運(yùn)行。該進(jìn)程用完分給它的時(shí)間片后,這個(gè)進(jìn)程就放到外存上;3. 系統(tǒng)再把另一個(gè)進(jìn)程調(diào)入內(nèi)存并運(yùn)行一個(gè)時(shí)間片。第84頁(yè)/共164頁(yè)第八十四頁(yè),編輯于星期日:十七點(diǎn) 二十二分。對(duì)換兩個(gè)進(jìn)程第85頁(yè)/共164頁(yè)第八十五頁(yè),編輯于星期日

31、:十七點(diǎn) 二十二分。 優(yōu)點(diǎn):增加并發(fā)運(yùn)行的程序數(shù)目,并且給用戶提供適當(dāng)?shù)捻憫?yīng)時(shí)間;編寫(xiě)程序時(shí)不影響程序結(jié)構(gòu) 缺點(diǎn):對(duì)換入和換出的控制增加處理機(jī)開(kāi)銷(xiāo);程序整個(gè)地址空間都進(jìn)行傳送,沒(méi)有考慮執(zhí)行過(guò)程中地址訪問(wèn)的統(tǒng)計(jì)特性。第86頁(yè)/共164頁(yè)第八十六頁(yè),編輯于星期日:十七點(diǎn) 二十二分。區(qū)分交換與覆蓋(1)交換不需要程序員給出程序、數(shù)據(jù)段的交換方法、過(guò)程,而覆蓋要求明確給出程序段之間的覆蓋結(jié)構(gòu)(2)交換主要是在進(jìn)程之間或作業(yè)之間進(jìn)行,而覆蓋主要是在一個(gè)進(jìn)程內(nèi)或一個(gè)作業(yè)內(nèi)進(jìn)行,同時(shí)覆蓋程序段與被覆蓋程序段是無(wú)關(guān)的。第87頁(yè)/共164頁(yè)第八十七頁(yè),編輯于星期日:十七點(diǎn) 二十二分。第88頁(yè)/共164頁(yè)第八十八

32、頁(yè),編輯于星期日:十七點(diǎn) 二十二分。請(qǐng)求頁(yè)式存儲(chǔ)管理的基本思想硬件支持及缺頁(yè)處理常見(jiàn)頁(yè)面置換算法第89頁(yè)/共164頁(yè)第八十九頁(yè),編輯于星期日:十七點(diǎn) 二十二分。 回憶一下前面所介紹的各種存儲(chǔ)管理方案。要求把作業(yè)一次全部裝入到一個(gè)連續(xù)的存儲(chǔ)分區(qū)中;也要求把作業(yè)一次全部裝入,但是裝入到的存儲(chǔ)塊可以不連續(xù)。但無(wú)論如何,這些存儲(chǔ)管理方案都要求把作業(yè)“一次全部裝入”。第90頁(yè)/共164頁(yè)第九十頁(yè),編輯于星期日:十七點(diǎn) 二十二分。 問(wèn)題:如果有一個(gè)作業(yè)太大,以至于內(nèi)存都容納不下它,那么,這個(gè)作業(yè)就無(wú)法投入運(yùn)行。多年來(lái),人們總是受到小內(nèi)存與大作業(yè)之間矛盾的困擾。 要求一次全部裝入作業(yè)程序,主要就是認(rèn)為只有作

33、業(yè)程序全部在內(nèi)存里,才能夠保證它的正確運(yùn)行。其實(shí),作業(yè)程序運(yùn)行時(shí),并不一定要全部在內(nèi)存里。 例如:使用函數(shù)調(diào)用編程實(shí)現(xiàn)加減乘除四則混合運(yùn)算。第91頁(yè)/共164頁(yè)第九十一頁(yè),編輯于星期日:十七點(diǎn) 二十二分。第92頁(yè)/共164頁(yè)第九十二頁(yè),編輯于星期日:十七點(diǎn) 二十二分。第93頁(yè)/共164頁(yè)第九十三頁(yè),編輯于星期日:十七點(diǎn) 二十二分。第94頁(yè)/共164頁(yè)第九十四頁(yè),編輯于星期日:十七點(diǎn) 二十二分。完成用小的內(nèi)存實(shí)現(xiàn)在大的虛空間中程序的運(yùn)行工作(1)程序中往往含有不會(huì)被執(zhí)行的代碼(2)為數(shù)組、隊(duì)列、表格等數(shù)據(jù)結(jié)構(gòu)分配的內(nèi)存空間 要大于他們的實(shí)際需要(3)一個(gè)程序的某些任選和特殊性能很少被用到(4)局

34、部性原理第95頁(yè)/共164頁(yè)第九十五頁(yè),編輯于星期日:十七點(diǎn) 二十二分。虛擬存儲(chǔ)器是由操作系統(tǒng)提供的一個(gè)假想的特大存儲(chǔ)器。(1)虛擬擴(kuò)充:不是物理上、而是邏輯上擴(kuò)充了內(nèi)存容量;(2)部分裝入:每個(gè)作業(yè)不是全部一次性地裝入內(nèi)存,而是只裝入一部分;(使用對(duì)換技術(shù)換進(jìn)換出)(3)離散分配:不必占用連續(xù)的內(nèi)存空間,而是“見(jiàn)縫插針”;(4)多次對(duì)換:所需的全部程序和數(shù)據(jù)要分成多次調(diào)入內(nèi)存。第96頁(yè)/共164頁(yè)第九十六頁(yè),編輯于星期日:十七點(diǎn) 二十二分。虛擬存儲(chǔ)器硬件支持及缺頁(yè)處理常見(jiàn)頁(yè)面置換算法第97頁(yè)/共164頁(yè)第九十七頁(yè),編輯于星期日:十七點(diǎn) 二十二分?;仡櫍?每個(gè)進(jìn)程的地址空間是連續(xù)的,而映像到內(nèi)

35、存空間后就不一定連續(xù)。有效解決了內(nèi)存碎片問(wèn)題,更好地支持多道程序設(shè)計(jì),提高內(nèi)存和CPU利用率; 但是,單純分頁(yè)存儲(chǔ)管理要求運(yùn)行的進(jìn)程必須全部裝入內(nèi)存,即未提供虛擬存儲(chǔ)器。第98頁(yè)/共164頁(yè)第九十八頁(yè),編輯于星期日:十七點(diǎn) 二十二分。 與單純分頁(yè)的根本區(qū)別是提供虛擬存儲(chǔ)器。當(dāng)一個(gè)進(jìn)程的部分頁(yè)面就可調(diào)度它運(yùn)行;在運(yùn)行過(guò)程中若用到的頁(yè)面,則把它們動(dòng)態(tài)換入內(nèi)存。 這樣,就減少了對(duì)換時(shí)間和所需內(nèi)存容量,允許增加程序道數(shù)。CPU當(dāng)前要訪問(wèn)的頁(yè)面尚未裝入內(nèi)存,即頁(yè)表中的標(biāo)志位為0時(shí),便產(chǎn)生一個(gè)缺頁(yè)中斷。 第99頁(yè)/共164頁(yè)第九十九頁(yè),編輯于星期日:十七點(diǎn) 二十二分。 請(qǐng)求式分頁(yè)存儲(chǔ)管理與純分頁(yè)存儲(chǔ)管理在

36、內(nèi)存塊的分配與回收,存儲(chǔ)保護(hù)某方面都十分相似,在請(qǐng)求式分頁(yè)存儲(chǔ)管理的地址重定位時(shí),可能會(huì)(1)當(dāng)程序要訪問(wèn)的某頁(yè)不在內(nèi)存時(shí),如何發(fā)現(xiàn)這種缺頁(yè)情況?發(fā)現(xiàn)后應(yīng)如何處理?(訪問(wèn)有效or無(wú)效)(2)當(dāng)需要把外存上的某個(gè)頁(yè)面調(diào)入內(nèi)存時(shí),此時(shí)內(nèi)存中沒(méi)有空閑塊應(yīng)怎么辦?(頁(yè)面淘汰)第100頁(yè)/共164頁(yè)第一百頁(yè),編輯于星期日:十七點(diǎn) 二十二分。 操作系統(tǒng)必須:即裝入所要求的頁(yè)面并相應(yīng)調(diào)整頁(yè)表的記錄,然后再重新啟動(dòng)該指令。 由于這種頁(yè)面是根據(jù)請(qǐng)求而被裝入的,所以這種存儲(chǔ)管理方法叫做。 第101頁(yè)/共164頁(yè)第一百零一頁(yè),編輯于星期日:十七點(diǎn) 二十二分。虛擬存儲(chǔ)器請(qǐng)求頁(yè)式管理技術(shù)的基本思想常見(jiàn)頁(yè)面置換算法 第1

37、02頁(yè)/共164頁(yè)第一百零二頁(yè),編輯于星期日:十七點(diǎn) 二十二分。為了實(shí)現(xiàn)請(qǐng)求分頁(yè),系統(tǒng)須提供一定的硬件支持:除了一定容量的內(nèi)存和外存及支持分頁(yè)機(jī)制外,還需要有,和。第103頁(yè)/共164頁(yè)第一百零三頁(yè),編輯于星期日:十七點(diǎn) 二十二分。頁(yè)表項(xiàng)除包含該頁(yè)在內(nèi)存的基址外,需包含如下信息:該頁(yè)面是否在內(nèi)存中;記載該頁(yè)面在外存的地址(文件地址),以便在發(fā)生缺頁(yè)情況下,操作系統(tǒng)能很快在外存上找到該頁(yè)面,換入內(nèi)存;若為1,表示該頁(yè)已被修改過(guò);記錄該頁(yè)的訪問(wèn)次數(shù)。第104頁(yè)/共164頁(yè)第一百零四頁(yè),編輯于星期日:十七點(diǎn) 二十二分。2. 缺頁(yè)中斷的處理過(guò)程,是由的。其相互關(guān)系如下圖所示。 第105頁(yè)/共164頁(yè)第

38、一百零五頁(yè),編輯于星期日:十七點(diǎn) 二十二分。第106頁(yè)/共164頁(yè)第一百零六頁(yè),編輯于星期日:十七點(diǎn) 二十二分。6、缺頁(yè)中斷的處理過(guò)程第107頁(yè)/共164頁(yè)第一百零七頁(yè),編輯于星期日:十七點(diǎn) 二十二分。虛擬存儲(chǔ)器請(qǐng)求頁(yè)式管理技術(shù)的基本思想硬件支持及缺頁(yè)處理 第108頁(yè)/共164頁(yè)第一百零八頁(yè),編輯于星期日:十七點(diǎn) 二十二分。1 2 先進(jìn)先出法3 最佳置換法4 最近最少使用置換法5 最近未使用置換法第109頁(yè)/共164頁(yè)第一百零九頁(yè),編輯于星期日:十七點(diǎn) 二十二分。頁(yè)面置換概念 找出所需頁(yè)面在磁盤(pán)上的位置。 找出一個(gè)空閑內(nèi)存塊。如果有空閑塊,就用它;如果沒(méi)有空閑塊,就用頁(yè)面置換算法選擇一個(gè)可置換

39、的內(nèi)存塊。把該頁(yè)寫(xiě)到磁盤(pán)上,并相應(yīng)地修改頁(yè)表和存儲(chǔ)塊表。 把所需頁(yè)面讀入內(nèi)存塊(剛剛得到的空閑塊),修改頁(yè)表和存儲(chǔ)塊表。 重新啟動(dòng)該用戶進(jìn)程。第110頁(yè)/共164頁(yè)第一百一十頁(yè),編輯于星期日:十七點(diǎn) 二十二分。頁(yè)面置換第111頁(yè)/共164頁(yè)第一百一十一頁(yè),編輯于星期日:十七點(diǎn) 二十二分。2.如采用的算法不合適,就會(huì)不斷出現(xiàn)剛被換出的頁(yè),很快又被訪問(wèn)。即出現(xiàn)抖動(dòng)現(xiàn)象。頻繁更換頁(yè)面, 以致系統(tǒng)的大部分時(shí)間花費(fèi)在頁(yè)面的調(diào)度與傳輸上。造成系統(tǒng)實(shí)際效率過(guò)低的現(xiàn)象。第112頁(yè)/共164頁(yè)第一百一十二頁(yè),編輯于星期日:十七點(diǎn) 二十二分。 即存儲(chǔ)訪問(wèn)序列。追蹤特定程序,記下下述地址序列(十進(jìn)制表示): 010

40、0,0432,0101,0612,0102,0103,0104, 0101,0611,0102,0103,0104,0101,0610, 0102,0103,0104,0101,0609,0102,0105則頁(yè)面走向?yàn)椋?1,4,1,6,1,6,1,6,1,6,1(連續(xù)出現(xiàn)的同一頁(yè)號(hào)就簡(jiǎn)化為一個(gè)頁(yè)號(hào)) 一般來(lái)說(shuō),隨著內(nèi)存可用塊數(shù)的增加, 缺頁(yè)數(shù)將減少。第113頁(yè)/共164頁(yè)第一百一十三頁(yè),編輯于星期日:十七點(diǎn) 二十二分。1 頁(yè)面置換概念3 最佳置換法4 最近最少使用置換法5 最近未使用置換法第114頁(yè)/共164頁(yè)第一百一十四頁(yè),編輯于星期日:十七點(diǎn) 二十二分。2 先進(jìn)先出法(FIFO):先進(jìn)入

41、內(nèi)存的頁(yè),先被換出。 這種算法把一個(gè)進(jìn)程所有在內(nèi)存中的頁(yè)。如果一個(gè)頁(yè)面剛被放入內(nèi)存,就把它插在隊(duì)尾。 第115頁(yè)/共164頁(yè)第一百一十五頁(yè),編輯于星期日:十七點(diǎn) 二十二分。:第116頁(yè)/共164頁(yè)第一百一十六頁(yè),編輯于星期日:十七點(diǎn) 二十二分。先進(jìn)先出法(FIFO):容易理解且方便程序設(shè)計(jì)。:性能并不很好。僅當(dāng)按線性順序訪問(wèn)地址空間時(shí),這種算法才是理想的;否則,效率不高。 存在Belady異?,F(xiàn)象,即缺頁(yè)率隨內(nèi)存塊增加而增加。 第117頁(yè)/共164頁(yè)第一百一十七頁(yè),編輯于星期日:十七點(diǎn) 二十二分。1 頁(yè)面置換概念2 先進(jìn)先出法4 最近最少使用置換法5 最近未使用置換法第118頁(yè)/共164頁(yè)第一

42、百一十八頁(yè),編輯于星期日:十七點(diǎn) 二十二分。3 最佳置換法(OPT):從內(nèi)存中;如無(wú)這樣的頁(yè)面,則這就是最優(yōu)算法的思想。:采用這種算法,能保證有最小缺頁(yè)率。 :OPT算法在實(shí)現(xiàn)上有困難,因?yàn)樗枰A(yù)先知道一個(gè)進(jìn)程整個(gè)運(yùn)行過(guò)程中頁(yè)面走向的全部情況。不過(guò),這個(gè)算法可用來(lái)衡量(如通過(guò)模擬實(shí)驗(yàn)分析或理論分析)其他算法的優(yōu)劣。第119頁(yè)/共164頁(yè)第一百一十九頁(yè),編輯于星期日:十七點(diǎn) 二十二分。第120頁(yè)/共164頁(yè)第一百二十頁(yè),編輯于星期日:十七點(diǎn) 二十二分。1 頁(yè)面置換概念2 先進(jìn)先出法3 最佳置換法5 最近未使用置換法第121頁(yè)/共164頁(yè)第一百二十一頁(yè),編輯于星期日:十七點(diǎn) 二十二分。4 最近最

43、少使用置換法(LRU):當(dāng)需要置換一頁(yè)時(shí),選擇在最近一段時(shí)間里最久沒(méi)有使用過(guò)的頁(yè)面予以淘汰。 LRU算法與每個(gè)頁(yè)面最后使用的時(shí)間有關(guān)。該算法賦予每個(gè)頁(yè)面一個(gè),用來(lái)記錄一個(gè)頁(yè)面自上次被訪問(wèn)以來(lái)所經(jīng)歷的時(shí)間t,當(dāng)必須淘汰一個(gè)頁(yè)面時(shí),LRU算法選擇現(xiàn)有頁(yè)面中t值最大的那個(gè)頁(yè)面。 第122頁(yè)/共164頁(yè)第一百二十二頁(yè),編輯于星期日:十七點(diǎn) 二十二分。第123頁(yè)/共164頁(yè)第一百二十三頁(yè),編輯于星期日:十七點(diǎn) 二十二分。第124頁(yè)/共164頁(yè)第一百二十四頁(yè),編輯于星期日:十七點(diǎn) 二十二分。最近最少使用置換法(LRU)確定最后訪問(wèn)以來(lái)所經(jīng)歷時(shí)間的順序,有以下兩種可行的辦法: 。使每個(gè)頁(yè)表項(xiàng)對(duì)應(yīng)一個(gè)使用時(shí)間

44、字段,并給CPU增加一個(gè)邏輯時(shí)鐘或計(jì)數(shù)器,每進(jìn)行一次存儲(chǔ)訪問(wèn),該時(shí)鐘都加1。 。用一個(gè)棧保留頁(yè)號(hào)。每當(dāng)訪問(wèn)一個(gè)頁(yè)面時(shí),就把它從棧中取出,放在棧頂上。這樣,棧頂總放有目前使用最多的頁(yè),而棧底放著目前最少使用的頁(yè)。 第125頁(yè)/共164頁(yè)第一百二十五頁(yè),編輯于星期日:十七點(diǎn) 二十二分。最近最少使用置換法(LRU):LRU算法是經(jīng)常采用的頁(yè)面置換算法。盡管比OPT算法效果差,但缺頁(yè)情況還是比FIFO算法好得多。 :實(shí)現(xiàn)LRU算法必須有大量硬件支持,同時(shí)需要一定的軟件開(kāi)銷(xiāo)。 第126頁(yè)/共164頁(yè)第一百二十六頁(yè),編輯于星期日:十七點(diǎn) 二十二分。1 頁(yè)面置換概念2 先進(jìn)先出法3 最佳置換法4 最近最少使

45、用置換法第127頁(yè)/共164頁(yè)第一百二十七頁(yè),編輯于星期日:十七點(diǎn) 二十二分。5 最近未使用置換法(NUR):它在存儲(chǔ)塊表的每一表項(xiàng)中增加一個(gè)“引用位”,標(biāo)示該頁(yè)最近的使用情況:1表示被訪問(wèn)過(guò);0表示未被訪問(wèn)過(guò)。當(dāng)某一頁(yè)被訪問(wèn)時(shí),由硬件將該位置1。 操作系統(tǒng)定期地檢查這些位,如果是1,表示對(duì)應(yīng)頁(yè)最近被使用過(guò),不被淘汰,但是要把它置為0;如果是0,表示對(duì)應(yīng)頁(yè)自上次檢查之后還未使用過(guò),我們就把這種在最近一段時(shí)間里未被訪問(wèn)過(guò)的頁(yè)淘汰出去。 :比較易于實(shí)現(xiàn),開(kāi)銷(xiāo)也比較少。 第128頁(yè)/共164頁(yè)第一百二十八頁(yè),編輯于星期日:十七點(diǎn) 二十二分。第129頁(yè)/共164頁(yè)第一百二十九頁(yè),編輯于星期日:十七點(diǎn)

46、二十二分。1. 虛存管理和實(shí)存管理的主要區(qū)別是( )。A.虛存區(qū)分邏輯地址和物理地址,實(shí)存不分;B.實(shí)存要求一程序在內(nèi)存必須連續(xù),虛存不需要連續(xù)的內(nèi)存;C.實(shí)存要求一程序必須全部裝入內(nèi)存才開(kāi)始運(yùn)行,虛存允許程序在執(zhí)行的過(guò)程中逐步裝入;D.虛存以邏輯地址執(zhí)行程序,實(shí)存以物理地址執(zhí)行程序;2在下列有關(guān)請(qǐng)求分頁(yè)管理的敘述中,正確的是( )。A.程序和數(shù)據(jù)是在開(kāi)始執(zhí)行前一次性裝入的B.產(chǎn)生缺頁(yè)中段一定要淘汰一個(gè)頁(yè)面C.一個(gè)被淘汰的頁(yè)面一定要寫(xiě)回外存D.在頁(yè)表中要有“中段位”.“訪問(wèn)位”和“改變位”等信息第130頁(yè)/共164頁(yè)第一百三十頁(yè),編輯于星期日:十七點(diǎn) 二十二分。3LRU置換算法所基于的思想是(

47、 )。A.在最近的過(guò)去用得少的在最近的將來(lái)也用得少B.在最近的過(guò)去用得多的在最近的將來(lái)也用得多C.在最近的過(guò)去很久未使用的在最近的將來(lái)會(huì)使用D.在最近的過(guò)去很久未使用的在最近的將來(lái)也不會(huì)使用4在下面關(guān)于虛擬存儲(chǔ)器的敘述中,正確的是( )。A.要求程序運(yùn)行前必須全部裝入內(nèi)存且在運(yùn)行過(guò)程中一直駐留在內(nèi)存B.要求程序運(yùn)行前不必全部裝入內(nèi)存且在運(yùn)行過(guò)程中不必一直駐留在內(nèi)存C.要求程序運(yùn)行前不必全部裝入內(nèi)存但是在運(yùn)行過(guò)程中必須一直駐留在內(nèi)存D.要求程序運(yùn)行前必須全部裝入內(nèi)存但在運(yùn)行過(guò)程中不必一直駐留在內(nèi)存 第131頁(yè)/共164頁(yè)第一百三十一頁(yè),編輯于星期日:十七點(diǎn) 二十二分。5、系統(tǒng)“抖動(dòng)”現(xiàn)象的發(fā)生是

48、由( )引起的?A.置換算法選擇不當(dāng) B.交換的信息量過(guò)大C.內(nèi)存容量充足 D.請(qǐng)求頁(yè)式管理方案6. 頁(yè)式虛擬存儲(chǔ)管理的主要特點(diǎn)是( )。A.不要求將作業(yè)裝入到主存的連續(xù)區(qū)域B.不要求將作業(yè)同時(shí)全部裝入到主存的連續(xù)區(qū)域C.不要求進(jìn)行缺頁(yè)中斷處理D.不要求進(jìn)行頁(yè)面置換7在請(qǐng)求分頁(yè)存儲(chǔ)管理中,當(dāng)所訪問(wèn)的頁(yè)面不在內(nèi)存時(shí),便產(chǎn)生缺頁(yè)中斷,缺頁(yè)中斷是屬于( )。A.I/O中斷 B.程序中斷C.訪管中斷 D.外中斷第132頁(yè)/共164頁(yè)第一百三十二頁(yè),編輯于星期日:十七點(diǎn) 二十二分。8.在請(qǐng)求頁(yè)式存儲(chǔ)管理中,當(dāng)進(jìn)程訪問(wèn)頁(yè)面有效時(shí)時(shí),應(yīng)當(dāng)進(jìn)行()操作A. 交換 B.調(diào)頁(yè) C. 地址轉(zhuǎn)換 D.頁(yè)面淘汰9.在請(qǐng)

49、求頁(yè)式存儲(chǔ)管理中,當(dāng)進(jìn)程對(duì)頁(yè)面()時(shí),進(jìn)行調(diào)頁(yè)操作A. 淘汰 B.調(diào)入 C. 訪問(wèn)無(wú)效 D.訪問(wèn)有效10.在請(qǐng)求頁(yè)式存儲(chǔ)管理中,當(dāng)一個(gè)進(jìn)程的內(nèi)存工作集達(dá)到其上限時(shí),再需要調(diào)頁(yè)就必須進(jìn)行頁(yè)面()操作A. 交換 B.淘汰 C. 換出 D.換入第133頁(yè)/共164頁(yè)第一百三十三頁(yè),編輯于星期日:十七點(diǎn) 二十二分。第134頁(yè)/共164頁(yè)第一百三十四頁(yè),編輯于星期日:十七點(diǎn) 二十二分。第135頁(yè)/共164頁(yè)第一百三十五頁(yè),編輯于星期日:十七點(diǎn) 二十二分。 1分段 通常,一個(gè)作業(yè)是由若干相對(duì)獨(dú)立的部分組成,各自完成不同的功能。為了編程和使用的方便,我們希望所以,通常為段的長(zhǎng)度由該段所包含的邏輯信息的長(zhǎng)度決

50、定,因而各段長(zhǎng)度不等。 第136頁(yè)/共164頁(yè)第一百三十六頁(yè),編輯于星期日:十七點(diǎn) 二十二分。B0SA0NY0LX0PM0K邏輯段號(hào)邏輯段號(hào)01234作業(yè)作業(yè)1的地址空間的地址空間10003200500060008000PKSLN主存主存K 3200P 1500L 6000N 8000S 5000長(zhǎng)度長(zhǎng)度 段地址段地址01234操作系統(tǒng)操作系統(tǒng)第137頁(yè)/共164頁(yè)第一百三十七頁(yè),編輯于星期日:十七點(diǎn) 二十二分。2. 分段地址空間 一個(gè)用戶作業(yè)或程序的地址空間被劃分為若干個(gè)段,每個(gè)段定義了一組邏輯信息,每段的長(zhǎng)度由相應(yīng)的邏輯信息組成的大小確定,且可動(dòng)態(tài)增長(zhǎng)。例如: 一個(gè)程序可有主程序段、子程序

51、段、數(shù)據(jù)段與棧段等,由于一個(gè)程序被分成多個(gè)段,因此整個(gè)程序地址空間是二維的。第138頁(yè)/共164頁(yè)第一百三十八頁(yè),編輯于星期日:十七點(diǎn) 二十二分。第139頁(yè)/共164頁(yè)第一百三十九頁(yè),編輯于星期日:十七點(diǎn) 二十二分。 3程序的地址結(jié)構(gòu) 分段存儲(chǔ)關(guān)系系統(tǒng)的邏輯地址結(jié)構(gòu)由段號(hào)S和段內(nèi)位移W(也稱(chēng)作段內(nèi)地址)組成.第140頁(yè)/共164頁(yè)第一百四十頁(yè),編輯于星期日:十七點(diǎn) 二十二分。 4內(nèi)存分配 在分段存儲(chǔ)管理中,各分區(qū)的大小由對(duì)應(yīng)段的大小決定。在分段存儲(chǔ)管理系統(tǒng)中,一個(gè)作業(yè)或進(jìn)程可以有多個(gè)段,這些段可以離散地放入內(nèi)存的不同的分區(qū)中。就是說(shuō),一個(gè)作業(yè)或進(jìn)程的各段不一定放在彼此相鄰的分區(qū)中。 第141頁(yè)

52、/共164頁(yè)第一百四十一頁(yè),編輯于星期日:十七點(diǎn) 二十二分。 5段表和段表地址寄存器 同分頁(yè)一樣,為了能找出每個(gè)邏輯段所對(duì)應(yīng)的物理內(nèi)存中分區(qū)的位置,系統(tǒng)為每個(gè)進(jìn)程建立了一個(gè)段映射表,簡(jiǎn)稱(chēng)段表。每個(gè)段在段表中占有一項(xiàng)。段表按段號(hào)從小到大順序排列。一個(gè)進(jìn)程的全部段都應(yīng)在該進(jìn)程的段表中有所登記。當(dāng)作業(yè)調(diào)度程序調(diào)入該作業(yè)時(shí),就為相應(yīng)進(jìn)程建立段表;在撤銷(xiāo)進(jìn)程時(shí),清除此進(jìn)程的段表。 第142頁(yè)/共164頁(yè)第一百四十二頁(yè),編輯于星期日:十七點(diǎn) 二十二分。作業(yè)空間(MAIN)0030K(X)1020K(D)2015K(S)3010K30K20K15K10K40K80K120K150K段長(zhǎng)基址段號(hào)(MAIN)0

53、30K(X)120K(D)215K(S)310K040K80K120K150K段表內(nèi)存空間0123段、段表、及段在內(nèi)存空間占用情況第143頁(yè)/共164頁(yè)第一百四十三頁(yè),編輯于星期日:十七點(diǎn) 二十二分。6. 地址變換機(jī)構(gòu) 控制寄存器段表始址段表長(zhǎng)度2100段號(hào)S越界1 K段長(zhǎng)600段號(hào)01236 K4 K5002008 K9200基址位移量W82928K82928692主存物理地址有效地址第144頁(yè)/共164頁(yè)第一百四十四頁(yè),編輯于星期日:十七點(diǎn) 二十二分。某段式存儲(chǔ)管理系統(tǒng)中,有一作業(yè)的段表(SMT)如下表所示,求邏輯地址0,65,1,55,2,90,3,20對(duì)應(yīng)的主存地址(按十進(jìn)制)。(其中

54、方括號(hào)中的第一個(gè)元素為段號(hào),第二個(gè)元素為段內(nèi)地址)解解 邏輯地址0,65:對(duì)應(yīng)的主存地址為60065665。邏輯地址1,55:因段內(nèi)地址超過(guò)段長(zhǎng),所以產(chǎn)生段地址越界中斷。邏輯地址2,90:對(duì)應(yīng)的主存地址為1000901090。邏輯地址3,20:因?yàn)闋顟B(tài)位為0,即該段在輔存中,所以產(chǎn)生缺段中斷。段號(hào)段長(zhǎng)(容量)主存起始地址狀態(tài)01232005010015060085010001110第145頁(yè)/共164頁(yè)第一百四十五頁(yè),編輯于星期日:十七點(diǎn) 二十二分。7分頁(yè)和分段的主要區(qū)別 分頁(yè)和分段存儲(chǔ)管理系統(tǒng)有很多相似之處,如:二者在內(nèi)存中都不是整體連續(xù)的,都要通過(guò)地址映射機(jī)構(gòu)將邏輯地址映射到物理內(nèi)存中。但

55、二者在概念上完全不同,主要有以下幾點(diǎn): (1)每一段在邏輯上是相對(duì)完整的一組信息,如一個(gè)函數(shù)、過(guò)程、數(shù)組等。第146頁(yè)/共164頁(yè)第一百四十六頁(yè),編輯于星期日:十七點(diǎn) 二十二分。(2)在一個(gè)系統(tǒng)中所有頁(yè)的大小都一樣,并且只能有一種大小。取決于用戶所編寫(xiě)的程序。(3)地址編號(hào)從0開(kāi)始順次遞增,一直排到末尾。要標(biāo)識(shí)一個(gè)地址,除給出段內(nèi)地址外,還必須給出段名。 第147頁(yè)/共164頁(yè)第一百四十七頁(yè),編輯于星期日:十七點(diǎn) 二十二分。 1段表機(jī)制 在分段存儲(chǔ)管理中用到的主要數(shù)據(jù)結(jié)構(gòu)是段表。段表項(xiàng)中除了段名、段長(zhǎng)和該段在內(nèi)存的起始地址外,應(yīng)對(duì)段表進(jìn)行擴(kuò)充,擴(kuò)充后的段表如圖所示:第148頁(yè)/共164頁(yè)第一百

56、四十八頁(yè),編輯于星期日:十七點(diǎn) 二十二分。 2地址轉(zhuǎn)換 段地址轉(zhuǎn)換與分頁(yè)地址轉(zhuǎn)換的過(guò)程基本相同。 3缺段中斷 在段式虛存系統(tǒng)中,一個(gè)作業(yè)的所有分段的副本都保存在外存上。當(dāng)它運(yùn)行時(shí),首先把當(dāng)前需要的一段或幾段裝入內(nèi)存,其他段在用到時(shí)才裝入。當(dāng)所訪問(wèn)的段不在內(nèi)存時(shí),便產(chǎn)生缺段中斷。操作系統(tǒng)接到中斷信號(hào)后,進(jìn)行相應(yīng)處理,按類(lèi)似于申請(qǐng)分區(qū)的方式在內(nèi)存中找到一塊足夠大的分區(qū),以便放入所需分段。如找不到這樣的分區(qū),則檢查未分配分區(qū)的總和,確定是否需要對(duì)分區(qū)進(jìn)行緊縮或者移出(即淘汰)一個(gè)或幾個(gè)分段后再把該分段裝入內(nèi)存。 第149頁(yè)/共164頁(yè)第一百四十九頁(yè),編輯于星期日:十七點(diǎn) 二十二分。 分段管理的一個(gè)優(yōu)

57、點(diǎn)是提供了對(duì)代碼或數(shù)據(jù)進(jìn)行有效地共享。為了共享某個(gè)段,只需在各個(gè)作業(yè)的段表中登記一項(xiàng),使它們的基地址都指向同一個(gè)物理單元。 共享是在段一級(jí)出現(xiàn)的。這樣,任何共享的信息就可單獨(dú)成為一段。 分段管理的另一個(gè)突出優(yōu)點(diǎn)是便于各段保護(hù)。段的保護(hù)措施有以下幾種: (1)存取控制; (2)段表本身可起保護(hù)作用; (3)保護(hù)環(huán)。 第150頁(yè)/共164頁(yè)第一百五十頁(yè),編輯于星期日:十七點(diǎn) 二十二分。分段系統(tǒng)中共享editor的示意圖 editor進(jìn)程1data 1進(jìn)程2editordata 2段表段長(zhǎng)基址16080402401608040380editordata 1data 280240280380420第151頁(yè)/共164頁(yè)第一百五十一頁(yè),編輯于星期日:十七點(diǎn) 二十二分。1. 基本原理基本原理 作業(yè)地址空間和地址結(jié)構(gòu) 04K8K12K15K16K子程序段04K8K數(shù)據(jù)段04K8K10K12K(a)段號(hào)(S)段內(nèi)頁(yè)號(hào)(P)段內(nèi)地址(W)(b)主程序段段頁(yè)式存儲(chǔ)管理技術(shù) 第152頁(yè)/共164頁(yè)第一百五十二頁(yè),編輯于星期日:十七點(diǎn) 二十二分。 1基本原理 段頁(yè)式存儲(chǔ)管理技術(shù)的基本要點(diǎn)是: (1)等分內(nèi)存。把整個(gè)內(nèi)存分成大小相等的內(nèi)存塊,內(nèi)存塊從0開(kāi)始依次編號(hào)。 (2)作業(yè)或進(jìn)程的地址空間采用分段的方式。即把用戶程序分為若干個(gè)段,每一段

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論