操作系統(tǒng)課件:5-存儲(chǔ)管理(8h)_第1頁(yè)
操作系統(tǒng)課件:5-存儲(chǔ)管理(8h)_第2頁(yè)
操作系統(tǒng)課件:5-存儲(chǔ)管理(8h)_第3頁(yè)
操作系統(tǒng)課件:5-存儲(chǔ)管理(8h)_第4頁(yè)
操作系統(tǒng)課件:5-存儲(chǔ)管理(8h)_第5頁(yè)
已閱讀5頁(yè),還剩59頁(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、操作系統(tǒng) 內(nèi)存管理存儲(chǔ)管理存儲(chǔ)管理是指存儲(chǔ)器資源(內(nèi)存并涉及外存)的管理本章主要討論內(nèi)存管理,主要包括:存儲(chǔ)管理的功能分區(qū)存儲(chǔ)管理覆蓋與交換技術(shù)頁(yè)式管理段式與頁(yè)式管理局部性原理和抖動(dòng)問(wèn)題北京科技大學(xué) 計(jì)算機(jī)系5.1 存儲(chǔ)管理功能5.1.1 虛擬存儲(chǔ)器虛擬地址(virtual address)用戶的程序經(jīng)過(guò)匯編或編譯后形成目標(biāo)代碼,目標(biāo)代碼通常采用相對(duì)地址的形式。這種相對(duì)地址即為虛擬地址 物理地址內(nèi)存中存儲(chǔ)單元的地址。虛擬存儲(chǔ)器將進(jìn)程中的目標(biāo)代碼、數(shù)據(jù)等的虛擬地址組成的虛擬空間北京科技大學(xué) 計(jì)算機(jī)系5.1 存儲(chǔ)管理功能5.1.1 虛擬存儲(chǔ)器基本原理在程序裝入時(shí),不必將其全部讀入到內(nèi)存,而只需將當(dāng)

2、前需要執(zhí)行的部分頁(yè)或段讀入到內(nèi)存,就可讓程序開始執(zhí)行。在程序執(zhí)行過(guò)程中,如果需執(zhí)行的指令或訪問(wèn)的數(shù)據(jù)尚未在內(nèi)存(稱為缺頁(yè)或缺段),則由處理器通知操作系統(tǒng)將相應(yīng)的頁(yè)或段調(diào)入到內(nèi)存,然后繼續(xù)執(zhí)行程序。另一方面,操作系統(tǒng)將內(nèi)存中暫時(shí)不使用的頁(yè)或段調(diào)出保存在外存上,從而騰出空間存放將要裝入的程序以及將要調(diào)入的頁(yè)或段具有請(qǐng)求調(diào)入和置換功能,只需程序的一部分在內(nèi)存就可執(zhí)行,對(duì)于動(dòng)態(tài)鏈接庫(kù)也可以請(qǐng)求調(diào)入。北京科技大學(xué) 計(jì)算機(jī)系北京科技大學(xué) 計(jì)算機(jī)系5.1 存儲(chǔ)管理功能5.1.1 虛擬存儲(chǔ)器技術(shù)的好處可在較小的可用內(nèi)存中執(zhí)行較大的用戶程序 可在內(nèi)存中容納更多程序并發(fā)執(zhí)行 不必影響編程時(shí)的程序結(jié)構(gòu) 提供給用戶可

3、用的虛擬內(nèi)存空間通常大于物理內(nèi)存北京科技大學(xué) 計(jì)算機(jī)系5.1 存儲(chǔ)管理功能5.1.2 地址變換程序在成為進(jìn)程前的準(zhǔn)備工作: 編輯:形成源文件(符號(hào)地址) 編譯:形成目標(biāo)模塊(模塊內(nèi)符號(hào)地址解析) 鏈接:由多個(gè)目標(biāo)模塊或程序庫(kù)生成可執(zhí)行文件(模塊間符號(hào)地址解析) 裝入:構(gòu)造PCB,形成進(jìn)程(使用物理地址) 北京科技大學(xué) 計(jì)算機(jī)系5.1 存儲(chǔ)管理功能5.1.2 地址變換地址映射(地址重定位):將用戶程序中的虛擬地址轉(zhuǎn)換為運(yùn)行時(shí)由機(jī)器直接尋址的物理地址。實(shí)現(xiàn)的方法:靜態(tài)地址重定位(static address relocation):是在虛擬空間程序執(zhí)行之前由裝配程序完成地址映射工作。動(dòng)態(tài)地址重定位

4、(Dynamic address relocation):是在程序執(zhí)行過(guò)程中,在CPU訪問(wèn)內(nèi)存之前,將要訪問(wèn)的程序或數(shù)據(jù)地址轉(zhuǎn)換成內(nèi)存地址。 北京科技大學(xué) 計(jì)算機(jī)系5.1 存儲(chǔ)管理功能靜態(tài)地址重定位優(yōu)點(diǎn):不需要硬件的支持缺點(diǎn):使用靜態(tài)重定位方法進(jìn)行地址變換無(wú)法實(shí)現(xiàn)虛擬存儲(chǔ)器。必須占用連續(xù)的內(nèi)存空間 難以做到程序和數(shù)據(jù)的共享 北京科技大學(xué) 計(jì)算機(jī)系5.1 存儲(chǔ)管理功能動(dòng)態(tài)地址重定位依靠硬件地址機(jī)構(gòu)完成需要基地址寄存器BR和虛擬地址寄存器VR物理內(nèi)存地址MA=(BR)+(VR)北京科技大學(xué) 計(jì)算機(jī)系0100LOAD A 50012345500LOAD A 50012345VRBR1100具體過(guò)程:

5、設(shè)置BR,VR將程序裝入內(nèi)存,并將占用內(nèi)存首地址存入BR中將要訪問(wèn)的虛擬地址存入VR地址變換機(jī)構(gòu)把VR和BR內(nèi)容相加,得到要訪問(wèn)的物理地址500100015005.1 存儲(chǔ)管理功能動(dòng)態(tài)重定位主要優(yōu)點(diǎn):可以對(duì)內(nèi)存進(jìn)行非連續(xù)分配。動(dòng)態(tài)重定位提供了實(shí)現(xiàn)虛擬存儲(chǔ)器的基礎(chǔ)。有利于程序段的共享。北京科技大學(xué) 計(jì)算機(jī)系5.1 存儲(chǔ)管理功能5.1.3 內(nèi)外存數(shù)據(jù)傳輸?shù)目刂埔獙?shí)現(xiàn)內(nèi)存擴(kuò)充,內(nèi)存和外存之間必須經(jīng)常地交換數(shù)據(jù)。用戶程序自己控制,如覆蓋操作系統(tǒng)控制交換方式(整體):由操作系統(tǒng)把那些在內(nèi)存中處于等待狀態(tài)的進(jìn)程換出內(nèi)存,而把那些等待事件已經(jīng)發(fā)生、處于就緒態(tài)的進(jìn)程換入內(nèi)存請(qǐng)求調(diào)入和預(yù)調(diào)入(頁(yè),段)北京科技大

6、學(xué) 計(jì)算機(jī)系5.1 存儲(chǔ)管理功能5.1.4 內(nèi)存分配與回收為有效合理利用內(nèi)存,分配與回收方法要考慮和確定以下5種策略和數(shù)據(jù)結(jié)構(gòu):分配結(jié)構(gòu) 登記內(nèi)存使用情況放置策略 確定調(diào)入內(nèi)存的程序和數(shù)據(jù)的位置交換策略確定哪些程序段或數(shù)據(jù)段能調(diào)出內(nèi)存, 以便騰出足夠的空間調(diào)入策略外存中的程序段和數(shù)據(jù)段什么時(shí)間按什么樣的控制方式進(jìn)入內(nèi)存?;厥詹呗曰厥詹呗园ǘc(diǎn),一是回收的時(shí)機(jī),二是對(duì)所回收的內(nèi)存空閑區(qū)和已存在的內(nèi)存空閑區(qū)的調(diào)整。北京科技大學(xué) 計(jì)算機(jī)系5.1 存儲(chǔ)管理功能5.1.5 內(nèi)存信息的共享與保護(hù)在多道程序設(shè)計(jì)環(huán)境下,要限制各進(jìn)程只在自己的存儲(chǔ)區(qū)活動(dòng),除了被允許共享的部分之外,各進(jìn)程不能對(duì)別的進(jìn)程的程序和

7、數(shù)據(jù)段產(chǎn)生干擾和破壞。因此須對(duì)內(nèi)存中的程序和數(shù)據(jù)段采取保護(hù)措施常用的內(nèi)存信息保護(hù)方法有硬件法、軟件法和軟硬件結(jié)合3種方法。北京科技大學(xué) 計(jì)算機(jī)系5.1 存儲(chǔ)管理功能5.1.5 內(nèi)存信息的共享與保護(hù)上下界保護(hù)法一種常用的硬件保護(hù)法為進(jìn)程設(shè)置了上下界寄存器,訪問(wèn)的地址不能超出上下界規(guī)定的范圍。若在規(guī)定的范圍之內(nèi),則訪問(wèn)是合法的;否則是非法的,并產(chǎn)生訪址越界中斷。北京科技大學(xué) 計(jì)算機(jī)系5.1 存儲(chǔ)管理功能保護(hù)鍵法北京科技大學(xué) 計(jì)算機(jī)系 存儲(chǔ)塊分配一個(gè)單獨(dú)的保護(hù)鍵。在程序狀態(tài)字中則設(shè)置相應(yīng)的保護(hù)鍵開關(guān)字段,對(duì)不同的進(jìn)程賦予不同的開關(guān)代碼以和被保護(hù)的存儲(chǔ)塊中的保護(hù)鍵匹配。 保護(hù)鍵可設(shè)置成:對(duì)讀寫同時(shí)保護(hù)

8、(如2k4k)或讀、寫單項(xiàng)保護(hù)(如4k6k)。如果開關(guān)字與保護(hù)鍵匹配,則訪問(wèn)該存儲(chǔ)塊是允許的,否則將產(chǎn)生訪問(wèn)出錯(cuò)中斷。 5.1 存儲(chǔ)管理功能5.1.5 內(nèi)存信息的共享與保護(hù)界限寄存器與CPU的用戶態(tài)與核心態(tài)工作方式相結(jié)合的保護(hù)方式 在這種保護(hù)模式下,用戶態(tài)進(jìn)程只能訪問(wèn)那些在界限寄存器所規(guī)定范圍內(nèi)的內(nèi)存部分,而核心態(tài)進(jìn)程則可以訪問(wèn)整個(gè)內(nèi)存地址空間。 北京科技大學(xué) 計(jì)算機(jī)系北京科技大學(xué) 計(jì)算機(jī)系5.2 分區(qū)存儲(chǔ)管理(進(jìn)程整體)分區(qū)管理原理: 給每一個(gè)內(nèi)存中的進(jìn)程劃分一塊適當(dāng)大小的存儲(chǔ)區(qū),以連續(xù)存儲(chǔ)各進(jìn)程的程序和數(shù)據(jù),使各進(jìn)程得以并發(fā)執(zhí)行。按分區(qū)的時(shí)機(jī),分區(qū)管理分類:固定分區(qū)法動(dòng)態(tài)分區(qū)法北京科技大學(xué)

9、 計(jì)算機(jī)系5.2 分區(qū)存儲(chǔ)管理固定分區(qū)法固定分區(qū)法把內(nèi)存區(qū)固定地劃分為若干個(gè)大小不等的區(qū)域。分區(qū)一旦劃分結(jié)束,在整個(gè)執(zhí)行過(guò)程中每個(gè)分區(qū)的長(zhǎng)度和內(nèi)存的總分區(qū)個(gè)數(shù)將保持不變。對(duì)內(nèi)存的管理和控制通過(guò)數(shù)據(jù)結(jié)構(gòu):分區(qū)表進(jìn)行。北京科技大學(xué) 計(jì)算機(jī)系5.2 分區(qū)存儲(chǔ)管理固定分區(qū)法分配北京科技大學(xué) 計(jì)算機(jī)系要求Xk大小分區(qū)取分區(qū)說(shuō)明表第一項(xiàng)表結(jié)束嗎?該分區(qū)空閑嗎?分區(qū)長(zhǎng)度=Xk置狀態(tài)位”使用”無(wú)法分配返回分區(qū)號(hào)取下一表項(xiàng)是是是否否否5.2 分區(qū)存儲(chǔ)管理動(dòng)態(tài)分區(qū)法動(dòng)態(tài)分區(qū)法基本思路:在作業(yè)執(zhí)行前并不直接建立分區(qū),分區(qū)的建立是在作業(yè)的處理過(guò)程中進(jìn)行的。且其大小可隨作業(yè)或進(jìn)程對(duì)內(nèi)存的要求而改變。北京科技大學(xué) 計(jì)算機(jī)

10、系進(jìn)程A8k進(jìn)程B16k進(jìn)程C64k進(jìn)程D124kOS進(jìn)程AOS進(jìn)程A進(jìn)程BOS進(jìn)程A進(jìn)程B進(jìn)程COS進(jìn)程A進(jìn)程B進(jìn)程D進(jìn)程C5.2 分區(qū)存儲(chǔ)管理動(dòng)態(tài)分區(qū)法內(nèi)存分配變化過(guò)程北京科技大學(xué) 計(jì)算機(jī)系OSA(8k)B(16K)D(124k)C完成(64k)空閑區(qū)24k 空閑區(qū)0256k進(jìn)程E(50k)進(jìn)程F(16k)進(jìn)入內(nèi)存0256kOSA(8k)空閑區(qū)16k空閑合并124+14=138kE(50k)8k 空閑區(qū)F(16k)OSA(8k)B(16K)D(124k)E(50k)8k 空閑區(qū)0256kF(16k)14k 空閑區(qū)進(jìn)程B(16k)進(jìn)程D(124k)完成5.2 分區(qū)存儲(chǔ)管理動(dòng)態(tài)分區(qū)法動(dòng)態(tài)分區(qū)法

11、數(shù)據(jù)結(jié)構(gòu)可用表:記錄空閑區(qū),包括區(qū)號(hào),長(zhǎng)度和起始地址自由鏈:把空閑區(qū)組成鏈表,空閑區(qū)的頭幾個(gè)單元存放本 空閑區(qū)的大小及下個(gè)空閑區(qū)的起始地址。請(qǐng)求表:記錄請(qǐng)求內(nèi)存資源的作業(yè)或進(jìn)程號(hào)和請(qǐng)求的內(nèi)存大小北京科技大學(xué) 計(jì)算機(jī)系5.2 分區(qū)存儲(chǔ)管理動(dòng)態(tài)分區(qū)法動(dòng)態(tài)分區(qū)時(shí)的分配與回收主要解決3個(gè)問(wèn)題:對(duì)于請(qǐng)求表中的要求內(nèi)存長(zhǎng)度,分配程序從可用表或自由鏈中尋找出合適的空閑區(qū)。分配空閑區(qū)之后,更新可用表或自由鏈。進(jìn)程或作業(yè)釋放內(nèi)存資源時(shí),和相鄰的空閑區(qū)進(jìn)行鏈接合并,更新可用表或自由鏈。空閑區(qū)分配算法:最先適應(yīng)法(first fit algorithm)最佳適應(yīng)法(best fit algorithm)最壞適應(yīng)法(

12、worst fit algorithm)北京科技大學(xué) 計(jì)算機(jī)系5.2 分區(qū)存儲(chǔ)管理動(dòng)態(tài)分區(qū)法最先適應(yīng)法北京科技大學(xué) 計(jì)算機(jī)系從空閑區(qū)表第一表目順序查找表結(jié)束嗎?該空閑區(qū)長(zhǎng)度=SIZE從可用表移去該表目,調(diào)整可用表無(wú)法分配返回分配起始地址取下一表項(xiàng)請(qǐng)求SIZE大小的分區(qū)是否否是該空閑區(qū)長(zhǎng)度=SIZE從該空閑區(qū)截取所需大小,修改可用表否是空閑區(qū)是按起始地址遞增的次序排列5.2 分區(qū)存儲(chǔ)管理動(dòng)態(tài)分區(qū)法最佳適應(yīng)算法該算法要求按空閑區(qū)大小從小到大的次序組成空閑區(qū)可用表或自由鏈。 最壞適應(yīng)算法該算法要求空閑區(qū)按其大小遞減的順序組成空閑區(qū)可用表或自由鏈。北京科技大學(xué) 計(jì)算機(jī)系5.2 分區(qū)存儲(chǔ)管理動(dòng)態(tài)分區(qū)法動(dòng)

13、態(tài)分區(qū)時(shí)的回收與拼接將一個(gè)新空閑可用區(qū)插入可用表或隊(duì)列時(shí),該空閑區(qū)和上下相鄰區(qū)的關(guān)系是下述4種關(guān)系之一:該空閑區(qū)的上下兩相鄰分區(qū)都是空閑區(qū)該空閑區(qū)的上相鄰區(qū)是空閑區(qū)該空閑區(qū)的下相鄰區(qū)是空閑區(qū)兩相鄰區(qū)都不是空閑區(qū)北京科技大學(xué) 計(jì)算機(jī)系5.2 分區(qū)存儲(chǔ)管理動(dòng)態(tài)分區(qū)法幾種算法比較從搜索速度上看最先適應(yīng)算法具有最佳性能。從釋放速度來(lái)看最先適應(yīng)算法也是最佳的。從空間利用率來(lái)看最佳適應(yīng)法找到的空閑區(qū)是最佳的北京科技大學(xué) 計(jì)算機(jī)系5.2 分區(qū)存儲(chǔ)管理分區(qū)存儲(chǔ)管理的優(yōu)缺點(diǎn)優(yōu)點(diǎn):實(shí)現(xiàn)了多個(gè)作業(yè)或進(jìn)程對(duì)內(nèi)存的共享。該方法要求的硬件支持少,算法簡(jiǎn)單,容易實(shí)現(xiàn)。缺點(diǎn):內(nèi)存利用率仍然不高。存儲(chǔ)器中可能含有從未用過(guò)的信息

14、。存在空閑區(qū)碎片不能利用的問(wèn)題。作業(yè)或進(jìn)程的大小受分區(qū)大小控制,除非配合采用覆蓋和交換技術(shù)。難以實(shí)現(xiàn)各分區(qū)間的信息共享。北京科技大學(xué) 計(jì)算機(jī)系北京科技大學(xué) 計(jì)算機(jī)系5.3 覆蓋與交換技術(shù)覆蓋引入:其目標(biāo)是在較小的可用內(nèi)存中運(yùn)行較大的程序。用于多道程序系統(tǒng),與分區(qū)存儲(chǔ)管理配合使用。原理:一個(gè)程序的幾個(gè)代碼段或數(shù)據(jù)段,按照時(shí)間先后來(lái)占用公共的內(nèi)存空間。將程序的必要部分(常用功能)的代碼和數(shù)據(jù)常駐內(nèi)存;可選部分(不常用功能)在其他程序模塊中實(shí)現(xiàn),平時(shí)存在外存(覆蓋文件),用到時(shí)才裝入內(nèi)存;不存在調(diào)用關(guān)系的模塊不必同時(shí)裝入,可以相互覆蓋。缺點(diǎn):編程時(shí)必須劃分程序模塊和確定程序模塊之間的覆蓋關(guān)系,增加編

15、程復(fù)雜度。裝入覆蓋文件,以時(shí)間來(lái)?yè)Q取空間。北京科技大學(xué) 計(jì)算機(jī)系5.3 覆蓋與交換技術(shù)交換技術(shù)引入多個(gè)程序并發(fā)執(zhí)行,可以將暫時(shí)不執(zhí)行的程序送到外存中,要執(zhí)行的程序讀入內(nèi)存。原理暫停執(zhí)行內(nèi)存中的進(jìn)程,將整個(gè)進(jìn)程的地址空間保存到外存的交換區(qū)中(換出swap out),而將外存中由阻塞變?yōu)榫途w的進(jìn)程的地址空間讀入到內(nèi)存中,并將該進(jìn)程送到就緒隊(duì)列(換入swap in)。優(yōu)點(diǎn)增加并發(fā)運(yùn)行的程序數(shù)目;編寫程序時(shí)不用考慮程序結(jié)構(gòu)缺點(diǎn)程序整個(gè)地址空間都進(jìn)行換入/換出增加了處理機(jī)開銷。北京科技大學(xué) 計(jì)算機(jī)系5.4 頁(yè)式管理頁(yè)式管理的基本原理將各進(jìn)程的虛擬空間劃分成若干個(gè)長(zhǎng)度相等的頁(yè)(page),頁(yè)式管理把內(nèi)存空

16、間按頁(yè)的大小劃分成片或者頁(yè)面(page frame),然后把頁(yè)式虛擬地址與內(nèi)存地址建立一一對(duì)應(yīng)頁(yè)表,并用相應(yīng)的硬件地址變換機(jī)構(gòu),來(lái)解決離散地址變換問(wèn)題。頁(yè)式管理采用請(qǐng)求調(diào)頁(yè)或預(yù)調(diào)頁(yè)技術(shù)實(shí)現(xiàn)了內(nèi)外存存儲(chǔ)器的統(tǒng)一管理。 優(yōu)點(diǎn)沒(méi)有外碎片,每個(gè)內(nèi)碎片不超過(guò)頁(yè)大小。一個(gè)程序不必連續(xù)存放。分頁(yè)管理重點(diǎn)在于頁(yè)劃分后的地址變換以及頁(yè)面的調(diào)入調(diào)出技術(shù)北京科技大學(xué) 計(jì)算機(jī)系5.4 頁(yè)式管理靜態(tài)頁(yè)式管理內(nèi)存頁(yè)面分配與回收系統(tǒng)通過(guò)存儲(chǔ)頁(yè)面表、請(qǐng)求表以及頁(yè)表來(lái)完成內(nèi)存的分配工作。頁(yè)表:內(nèi)存中的一塊固定存儲(chǔ)區(qū)。頁(yè)式管理時(shí)每個(gè)進(jìn)程至少有一個(gè)頁(yè)表。 請(qǐng)求表:用來(lái)確定作業(yè)或進(jìn)程的虛擬空間的各頁(yè)在內(nèi)存中的實(shí)際對(duì)應(yīng)位置。存儲(chǔ)頁(yè)面表

17、:整個(gè)系統(tǒng)有一個(gè)存儲(chǔ)頁(yè)面表,其描述了物理內(nèi)存空間的分配使用狀況。存儲(chǔ)頁(yè)面表有兩種構(gòu)成方法:位示圖法 空閑頁(yè)面鏈表法 北京科技大學(xué) 計(jì)算機(jī)系5.4 頁(yè)式管理靜態(tài)頁(yè)式管理分配算法北京科技大學(xué) 計(jì)算機(jī)系請(qǐng)求n個(gè)頁(yè)面空閑頁(yè)面表中有n個(gè)空閑頁(yè)面嗎?設(shè)置頁(yè)表,將頁(yè)表始址,頁(yè)表長(zhǎng)度置入請(qǐng)求表中,置狀態(tài)=已分配返回否是無(wú)法分配搜索空閑頁(yè)面表,分配N個(gè)頁(yè)面,并將頁(yè)面號(hào)填入頁(yè)表中5.4 頁(yè)式管理靜態(tài)頁(yè)式管理地址轉(zhuǎn)換頁(yè)號(hào)頁(yè)面號(hào)021328北京科技大學(xué) 計(jì)算機(jī)系1.初始化頁(yè)表始址和頁(yè)表長(zhǎng)度控制寄存器 2.由控制寄存器頁(yè)表始址可以找到頁(yè)表所在位置3.根據(jù)頁(yè)內(nèi)偏移量,得到真實(shí)物理地址控制寄存器頁(yè)表長(zhǎng)度頁(yè)表始址2452有效

18、地址8452物理地址內(nèi)存8644頁(yè)面長(zhǎng)度為1k5.4 頁(yè)式管理靜態(tài)頁(yè)式管理靜態(tài)頁(yè)面管理優(yōu)缺點(diǎn)靜態(tài)頁(yè)式管理解決了分區(qū)管理時(shí)的碎片問(wèn)題。但是,由于靜態(tài)頁(yè)式管理要求進(jìn)程或作業(yè)在執(zhí)行前全部裝入內(nèi)存,如果可用頁(yè)面數(shù)小于用戶要求時(shí),該作業(yè)或進(jìn)程只好等待。而且作業(yè)和進(jìn)程的大小仍受內(nèi)存可用頁(yè)面數(shù)的限制。北京科技大學(xué) 計(jì)算機(jī)系5.4 頁(yè)式管理動(dòng)態(tài)頁(yè)式管理動(dòng)態(tài)頁(yè)式管理動(dòng)態(tài)頁(yè)式管理是在靜態(tài)頁(yè)式管理的基礎(chǔ)上發(fā)展起來(lái)的。它分為請(qǐng)求頁(yè)式管理和預(yù)調(diào)入頁(yè)式管理。在作業(yè)或進(jìn)程開始執(zhí)行之前,都不把作業(yè)或進(jìn)程的程序段和數(shù)據(jù)段一次性地全部裝入內(nèi)存,當(dāng)需要執(zhí)行某條指令而又發(fā)現(xiàn)它不在內(nèi)存時(shí),從而發(fā)生缺頁(yè)中斷,系統(tǒng)將外存中相應(yīng)的頁(yè)面調(diào)入內(nèi)

19、存 北京科技大學(xué) 計(jì)算機(jī)系5.4 頁(yè)式管理動(dòng)態(tài)頁(yè)式管理動(dòng)態(tài)頁(yè)式管理流程圖北京科技大學(xué)計(jì)算機(jī)系硬件完成工作區(qū)入內(nèi)存填寫頁(yè)表中各項(xiàng)進(jìn)程調(diào)度該進(jìn)程執(zhí)行啟動(dòng)待執(zhí)行指令計(jì)算頁(yè)號(hào)與頁(yè)內(nèi)相對(duì)地址該頁(yè)在主存嗎?地址變換訪問(wèn)內(nèi)存執(zhí)行完成該指令執(zhí)行下一條指令保留當(dāng)前進(jìn)程現(xiàn)場(chǎng)有空閑頁(yè)嗎?該頁(yè)修改過(guò)?調(diào)入所需頁(yè)調(diào)整頁(yè)面及空閑頁(yè)面表恢復(fù)被中斷進(jìn)程現(xiàn)場(chǎng)選擇一頁(yè)淘汰把該頁(yè)寫回外存是否是否是否缺頁(yè)中斷5.4 頁(yè)式管理動(dòng)態(tài)頁(yè)式管理請(qǐng)求頁(yè)式管理中的置換算法功能需要調(diào)入頁(yè)面時(shí),選擇內(nèi)存中哪個(gè)物理頁(yè)面被置換。出發(fā)點(diǎn)把未來(lái)不再使用的或短期內(nèi)較少使用的頁(yè)面調(diào)出方法隨機(jī)淘汰算法輪轉(zhuǎn)法和先進(jìn)先出算法最近最久未使用頁(yè)面置換算法理想型淘汰算法北

20、京科技大學(xué) 計(jì)算機(jī)系北京科技大學(xué) 計(jì)算機(jī)系5.4 頁(yè)式管理存儲(chǔ)保護(hù)頁(yè)式管理可以為內(nèi)存提供兩種方式的保護(hù):地址越界保護(hù) 由地址變換機(jī)構(gòu)中的控制寄存器的值:頁(yè)表長(zhǎng)度和所要訪問(wèn)的虛地址相比較完成另一種是通過(guò)頁(yè)表控制對(duì)內(nèi)存信息的操作方式以提供保護(hù)北京科技大學(xué) 計(jì)算機(jī)系5.4 頁(yè)式管理頁(yè)式管理優(yōu)缺點(diǎn)優(yōu)點(diǎn)由于它不要求作業(yè)或進(jìn)程的程序段和數(shù)據(jù)在內(nèi)存中連續(xù)存放,從而有效地解決了碎片問(wèn)題。動(dòng)態(tài)頁(yè)式管理提供了內(nèi)存和外存統(tǒng)一管理的虛存實(shí)現(xiàn)方式,使用戶可以利用的存儲(chǔ)空間大大增加。這既提高了主存的利用率,又有利于組織多道程序執(zhí)行。缺點(diǎn)要求有相應(yīng)的硬件支持。增加了系統(tǒng)開銷,例如缺頁(yè)中斷處理機(jī),請(qǐng)求調(diào)頁(yè)的算法如選擇不當(dāng),有

21、可能產(chǎn)生抖動(dòng)現(xiàn)象。 雖然消除了碎片,但每個(gè)作業(yè)或進(jìn)程的最后一頁(yè)(碎片)內(nèi)總有一部分空間得不到利用果頁(yè)面較大。北京科技大學(xué) 計(jì)算機(jī)系5.5 段式與段頁(yè)式管理段式管理的基本思想把程序按過(guò)程(函數(shù))關(guān)系分成段,每段有自己的名字。一個(gè)用戶進(jìn)程所包含的段對(duì)應(yīng)一個(gè)二維線形虛擬空間,也就是一個(gè)二維虛擬存儲(chǔ)器。段式管理程序以段為單位分配內(nèi)存,然后通過(guò)地址影射機(jī)構(gòu)把段式虛擬地址轉(zhuǎn)換為實(shí)際內(nèi)存物理地址。程序通過(guò)分段(segmentation)劃分為多個(gè)模塊,如代碼段、數(shù)據(jù)段、共享段??梢苑謩e編寫和編譯可以針對(duì)不同類型的段采取不同的保護(hù)可以按段進(jìn)行共享,包括通過(guò)動(dòng)態(tài)鏈接進(jìn)行代碼共享. 北京科技大學(xué) 計(jì)算機(jī)系5.5

22、段式與段頁(yè)式管理段式虛存空間段式管理把一個(gè)進(jìn)程的虛地址空間設(shè)計(jì)成二維結(jié)構(gòu),即段號(hào)s與段內(nèi)相對(duì)地址w。段號(hào)與段號(hào)之間無(wú)順序關(guān)系段的長(zhǎng)度不固定每個(gè)段定義一組邏輯上完整的程序或數(shù)據(jù)每個(gè)段是一個(gè)首地址為零的,連續(xù)的一維線性空間對(duì)段式虛地址空間的訪問(wèn)包括兩個(gè)部分:段名和段內(nèi)地址北京科技大學(xué) 計(jì)算機(jī)系段名段內(nèi)地址5.5 段式與段頁(yè)式管理段式管理的內(nèi)存分配與釋放段式管理中以段為單位分配內(nèi)存,每段分配一個(gè)連續(xù)的內(nèi)存區(qū)。分配與釋放在進(jìn)程的執(zhí)行過(guò)程中動(dòng)態(tài)進(jìn)行當(dāng)進(jìn)程要求調(diào)入某一段時(shí),內(nèi)存中有足夠的空閑區(qū)滿足該段的內(nèi)存要求:采用動(dòng)態(tài)分區(qū)式管理相同的空閑區(qū)管理方法內(nèi)存中沒(méi)有足夠的空閑區(qū)滿足該段的內(nèi)存要求:根據(jù)給定的置換

23、算法淘汰內(nèi)存中在今后一段時(shí)間內(nèi)不再被CPU訪問(wèn)的段北京科技大學(xué) 計(jì)算機(jī)系5.5 段式與段頁(yè)式管理段式管理的地址變換段式管理程序在進(jìn)行初始內(nèi)存分配之前,首先根據(jù)用戶要求的內(nèi)存大小為一個(gè)進(jìn)程建立一個(gè)段表,以實(shí)現(xiàn)動(dòng)態(tài)地址變換和缺段中斷處理及存儲(chǔ)保護(hù)等。段式管理通過(guò)段表來(lái)進(jìn)行內(nèi)存管理的。段號(hào)始址長(zhǎng)度存取方式內(nèi)外訪問(wèn)位與用戶指定的段名一一對(duì)應(yīng) 段在內(nèi)存或外存的物理地址段在內(nèi)存或外存的實(shí)際長(zhǎng)度用來(lái)對(duì)該段進(jìn)行存取保護(hù)的段現(xiàn)在存儲(chǔ)于外存還是內(nèi)存中根據(jù)淘汰算法的需要而設(shè)北京科技大學(xué) 計(jì)算機(jī)系5.5 段式與段頁(yè)式管理動(dòng)態(tài)地址變換北京科技大學(xué) 計(jì)算機(jī)系段號(hào)始址長(zhǎng)度存取方式內(nèi)外訪問(wèn)位013400RW內(nèi)段表始址段表地址

24、寄存器段表1 120虛擬地址段號(hào)段內(nèi)地址34003520內(nèi)存5.5 段式與段頁(yè)式管理段的共享與保護(hù)共享:內(nèi)存中只保留一個(gè)副本,供多個(gè)用戶使用北京科技大學(xué) 計(jì)算機(jī)系5.5 段式與段頁(yè)式管理段的共享與保護(hù)保護(hù)地址越界保護(hù)法:利用段表中的段長(zhǎng)項(xiàng)與虛擬地址中的段內(nèi)相對(duì)地址比較進(jìn)行。若段內(nèi)相對(duì)地址大于段長(zhǎng),系統(tǒng)就會(huì)產(chǎn)生保護(hù)中斷。存取方式控制保護(hù)法北京科技大學(xué) 計(jì)算機(jī)系5.5 段式與段頁(yè)式管理段式管理的優(yōu)缺點(diǎn)優(yōu)點(diǎn):段式管理提供了內(nèi)外存統(tǒng)一管理的虛存實(shí)現(xiàn)段長(zhǎng)可以根據(jù)需要?jiǎng)討B(tài)增長(zhǎng)便于對(duì)具體邏輯功能的信息段進(jìn)行共享便于實(shí)現(xiàn)動(dòng)態(tài)鏈接缺點(diǎn)要求較高的硬件支持碎片問(wèn)題北京科技大學(xué) 計(jì)算機(jī)系5.5 段式與段頁(yè)式管理段頁(yè)式

25、管理基本思想段式管理為用戶提供了一個(gè)二維的虛地址空間,反映了程序的邏輯結(jié)構(gòu),有利于段的動(dòng)態(tài)增長(zhǎng)以及共享和內(nèi)存保護(hù)等,這大大地方便了用戶。而分頁(yè)系統(tǒng)則有效地克服了碎片,提高了存儲(chǔ)器的利用率。那么兩者結(jié)合呢?北京科技大學(xué) 計(jì)算機(jī)系5.5 段式與段頁(yè)式管理段頁(yè)式管理的實(shí)現(xiàn)原理虛擬地址的構(gòu)成段頁(yè)式管理時(shí)的進(jìn)程的虛擬地址空間中的虛擬地址由三部分組成:即段號(hào)s,頁(yè)號(hào)P和頁(yè)內(nèi)相對(duì)地址d虛擬空間的最小單位是頁(yè)而不是段北京科技大學(xué) 計(jì)算機(jī)系SPd5.5 段式與段頁(yè)式管理段頁(yè)式管理的實(shí)現(xiàn)原理段表和頁(yè)表為了實(shí)現(xiàn)段頁(yè)式管理,系統(tǒng)必須為每個(gè)進(jìn)程建立一張段表以管理內(nèi)存分配與釋放、缺段處理、存儲(chǔ)保護(hù)相地址變換等。由于一個(gè)段又被劃分成了若干頁(yè),每個(gè)段又必須建立一張頁(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論