版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第五章存儲(chǔ)管理第五章存儲(chǔ)管理第五章存儲(chǔ)管理提綱5.1存儲(chǔ)管理的功能5.2分區(qū)存儲(chǔ)管理5.3覆蓋與交換技術(shù)5.4頁(yè)式管理5.5段式與段頁(yè)式管理5.6局部性原理和抖動(dòng)問(wèn)題第五章存儲(chǔ)管理存儲(chǔ)器:內(nèi)存(primarysrotage):本章討論的重點(diǎn)外存(secondarystorage)主要內(nèi)容幾種常用的內(nèi)存管理方法內(nèi)存的分配和釋放算法虛擬存儲(chǔ)器的概念控制主存和外存之間的數(shù)據(jù)流動(dòng)方法地址變換技術(shù)內(nèi)存數(shù)據(jù)保護(hù)與共享技術(shù)第五章存儲(chǔ)管理5.1存儲(chǔ)管理的功能1.存儲(chǔ)管理的功能(1)內(nèi)存的分配與釋放如何分配內(nèi)存,以保證系統(tǒng)及各用戶程序的存儲(chǔ)區(qū)互不沖突;程序運(yùn)行結(jié)束后歸還占用的內(nèi)存空間。(2)存儲(chǔ)保護(hù)與存儲(chǔ)共享保證程序在執(zhí)行過(guò)程中不會(huì)有意或無(wú)意地破壞另一道程序,保證用戶程序不會(huì)破壞系統(tǒng)程序;不同作業(yè)之間相同的內(nèi)容(代碼)只在內(nèi)存中裝入一個(gè)副本。第五章存儲(chǔ)管理(3)內(nèi)存擴(kuò)充當(dāng)用戶作業(yè)所需要的內(nèi)存量超過(guò)計(jì)算機(jī)系統(tǒng)所提供的內(nèi)存容量時(shí),把內(nèi)部存儲(chǔ)器和外部存儲(chǔ)器結(jié)合起來(lái)管理,為用戶提供一個(gè)容量比實(shí)際內(nèi)存大得多的虛擬存儲(chǔ)器。(4)地址重定位完成從相對(duì)地址(虛擬地址)到絕對(duì)地址(物理地址)的轉(zhuǎn)換。第五章存儲(chǔ)管理物理地址物理存儲(chǔ)器中的位置。虛擬地址編譯鏈接程序把用戶源程序編譯后鏈接到一個(gè)以0地址為起始地址的線性地址空間中,每個(gè)進(jìn)程都擁有這樣一個(gè)虛擬空間。每條指令或數(shù)據(jù)單元都在這個(gè)虛擬空間中擁有確定的地址,把這個(gè)地址稱為虛擬地址(virtualaddress)。虛存空間的容量是由計(jì)算機(jī)的地址結(jié)構(gòu)和尋址方式確定的。例如cpu的有效地址長(zhǎng)度為16位,則其尋址范圍為0~64kB第五章存儲(chǔ)管理地址變換第五章存儲(chǔ)管理用戶程序虛擬空間LOADR120ADDR122STORER124210110024202224內(nèi)存物理地址0241000102010221024地址重定位示意LOADR120ADDR122STORER124210110第五章存儲(chǔ)管理2地址重定位靜態(tài)地址重定位(staticaddressrelocation)在虛擬空間程序執(zhí)行之前由裝配程序完成地址映射工作。假定分配程序已分配了一塊首地址為BA的內(nèi)存區(qū)給虛擬空間內(nèi)的程序段,若某條指令或數(shù)據(jù)的虛擬地址為VA,那么,該指令或數(shù)據(jù)對(duì)應(yīng)的內(nèi)存地址為MA,從而完成程序中所有地址部分的修改,以保證CPU的正確執(zhí)行。MA=BA+VA第五章存儲(chǔ)管理用戶程序虛擬空間LOADR11020ADDR11022STORER11024210110024202224內(nèi)存物理地址0241000102010221024靜態(tài)地址重定位示意LOADR11020ADDR11022STORER11024210110第五章存儲(chǔ)管理靜態(tài)重定位的優(yōu)點(diǎn):
不需要硬件支持,程序運(yùn)行速度快。靜態(tài)重定位的缺點(diǎn):
(1)靜態(tài)重定位方法將程序一旦裝入內(nèi)存之后就不能再移動(dòng)。(2)必須占用連續(xù)的內(nèi)存空間,這就難以做到程序和數(shù)據(jù)的共享。第五章存儲(chǔ)管理動(dòng)態(tài)地址重定位(dynamicaddressrelocation)在程序執(zhí)行過(guò)程中,完成地址轉(zhuǎn)換。需要硬件地址變換機(jī)構(gòu)完成。需要一個(gè)(或多個(gè))基地址寄存器BR和一個(gè)(或多個(gè))程序虛擬地址寄存器VR。指令或數(shù)據(jù)的內(nèi)存地址MA與虛地址的關(guān)系為:MA=(BR)+(VR)(BR)與(VR)分別表示寄存器BR與VR中的內(nèi)容。第五章存儲(chǔ)管理動(dòng)態(tài)地址重定位第五章存儲(chǔ)管理動(dòng)態(tài)重定位的主要優(yōu)點(diǎn)有:(1)可以對(duì)內(nèi)存進(jìn)行非連續(xù)分配。
(2)動(dòng)態(tài)重定位提供了實(shí)現(xiàn)虛擬存儲(chǔ)器的基礎(chǔ)。
(3)有利于程序段的共享。
(4)程序在內(nèi)存中可以移動(dòng)。動(dòng)態(tài)重定位的主要缺點(diǎn)有:(1)進(jìn)程運(yùn)行速度慢。
(2)動(dòng)態(tài)重定位需要硬件支持。第五章存儲(chǔ)管理3內(nèi)外存數(shù)據(jù)傳輸?shù)目刂疲▋?nèi)存擴(kuò)充)原因:物理內(nèi)存不夠用最基本的控制辦法:用戶程序自己控制覆蓋(以程序段為單位,手動(dòng))操作系統(tǒng)控制交換(s)方式(以進(jìn)程為單位)請(qǐng)求調(diào)入(ondemand)方式(以程序/數(shù)據(jù)段為單位)預(yù)調(diào)入(onprefetch)方式(以程序/數(shù)據(jù)段為單位)第五章存儲(chǔ)管理4內(nèi)存的分配與回收主要功能:進(jìn)程創(chuàng)建時(shí)把外存中的數(shù)據(jù)和程序調(diào)入內(nèi)存,安排合適的位置(為進(jìn)程分配內(nèi)存空間)。進(jìn)程執(zhí)行結(jié)束后及時(shí)收回該進(jìn)程所占用的內(nèi)存資源,以便給其他進(jìn)程分配空間。第五章存儲(chǔ)管理考慮因素:(1)分配結(jié)構(gòu):登記內(nèi)存使用情況,共分配程序使用的表格與鏈表。例如,內(nèi)存空閑區(qū)表,空閑區(qū)隊(duì)列。(2)放置策略:確定調(diào)入內(nèi)存的程序和數(shù)據(jù)在內(nèi)存中的位置。選擇內(nèi)存空閑區(qū)的策略。第五章存儲(chǔ)管理(3)交換策略:在需要將某個(gè)程序段和數(shù)據(jù)段調(diào)入內(nèi)存時(shí),如果內(nèi)存中沒有足夠的空閑區(qū),由交換策略來(lái)確定把內(nèi)存中的哪些程序段和數(shù)據(jù)段調(diào)出內(nèi)存,以便騰出足夠的空間。(4)調(diào)入策略:外存中的程序段和數(shù)據(jù)段什么時(shí)間按正么樣的控制方式進(jìn)入內(nèi)存。(5)回收策略:包括回收的時(shí)機(jī)和回收的內(nèi)存空閑區(qū)和已經(jīng)存在的空閑區(qū)的調(diào)整。第五章存儲(chǔ)管理5內(nèi)存信息的共享與保護(hù)原因:多道程序設(shè)計(jì)環(huán)境內(nèi)存中有系統(tǒng)進(jìn)程以及多個(gè)用戶的進(jìn)程要限制各進(jìn)程只在自己的存儲(chǔ)區(qū)活動(dòng)各進(jìn)程不能對(duì)別的進(jìn)程的產(chǎn)生干擾和破壞常用的內(nèi)存信息保護(hù)方法:硬件法——上下界保護(hù)法軟件法——保護(hù)鍵法軟硬件結(jié)合——界限寄存器與CPU狀態(tài)結(jié)合第五章存儲(chǔ)管理上下界保護(hù)法思想:為每個(gè)進(jìn)程設(shè)置一對(duì)上下界寄存器上界寄存器——被保護(hù)程序和數(shù)據(jù)段的起始地址下界寄存器——被保護(hù)程序和數(shù)據(jù)段的終止地址檢查經(jīng)過(guò)重定位的內(nèi)存地址是否在上下屆寄存器所規(guī)定的范圍內(nèi)在規(guī)定的范圍內(nèi),則訪問(wèn)是合法的否則是非法的,并產(chǎn)生訪址越界中斷第五章存儲(chǔ)管理上、下界寄存器保護(hù)法第五章存儲(chǔ)管理保護(hù)鍵法思想:為每一個(gè)被保護(hù)存儲(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ù)的或只對(duì)讀,寫進(jìn)行單項(xiàng)保護(hù)的第五章存儲(chǔ)管理保護(hù)鍵保護(hù)法PSW對(duì)A塊:不能讀、不能寫對(duì)B塊:能讀、能寫對(duì)C塊:能讀、不能寫
每個(gè)存儲(chǔ)塊設(shè)置4位的存儲(chǔ)鍵、1位取保護(hù)位;每個(gè)作業(yè)進(jìn)入系統(tǒng)時(shí)分配唯一的鍵號(hào)(1~15);作業(yè)占用哪個(gè)存儲(chǔ)塊,該存儲(chǔ)塊的存儲(chǔ)鍵置為該作業(yè)號(hào)。第五章存儲(chǔ)管理界限寄存器與CPU的用戶態(tài)或核心態(tài)工作方式相結(jié)合的保護(hù)方式思想;用戶態(tài)進(jìn)程只能訪問(wèn)那些在界限寄存器所規(guī)定范圍內(nèi)的內(nèi)存部分核心態(tài)進(jìn)程則可以訪問(wèn)整個(gè)內(nèi)存地址空間UNIX系統(tǒng)就是采用的這種內(nèi)存保護(hù)方式第五章存儲(chǔ)管理5.2分區(qū)管理基本原理把內(nèi)存劃分成若干個(gè)大小不等的區(qū)域操作系統(tǒng)占用一個(gè)區(qū)域其余區(qū)域由各并發(fā)進(jìn)程共享為每個(gè)進(jìn)程劃分一塊適當(dāng)大小的存儲(chǔ)區(qū),連續(xù)存儲(chǔ)進(jìn)程的程序和數(shù)據(jù)。按分區(qū)的時(shí)機(jī),可分為:固定分區(qū)動(dòng)態(tài)分區(qū)第五章存儲(chǔ)管理1.固定分區(qū)法思想把內(nèi)存區(qū)固定地劃分為若干個(gè)大小不等的區(qū)域。劃分的原則由系統(tǒng)操作員或操作系統(tǒng)決定。分區(qū)一旦劃分結(jié)束,在整個(gè)執(zhí)行過(guò)程中每個(gè)分區(qū)的長(zhǎng)度和內(nèi)存的總分區(qū)個(gè)數(shù)將保持不變。所需數(shù)據(jù)結(jié)構(gòu)——分區(qū)說(shuō)明表說(shuō)明各分區(qū)號(hào)、分區(qū)大小、起始地址和是否是空閑區(qū)(分區(qū)狀態(tài))內(nèi)存的分配釋放、存儲(chǔ)保護(hù)以及地址變換第五章存儲(chǔ)管理固定分區(qū)法第五章存儲(chǔ)管理缺點(diǎn)浪費(fèi)現(xiàn)象:即使是小作業(yè)也要占據(jù)大分區(qū)第五章存儲(chǔ)管理2.動(dòng)態(tài)分區(qū)法思想在系統(tǒng)初啟時(shí),除操作系統(tǒng)中常駐內(nèi)存之外,只有一個(gè)空閑分區(qū)。隨后,分配程序?qū)⒃搮^(qū)依次劃分給調(diào)度選中的進(jìn)程在進(jìn)程執(zhí)行前并不建立分區(qū)分區(qū)的建立在進(jìn)程的處理過(guò)程中進(jìn)行分區(qū)大小可隨進(jìn)程對(duì)內(nèi)存的要求而改變優(yōu)點(diǎn)改變了固定分區(qū)法中那種即使是小作業(yè)也要占據(jù)大分區(qū)的浪費(fèi)現(xiàn)象,從而提高了內(nèi)存的利用率第五章存儲(chǔ)管理內(nèi)存初始分配情況第五章存儲(chǔ)管理內(nèi)存分配變化過(guò)程第五章存儲(chǔ)管理所需的數(shù)據(jù)結(jié)構(gòu)分區(qū)說(shuō)明表可用分區(qū)表每個(gè)表目記錄一個(gè)空閑區(qū)(區(qū)號(hào)、長(zhǎng)度和起始地址)需額外內(nèi)存或可用分區(qū)自由鏈利用每個(gè)內(nèi)存空閑區(qū)的頭幾個(gè)單元存放本空閑區(qū)的大小及下個(gè)空閑區(qū)的起始地址,從而把所有的空閑區(qū)鏈接起來(lái)。系統(tǒng)再設(shè)置一自由鏈?zhǔn)字羔樧屍渲赶虻谝粋€(gè)空閑區(qū)不需額外內(nèi)存內(nèi)存資源請(qǐng)求表每個(gè)表目描述請(qǐng)求內(nèi)存資源的進(jìn)程號(hào)以及所請(qǐng)求的內(nèi)存大小第五章存儲(chǔ)管理可用表、自由鏈及請(qǐng)求表第五章存儲(chǔ)管理3分區(qū)的分配與回收固定分區(qū)分配當(dāng)用戶程序要裝入執(zhí)行時(shí),通過(guò)請(qǐng)求表提出內(nèi)存分配要求和所要求的內(nèi)存空間大小。存儲(chǔ)管理程序根據(jù)請(qǐng)求表查詢分區(qū)說(shuō)明表,從中找出一個(gè)滿足要求的空閑分區(qū),并將其分配給申請(qǐng)者。回收當(dāng)進(jìn)程執(zhí)行完畢,不再需要內(nèi)存資源時(shí),管理程序?qū)?duì)應(yīng)的分區(qū)狀態(tài)置為未使用即可。第五章存儲(chǔ)管理固定分區(qū)法第五章存儲(chǔ)管理固定分區(qū)分配算法第五章存儲(chǔ)管理動(dòng)態(tài)分區(qū)主要解決三個(gè)問(wèn)題:(1)對(duì)于請(qǐng)求表中的要求內(nèi)存長(zhǎng)度,從可用表或自由鏈中尋找出合適的空閑區(qū)分配程序。(2)分配空閑區(qū)之后,更新可用表或自由鏈。(3)進(jìn)程或作業(yè)釋放內(nèi)存資源時(shí),和相鄰的空閑區(qū)進(jìn)行鏈接合并,更新可用表或自由鏈。第五章存儲(chǔ)管理分配的三種常用方法:最先適應(yīng)法(firstfitalgorithm)最佳適應(yīng)法(bestfitalgorithm)最壞適應(yīng)法(worstfitalgoriathm)第五章存儲(chǔ)管理(1)最先適應(yīng)法可用表或自由鏈按起始地址遞增的次序排列。一旦找到大于或等于所要求內(nèi)存長(zhǎng)度的分區(qū),則結(jié)束探索。從所找到的分區(qū)中劃出所要求的內(nèi)存長(zhǎng)度分配給用戶把余下的部分進(jìn)行合并(如果有相鄰空閑區(qū)存在)后留在可用表中,但要修改其相應(yīng)的表項(xiàng)。第五章存儲(chǔ)管理最先適應(yīng)算法第五章存儲(chǔ)管理(2)最佳適應(yīng)算法
從小到大的次序組成空閑區(qū)可用表或自由鏈。從表頭開始查找,當(dāng)找到第一個(gè)滿足要求的空閑區(qū)時(shí),停止查找。如果該空閑區(qū)大于請(qǐng)求表中的請(qǐng)求長(zhǎng)度,將減去請(qǐng)求長(zhǎng)度后的剩余空閑區(qū)部分留在可用表中。第五章存儲(chǔ)管理(3)最壞適應(yīng)算法空閑區(qū)按其大小遞減的順序組成空閑區(qū)可用表或自由鏈。先檢查空閑區(qū)可用表或自由鏈的第一個(gè)空閑可用區(qū)的大小是否大于或等于所要求的內(nèi)存長(zhǎng)度,若可用表或自由鏈的第一個(gè)項(xiàng)長(zhǎng)度小于所要求的,則分配失敗否則從空閑區(qū)可用表或自由鏈中分配相應(yīng)的存儲(chǔ)空間給用戶修改和調(diào)整空閑區(qū)可用表或自由鏈。第五章存儲(chǔ)管理
回收與拼接工作:當(dāng)進(jìn)程執(zhí)行結(jié)束時(shí),要收回已使用完畢的空閑區(qū),并將其插入空閑區(qū)可用表或自由鏈把不連續(xù)的零散空閑區(qū)集中起來(lái)第五章存儲(chǔ)管理空閑區(qū)的合并第五章存儲(chǔ)管理4分區(qū)管理的其他問(wèn)題虛存的實(shí)現(xiàn)無(wú)法實(shí)現(xiàn)用戶進(jìn)程所需內(nèi)存容量只受內(nèi)存和外存容量之和限制的虛擬存儲(chǔ)器。如果不采用內(nèi)存擴(kuò)充技術(shù),每個(gè)用戶進(jìn)程所需內(nèi)存容量是受到分區(qū)大小限制的。內(nèi)存擴(kuò)充可使用覆蓋或交換技術(shù)來(lái)擴(kuò)充內(nèi)存。第五章存儲(chǔ)管理地址變換應(yīng)采用動(dòng)態(tài)重定位方法空閑區(qū)的拼接會(huì)移動(dòng)內(nèi)存中的程序和數(shù)據(jù)一對(duì)硬件寄存器基址寄存器BR——進(jìn)程在內(nèi)存分區(qū)的起始地址限長(zhǎng)寄存器VR——進(jìn)程在內(nèi)存分區(qū)的長(zhǎng)度第五章存儲(chǔ)管理內(nèi)存保護(hù)設(shè)CPU指令所要訪問(wèn)的虛擬地址為D若D>(VR)(限長(zhǎng)寄存器中的限長(zhǎng)值):地址越界產(chǎn)生保護(hù)中斷系統(tǒng)轉(zhuǎn)去進(jìn)行出錯(cuò)處理若D<=(VR):地址合法由硬件完成對(duì)該虛擬地址的動(dòng)態(tài)重定位保護(hù)鍵法也可用來(lái)對(duì)內(nèi)存各分區(qū)提供保護(hù)第五章存儲(chǔ)管理5.分區(qū)存儲(chǔ)管理的主要優(yōu)缺點(diǎn)優(yōu)點(diǎn)(1)實(shí)現(xiàn)了多道程序設(shè)計(jì),提高了資源利用率(2)需求硬件少,管理算法簡(jiǎn)單,實(shí)現(xiàn)容易缺點(diǎn)(1)內(nèi)存利用率仍然不高。存在著嚴(yán)重的碎小空閑區(qū)(碎片)不能利用的問(wèn)題。(2)進(jìn)程的大小受分區(qū)大小控制,除非配合采用覆蓋和交換技術(shù)。(3)難以實(shí)現(xiàn)各分區(qū)間的信息共享。第五章存儲(chǔ)管理5.3覆蓋與交換技術(shù)是在多道環(huán)境下用來(lái)擴(kuò)充內(nèi)存的兩種方法覆蓋技術(shù)主要用在早期的操作系統(tǒng)中交換技術(shù)在現(xiàn)代操作系統(tǒng)中仍具有較強(qiáng)的生命力第五章存儲(chǔ)管理1覆蓋技術(shù)思想一個(gè)程序并不需要一開始就把它的全部指令和數(shù)據(jù)都裝入內(nèi)存后再執(zhí)行。把程序劃分為若干個(gè)功能上相對(duì)獨(dú)立的程序段,按照程序的邏輯結(jié)構(gòu)讓那些不會(huì)同時(shí)執(zhí)行的程序段共享同一塊內(nèi)存區(qū)。通常,這些程序段都被保存在外存中,當(dāng)有關(guān)程序段的先頭程序段已經(jīng)執(zhí)行結(jié)束后,再把后續(xù)程序段調(diào)入內(nèi)存覆蓋前面的程序段。第五章存儲(chǔ)管理覆蓋示例第五章存儲(chǔ)管理缺點(diǎn):要求程序員提供一個(gè)清楚的覆蓋結(jié)構(gòu)程序員必須完成把一個(gè)程序劃分成不同的程序段,并規(guī)定好它們的執(zhí)行和覆蓋順序的工作。對(duì)操作系統(tǒng)的虛空間和內(nèi)部結(jié)構(gòu)很熟悉的程序員才會(huì)使用。第五章存儲(chǔ)管理2交換技術(shù)思想先將內(nèi)存某部分的程序或數(shù)據(jù)寫入外存交換區(qū),再?gòu)耐獯娼粨Q區(qū)中調(diào)入指定的程序或數(shù)據(jù)到內(nèi)存中來(lái),并讓其執(zhí)行。把處于等待狀態(tài)的進(jìn)程換出內(nèi)存。優(yōu)點(diǎn)不要求程序員給出程序段之間的覆蓋結(jié)構(gòu)。與覆蓋的不同點(diǎn)交換主要是在進(jìn)程或作業(yè)之間進(jìn)行,而覆蓋則主要在同一個(gè)作業(yè)或進(jìn)程內(nèi)進(jìn)行。覆蓋只能覆蓋那些與覆蓋程序段無(wú)關(guān)的程序段。第五章存儲(chǔ)管理交換過(guò)程換出(s)過(guò)程把內(nèi)存中的數(shù)據(jù)和程序換到外存交換區(qū)換入(s)過(guò)程把外存交換區(qū)中的數(shù)據(jù)和程序換到內(nèi)存分區(qū)中第五章存儲(chǔ)管理由交換進(jìn)程發(fā)送給設(shè)備進(jìn)程的消息m中應(yīng)包含:分區(qū)的分區(qū)號(hào)i該分區(qū)的基址basei長(zhǎng)度sizei方向外存交換區(qū)中分區(qū)起始地址第五章存儲(chǔ)管理
S(i): beginlocalm m.base←basei; m.ceiling←basei+sizei; m.direction←"out"; m.destination←baseoffreeareaons; backupstorebasei←m.destination; send((m,i),devicequeue); end第五章存儲(chǔ)管理 SWAPIN(i): beginlocalm m.base←basei; m.ceiling←basei+sizei; m.direction←"in"; m.source←backupstorebasei; send((m,i),devicequeue); end第五章存儲(chǔ)管理5.4頁(yè)式管理分區(qū)式管理的缺點(diǎn)存在著嚴(yán)重的碎片問(wèn)題,內(nèi)存的利用率不高進(jìn)程的大小受分區(qū)大小或內(nèi)存可用空間的限制不利于程序段和數(shù)據(jù)的共享第五章存儲(chǔ)管理1.頁(yè)式管理的基本原理目的減少碎片,提高內(nèi)存利用率只在內(nèi)存存放那些反復(fù)執(zhí)行或即將執(zhí)行的程序段與數(shù)據(jù)部分把那些不經(jīng)常執(zhí)行的程序段和數(shù)據(jù)存放于外存待執(zhí)行時(shí)調(diào)入第五章存儲(chǔ)管理1、等分內(nèi)存:內(nèi)存空間被劃分成若干個(gè)長(zhǎng)度相等的頁(yè)面(2m)
一般每個(gè)頁(yè)長(zhǎng)大約為1-4K2、進(jìn)程虛擬空間的分頁(yè):劃分成與內(nèi)存頁(yè)長(zhǎng)度相等的頁(yè)。3、虛地址的表示:虛地址由頁(yè)號(hào)p與頁(yè)內(nèi)地址w所組成。例如,某系統(tǒng),地址長(zhǎng)度位20位,每一頁(yè)的大小為1KB。頁(yè)號(hào)(P)頁(yè)內(nèi)地址(W)19 109 04、內(nèi)存分配:進(jìn)程的各頁(yè),分配到內(nèi)存可以不相鄰的頁(yè)面中。5、頁(yè)表:系統(tǒng)為每個(gè)進(jìn)程在內(nèi)存設(shè)立一張頁(yè)表。頁(yè)式管理的基本原理:第五章存儲(chǔ)管理2靜態(tài)頁(yè)面管理思想在作業(yè)或進(jìn)程開始執(zhí)行之前,把該作業(yè)或進(jìn)程的程序段和數(shù)據(jù)全部裝入內(nèi)存的各個(gè)頁(yè)面中通過(guò)頁(yè)表(pagemappingtable)和硬件地址變換機(jī)構(gòu)實(shí)現(xiàn)虛擬地址到內(nèi)存物理地址的地址映射第五章存儲(chǔ)管理內(nèi)存頁(yè)面的分配與回收數(shù)據(jù)結(jié)構(gòu)頁(yè)表請(qǐng)求表存儲(chǔ)頁(yè)面表第五章存儲(chǔ)管理(1)頁(yè)表每個(gè)進(jìn)程至少擁有一個(gè)頁(yè)表。頁(yè)表在內(nèi)存中占有一塊固定的存儲(chǔ)區(qū)。頁(yè)表的大小由進(jìn)程或作業(yè)的長(zhǎng)度決定。頁(yè)號(hào)頁(yè)面號(hào)第五章存儲(chǔ)管理(2)請(qǐng)求表請(qǐng)求表整個(gè)系統(tǒng)一張。用來(lái)確定作業(yè)或進(jìn)程的虛擬空間的各頁(yè)在內(nèi)存中的實(shí)際對(duì)應(yīng)位置。第五章存儲(chǔ)管理(3)存儲(chǔ)頁(yè)面表整個(gè)系統(tǒng)一張指出內(nèi)存各頁(yè)面是否已被分配出去,以及未分配頁(yè)面的總數(shù)位示圖法:內(nèi)存中劃分一塊固定區(qū)域,每個(gè)單元的每個(gè)比特代表一個(gè)頁(yè)面。如果該頁(yè)面已被分配,則對(duì)應(yīng)比特位置1,否則置0。
第五章存儲(chǔ)管理分配算法(1)請(qǐng)求表給出進(jìn)程或作業(yè)要求的頁(yè)面數(shù)。(2)由存儲(chǔ)頁(yè)面表檢查是否有足夠的空閑頁(yè)面,如果沒有,則本次無(wú)法分配。(3)如果有則首先分配設(shè)置頁(yè)表,并填寫請(qǐng)求表中的相應(yīng)表項(xiàng)后,按一定的查找算法、搜索出所要求的空閑頁(yè)面,并將對(duì)應(yīng)的頁(yè)面號(hào)填入頁(yè)表中。第五章存儲(chǔ)管理頁(yè)面分配算法流圖第五章存儲(chǔ)管理回收算法當(dāng)進(jìn)程執(zhí)行完畢時(shí)(1)把頁(yè)表中的各頁(yè)面插入存儲(chǔ)頁(yè)面表(2)拆除對(duì)應(yīng)的頁(yè)表第五章存儲(chǔ)管理地址變換在一個(gè)作業(yè)或進(jìn)程的頁(yè)表中,連續(xù)的頁(yè)號(hào)對(duì)應(yīng)于不連續(xù)的頁(yè)面號(hào)。例如,設(shè)一個(gè)3頁(yè)長(zhǎng)的進(jìn)程具有頁(yè)號(hào)0,1,2,但其對(duì)應(yīng)的頁(yè)面號(hào)則為2,3,8。頁(yè)號(hào)頁(yè)面號(hào)021328第五章存儲(chǔ)管理設(shè)每個(gè)頁(yè)面長(zhǎng)度為1K,指令LOAD1,2500的虛地址為100,怎樣通過(guò)頁(yè)表來(lái)找到該指令所對(duì)應(yīng)的物理地址呢?第五章存儲(chǔ)管理注意:地址變換過(guò)程由硬件地址變換機(jī)構(gòu)自動(dòng)完成,屬于動(dòng)態(tài)重定位。取一個(gè)數(shù)據(jù)或指令至少要訪問(wèn)內(nèi)存兩次一次訪問(wèn)頁(yè)表,另一次是根據(jù)地址取數(shù)據(jù)或指令改善方法:(1)把頁(yè)表放在寄存器中而不是內(nèi)存中,但由于寄存器價(jià)格太貴,這樣做是不可取的。(2)增設(shè)一個(gè)高速聯(lián)想存儲(chǔ)器,構(gòu)成一張快表。在快表中,存入那些當(dāng)前執(zhí)行進(jìn)程中最常用的頁(yè)號(hào)與所對(duì)應(yīng)的頁(yè)面號(hào),從而以提高查找速度。虛擬存儲(chǔ)器內(nèi)存+外存第五章存儲(chǔ)管理優(yōu)點(diǎn)解決了分區(qū)管理時(shí)的碎片問(wèn)題缺點(diǎn)要求進(jìn)程或作業(yè)在執(zhí)行前全部裝入內(nèi)存,如果可用頁(yè)面數(shù)小于用戶要求時(shí),只好等待作業(yè)或進(jìn)程的大小仍受內(nèi)存可用頁(yè)面數(shù)的限制第五章存儲(chǔ)管理3動(dòng)態(tài)頁(yè)式管理思想:在作業(yè)或進(jìn)程開始執(zhí)行之前,只裝入被認(rèn)為是經(jīng)常反復(fù)執(zhí)行和調(diào)用的工作區(qū)部分。其他部分則在執(zhí)行過(guò)程中動(dòng)態(tài)裝入。分類:預(yù)調(diào)入頁(yè)式管理請(qǐng)求頁(yè)式管理第五章存儲(chǔ)管理預(yù)調(diào)入頁(yè)式管理方法對(duì)那些在外存中的頁(yè)進(jìn)行調(diào)入順序計(jì)算估計(jì)這些頁(yè)中指令和數(shù)據(jù)的執(zhí)行和被訪問(wèn)的順序按此順序?qū)⑺鼈円来握{(diào)入和調(diào)出內(nèi)存第五章存儲(chǔ)管理請(qǐng)求頁(yè)式管理方法當(dāng)要執(zhí)行某條指令而又發(fā)現(xiàn)它不在內(nèi)存時(shí)或當(dāng)執(zhí)行某條指令需要訪問(wèn)其他數(shù)據(jù)時(shí)這些數(shù)據(jù)不在內(nèi)存時(shí),從而發(fā)生缺頁(yè)中斷系統(tǒng)將外存中相應(yīng)的頁(yè)面調(diào)入內(nèi)存第五章存儲(chǔ)管理請(qǐng)求頁(yè)式管理的地址變換與靜態(tài)頁(yè)式管理時(shí)的相同頁(yè)表查出相應(yīng)的頁(yè)面號(hào)頁(yè)面號(hào)與頁(yè)內(nèi)相對(duì)地址相加得到實(shí)際物理地址會(huì)出現(xiàn)某些虛頁(yè)不在內(nèi)存中的問(wèn)題第五章存儲(chǔ)管理請(qǐng)求頁(yè)式管理必須解決的兩個(gè)基本問(wèn)題(1)怎樣發(fā)現(xiàn)不在內(nèi)存中虛頁(yè)?(2)當(dāng)要訪問(wèn)的頁(yè)不在內(nèi)存怎樣處理?第五章存儲(chǔ)管理(1)怎樣發(fā)現(xiàn)不在內(nèi)存中虛頁(yè)?可以用擴(kuò)充頁(yè)表的方法解決加入中斷處理后的頁(yè)表頁(yè)號(hào)頁(yè)面號(hào)中斷位外存始址012345第五章存儲(chǔ)管理(2)當(dāng)要訪問(wèn)的頁(yè)不在內(nèi)存怎樣處理?采用何種方式把所缺的頁(yè)調(diào)入內(nèi)存外存地址如果內(nèi)存中沒有空閑頁(yè)面時(shí),采用什么樣的策略來(lái)淘汰已占據(jù)內(nèi)存的頁(yè)置換算法某一頁(yè)被淘汰,且該頁(yè)曾因程序的執(zhí)行而被修改,該頁(yè)應(yīng)重新寫到外存上加以保存改變位-dirtybit第五章存儲(chǔ)管理加改變位頁(yè)號(hào)頁(yè)面號(hào)中斷位外存始址改變位012345第五章存儲(chǔ)管理抖動(dòng)(thrashing)現(xiàn)象:如果置換算法選擇不當(dāng),有可能產(chǎn)生剛被調(diào)出內(nèi)存的頁(yè)又要馬上被調(diào)回內(nèi)存,調(diào)回內(nèi)存不久又馬上被調(diào)出內(nèi)存,如此反復(fù)的局面。這使得整個(gè)系統(tǒng)的頁(yè)面調(diào)度非常頻繁,以致大部分時(shí)間都花費(fèi)在主存和輔存之間的來(lái)回調(diào)入調(diào)出上。這種現(xiàn)象被稱為抖動(dòng)(thrashing)現(xiàn)象。第五章存儲(chǔ)管理
動(dòng)態(tài)頁(yè)式管理流圖第五章存儲(chǔ)管理4請(qǐng)求頁(yè)式管理中的置換算法(1)隨機(jī)淘汰算法思想在無(wú)法確定哪些頁(yè)被訪問(wèn)的概率較低時(shí),隨機(jī)地選擇某個(gè)用戶的頁(yè)面并將其換出。第五章存儲(chǔ)管理(2)先進(jìn)先出算法(FIFO)思想基于CPU按線性順序訪問(wèn)地址空間的這個(gè)假設(shè)上,選擇最先調(diào)入內(nèi)存的頁(yè)換出。缺點(diǎn):效率不高CPU不一定是按線性順序訪問(wèn)地址空間的例如循環(huán)語(yǔ)句具有Belady奇異分配的內(nèi)存頁(yè)面數(shù)增多,缺頁(yè)次數(shù)反而增加第五章存儲(chǔ)管理Belady奇異第五章存儲(chǔ)管理例:設(shè)進(jìn)程P共有8頁(yè),且已在內(nèi)存中分配有3個(gè)頁(yè)面,程序訪問(wèn)內(nèi)存的順序(訪問(wèn)串)為7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1。70120304230321201777222244400000000000333222221111111100033333222依次淘汰:701230423
進(jìn)程在一個(gè)執(zhí)行過(guò)程中,實(shí)際上發(fā)生了12次缺頁(yè)。如果設(shè)缺頁(yè)率為缺頁(yè)次數(shù)與訪問(wèn)串的訪問(wèn)次數(shù)之比則該例中的缺頁(yè)率為12/17=70.5%。第五章存儲(chǔ)管理如果給進(jìn)程P分配4個(gè)頁(yè)面共發(fā)生9次缺頁(yè),其缺頁(yè)率為9/17=52.9%。以上是使用FIFO算法正常換頁(yè)時(shí)的例子。7012030423032120177777333333333222000000444444444411111111000000022222222221111依次淘汰:70123第五章存儲(chǔ)管理改進(jìn)的寫法:如果給進(jìn)程P分配4個(gè)頁(yè)面共發(fā)生9次缺頁(yè),其缺頁(yè)率為9/17=52.9%。70120304230321201701234012701234017012340701234依次淘汰:70123第五章存儲(chǔ)管理123412512345123412534123412531234125
另外一個(gè)訪問(wèn)串。設(shè)進(jìn)程P,訪問(wèn)串為1,2,3,4,1,2,5,1,2,3,4,5。當(dāng)進(jìn)程P分得3個(gè)頁(yè)面時(shí),執(zhí)行過(guò)程。進(jìn)程P在執(zhí)行過(guò)程中共缺頁(yè)9次,其缺頁(yè)率為9/12=75%。如果為進(jìn)程P分配4個(gè)內(nèi)存頁(yè)面,執(zhí)行過(guò)程。1234125123451234512345123451234123451231234512缺頁(yè)次數(shù)為10次。即缺頁(yè)率=10/12=83.3%。依次淘汰:123412依次淘汰:123451第五章存儲(chǔ)管理(3)最近最久未使用頁(yè)面置換算法(LRU:LeastRecentlyUsed)思想:如果某頁(yè)被訪問(wèn)了,則它可能馬上還要被訪問(wèn)如果某頁(yè)很長(zhǎng)時(shí)間未被訪問(wèn),則它在最近一段時(shí)間也不會(huì)被訪問(wèn)當(dāng)需要淘汰某一頁(yè)時(shí),選擇離當(dāng)前時(shí)間最近的一段時(shí)間內(nèi)最久沒有使用過(guò)的頁(yè)先淘汰第五章存儲(chǔ)管理如果給進(jìn)程P分配4個(gè)頁(yè)面,采用LRU算法共發(fā)生7次缺頁(yè),其缺頁(yè)率為7/17=41.2%。701203042303212017777333000000111412222依次淘汰:714第五章存儲(chǔ)管理比較常用的LRU近似算法有:a)最不經(jīng)常使用頁(yè)面淘汰算法LFU(leastfrequentlyused)。思想:在需要淘汰某一頁(yè)時(shí),首先淘汰到當(dāng)前時(shí)間為止,被訪問(wèn)次數(shù)最少的那一頁(yè)。實(shí)現(xiàn)在頁(yè)表中給每一頁(yè)增設(shè)一個(gè)訪問(wèn)計(jì)數(shù)器每當(dāng)該頁(yè)被訪問(wèn)時(shí),訪問(wèn)計(jì)數(shù)器加1而發(fā)生一次缺頁(yè)中斷時(shí),則淘汰計(jì)數(shù)值最小的那一頁(yè),并將所有的計(jì)數(shù)器清零。第五章存儲(chǔ)管理如果給進(jìn)程P分配3個(gè)頁(yè)面,
LRU算法 LFU算法212123422
221
14
33212123422
221
11
34淘汰:
13第五章存儲(chǔ)管理b)最近沒有使用頁(yè)面淘汰算法NUR。思想在需要淘汰某一頁(yè)時(shí),從那些最近一個(gè)時(shí)期內(nèi)未被訪問(wèn)的頁(yè)中任選一頁(yè)淘汰。實(shí)現(xiàn)在頁(yè)表中增設(shè)一個(gè)訪問(wèn)位當(dāng)某頁(yè)被訪問(wèn)時(shí),訪問(wèn)位置1,否則,訪問(wèn)位置0系統(tǒng)周期性地對(duì)所有引用位清零當(dāng)需淘汰一頁(yè)時(shí),從那些訪問(wèn)位為零的頁(yè)中選一頁(yè)進(jìn)行淘汰第五章存儲(chǔ)管理c)二次機(jī)會(huì)(SecondChance)實(shí)現(xiàn)以FIFO算法進(jìn)行選擇,當(dāng)某頁(yè)面被選擇,考察其“訪問(wèn)位”若為0,則淘汰;若為1則將訪問(wèn)位清0,并將該頁(yè)面放到隊(duì)列末尾,選擇下一頁(yè),直到選到“訪問(wèn)位”若為0的頁(yè)面。第五章存儲(chǔ)管理(4)理想型淘汰算法OPT(OPTimalreplacementalgorithm)。思想淘汰在訪問(wèn)串中將來(lái)再也不出現(xiàn)的或是在離當(dāng)前最遠(yuǎn)的位置上出現(xiàn)的頁(yè)淘汰掉該頁(yè)將不會(huì)造成因需要訪問(wèn)該頁(yè)又立即把它調(diào)入的現(xiàn)象注意這種算法無(wú)法實(shí)現(xiàn)它要求必須預(yù)先知道每一個(gè)進(jìn)程的訪問(wèn)串第五章存儲(chǔ)管理如果給進(jìn)程P分配4個(gè)頁(yè)面,采用OPT算法共發(fā)生7次缺頁(yè),其缺頁(yè)率為7/17=41.2%。該算法不具有Belady現(xiàn)象。701203042303212017777333000000111412222依次淘汰:714或3第五章存儲(chǔ)管理頁(yè)面置換作業(yè)一個(gè)請(qǐng)求分頁(yè)系統(tǒng)中,假如一個(gè)進(jìn)程的頁(yè)面走向?yàn)?/p>
12342156212376321236
當(dāng)分配給該進(jìn)程的內(nèi)存頁(yè)面數(shù)為4時(shí),采用FIFO、LRU和OPT頁(yè)面調(diào)度算法時(shí),請(qǐng)計(jì)算訪問(wèn)過(guò)程中所發(fā)生幾次缺頁(yè)中斷,寫出按先后順序淘汰的頁(yè)號(hào)。FIFO(14),LRU(10),OPT(8)
第五章存儲(chǔ)管理5頁(yè)式管理的存儲(chǔ)保護(hù)地址越界保護(hù)可由地址變換機(jī)構(gòu)中的控制寄存器的值——頁(yè)表長(zhǎng)度和所要訪問(wèn)的虛地址相比較來(lái)完成。存取控制保護(hù)在頁(yè)表中增加相應(yīng)的保護(hù)位即可。第五章存儲(chǔ)管理0123P101234P201頁(yè)號(hào)頁(yè)面號(hào)…0105110723100101102103104105106107108109110頁(yè)號(hào)頁(yè)面號(hào)…01051107234P1頁(yè)表P2頁(yè)表頁(yè)面共享第五章存儲(chǔ)管理6頁(yè)式管理的優(yōu)缺點(diǎn)優(yōu)點(diǎn):(1)由于它不要求作業(yè)或進(jìn)程的程序段和數(shù)據(jù)在內(nèi)存中連續(xù)存放,從而有效地解決了碎片問(wèn)題。(2)動(dòng)態(tài)頁(yè)式管理提供了內(nèi)存和外存統(tǒng)一管理的虛存實(shí)現(xiàn)方式,使用戶可以利用的存儲(chǔ)空間大大增加。這既提高了主存的利用率,又有利于組織多道程序執(zhí)行。第五章存儲(chǔ)管理缺點(diǎn):(1)要求有相應(yīng)的硬件支持。例如地址變換機(jī)構(gòu),缺頁(yè)中斷的產(chǎn)生和選擇淘汰頁(yè)面等都要求有相應(yīng)的硬件支持。這增加了機(jī)器成本。(2)增加了系統(tǒng)開銷,例如缺頁(yè)中斷處理等。(3)請(qǐng)求調(diào)頁(yè)的算法如選擇不當(dāng),有可能產(chǎn)生抖動(dòng)現(xiàn)象。(4)雖然消除了碎片,但每個(gè)作業(yè)或進(jìn)程的最后一頁(yè)內(nèi)總有一部分空間得不到利用。如果頁(yè)面較大,則這一部分的損失仍然較大。第五章存儲(chǔ)管理5.5段式與段頁(yè)式管理1、段式管理的基本思想分區(qū)式管理和頁(yè)式管理的缺點(diǎn)(1)不便于共享分區(qū)式管理和頁(yè)式管理時(shí)的進(jìn)程地址空間結(jié)構(gòu)都是線性的,這使得不同作業(yè)或進(jìn)程之間共享公用子程序和數(shù)據(jù)變得非常困難。一個(gè)頁(yè)面中可能裝有兩個(gè)不同子程序段的指令代碼,因此,通過(guò)頁(yè)面共享來(lái)達(dá)到共享一個(gè)邏輯上完整的子程序或數(shù)據(jù)塊是不可能的。第五章存儲(chǔ)管理(2)段之間只能靜態(tài)鏈接分區(qū)管理和頁(yè)式管理只能采用靜態(tài)鏈接。從減少CPU開銷和存儲(chǔ)空間浪費(fèi)的角度來(lái)看,靜態(tài)鏈接是不合適的。第五章存儲(chǔ)管理段式管理的基本思想:把程序按內(nèi)容或過(guò)程(函數(shù))關(guān)系分成段,每段有自己的名字。一個(gè)用戶作業(yè)或進(jìn)程所包含的段對(duì)應(yīng)于一個(gè)二維線性虛擬空間,也就是一個(gè)二維虛擬存儲(chǔ)器。段式管理程序以段為單位分配內(nèi)存,然后通過(guò)地址映射機(jī)構(gòu)把段式虛擬地址轉(zhuǎn)換成實(shí)際的內(nèi)存物理地址。第五章存儲(chǔ)管理2段式管理的實(shí)現(xiàn)原理(1)段式虛存空間段式管理把一個(gè)進(jìn)程的虛地址空間設(shè)計(jì)成二維結(jié)構(gòu),即段號(hào)s與段內(nèi)相對(duì)地址w。頁(yè)式管理中,被劃分的頁(yè)號(hào)按順序編號(hào)遞增排列,屬一維空間。每個(gè)段是一個(gè)首地址為零的、連續(xù)的一維線性空間,對(duì)應(yīng)一組邏輯完整的程序或數(shù)據(jù),段的長(zhǎng)度是不固定的。對(duì)段式虛地址空間的訪問(wèn)包括兩個(gè)部分:段名和段內(nèi)地址。第五章存儲(chǔ)管理例如,某進(jìn)程,它在段式管理系統(tǒng)中的地址空間:進(jìn)程中的地址結(jié)構(gòu):CALL[1]|<24>轉(zhuǎn)向段1的子程序的入口點(diǎn)24。LOAD1,[2]|<6>將段2的入口點(diǎn)6的值讀到寄存器1中。STORE1,[2]|<18>將寄存器1的內(nèi)容存入段2的18單元中。
011160段
01981段
011282段第五章存儲(chǔ)管理(2)段式管理的內(nèi)存分配與釋放段式管理中以段為單位分配內(nèi)存,每段分配一個(gè)連續(xù)的內(nèi)存區(qū)。由于各段長(zhǎng)度不等,所以這些存儲(chǔ)區(qū)的大小不一。同一進(jìn)程所包含的各段之間不要求連續(xù)。第五章存儲(chǔ)管理(3)段式管理的內(nèi)存分配與釋放動(dòng)態(tài)分配過(guò)程:首先,段式管理為進(jìn)程或作業(yè)分配部分內(nèi)存,以作為該進(jìn)程的工作區(qū)和放置即將執(zhí)行的程序段。隨著進(jìn)程的執(zhí)行,進(jìn)程根據(jù)需要隨時(shí)申請(qǐng)調(diào)入新段和釋放老段。進(jìn)程對(duì)內(nèi)存區(qū)的申請(qǐng)和釋放可分為兩種情況:一種是當(dāng)進(jìn)程要求調(diào)入某一段時(shí),內(nèi)存中有足夠的空閑區(qū)滿足該段的內(nèi)存要求另一種是內(nèi)存中沒有足夠的空閑區(qū)滿足該段的內(nèi)存要求。第五章存儲(chǔ)管理除了初始分配之外,段的動(dòng)態(tài)分配是在CPU所要訪問(wèn)的指令和數(shù)據(jù)不在內(nèi)存時(shí)產(chǎn)生缺段中斷的情況下發(fā)生的。因此,段的淘汰或置換算法實(shí)際上是缺段中斷處理過(guò)程的一部分。第五章存儲(chǔ)管理
缺段中斷處理過(guò)程第五章存儲(chǔ)管理(4)段式管理的地址變換段表(segmentmappingtable)和頁(yè)式管理方案類似,段式管理程序在進(jìn)行初始內(nèi)存分配之前,首先根據(jù)用戶要求的內(nèi)存大小為一個(gè)作業(yè)或進(jìn)程建立一個(gè)段表。與頁(yè)式管理時(shí)一樣,段式管理也是通過(guò)段表來(lái)進(jìn)行內(nèi)存管理。第五章存儲(chǔ)管理圖5.30段表段號(hào)始址內(nèi)外存取方式訪問(wèn)位長(zhǎng)度第五章存儲(chǔ)管理
011160段
01981段
011282段例如:某進(jìn)程的地址空間(外存)1段
0段內(nèi)存10003850段號(hào)地址內(nèi)外。。。03850111000120該進(jìn)程段表第五章存儲(chǔ)管理動(dòng)態(tài)地址變換一般在內(nèi)存中給出一塊固定的區(qū)域放置段表。當(dāng)某進(jìn)程開始執(zhí)行時(shí),管理程序首先把該進(jìn)程的段表始址放入段表地址寄存器。通過(guò)訪問(wèn)段表寄存器,管理程序得到該進(jìn)程的段表始址從而可開始訪問(wèn)段表。然后,由虛地址中的段號(hào)s為索引,查段表。第五章存儲(chǔ)管理若該段在內(nèi)存,則判斷其存取控制方式是否有錯(cuò)。如果存取控制方式正確,則從段表相應(yīng)表目中查出該段在內(nèi)存的起始地址,并將其和段內(nèi)相對(duì)地址w相加,從而得到實(shí)際內(nèi)存地址。如果該段不在內(nèi)存,則產(chǎn)生缺段中斷將CPU控制權(quán)交給內(nèi)存分配程序。內(nèi)存分配程序首先檢查空閑區(qū)鏈,以找到足夠長(zhǎng)度的空閑區(qū)來(lái)裝入所需要的段。如果內(nèi)存中的可用空閑區(qū)總數(shù)小于所要求的段長(zhǎng)時(shí),則檢查段表中訪問(wèn)位,以淘汰那些訪問(wèn)概率低的段并將需要段調(diào)入。第五章存儲(chǔ)管理段式地址變換過(guò)程第五章存儲(chǔ)管理與頁(yè)式管理時(shí)相同,段式管理時(shí)的地址變換過(guò)程也必須經(jīng)過(guò)二次以上的內(nèi)存訪問(wèn)。
首先訪問(wèn)段表以計(jì)算得到待訪問(wèn)指令或數(shù)據(jù)的物理地址。然后才是對(duì)物理地址進(jìn)行取數(shù)據(jù)或存數(shù)據(jù)操作。為了提高訪問(wèn)速度,頁(yè)式地址變換時(shí)使用的高速聯(lián)想寄存器的方法也可以用在段式地址變換中。如果在聯(lián)想寄存器中找到了所需要的段,則可以大大加快地址變換速度。第五章存儲(chǔ)管理4.段的共享與保護(hù)(1)段的共享在多道環(huán)境下,常常有許多子程序和應(yīng)用程序是被多個(gè)用戶所使用的。如果每個(gè)用戶進(jìn)程或作業(yè)都在內(nèi)存保留它們共享程序和數(shù)據(jù)的副本,那就會(huì)極大地浪費(fèi)內(nèi)存空間。最好的辦法是內(nèi)存中只保留一個(gè)副本,供多個(gè)用戶使用,稱為共享。第五章存儲(chǔ)管理第五章存儲(chǔ)管理
011160段
01981段
011282段例如:段的共享1段
0段內(nèi)存10003850
011160段
01981段
011002段第五章存儲(chǔ)管理一段程序?yàn)槎鄠€(gè)進(jìn)程共享時(shí)(1)要求在執(zhí)行過(guò)程中,該段程序的指令和數(shù)據(jù)不能被修改。(2)在段表中設(shè)立相應(yīng)的共享位來(lái)判別該段是否正被某個(gè)進(jìn)程調(diào)用。顯然一個(gè)正在被某個(gè)進(jìn)程使用或即將被某個(gè)進(jìn)程使用的共享段是不應(yīng)該調(diào)出內(nèi)存的。第五章存儲(chǔ)管理(2)段的保護(hù)與頁(yè)式管理時(shí)相同,段式管理的保護(hù)主要有兩種:地址越界保護(hù)法存取方式控制保護(hù)法第五章存儲(chǔ)管理缺點(diǎn):(1)段式管理要求有硬件支持,提高了機(jī)器成本。(2)存在碎片問(wèn)題,以及為了消除碎片所進(jìn)行的合并等問(wèn)題上較分頁(yè)式管理要差。再者,允許段的動(dòng)態(tài)增長(zhǎng)也會(huì)給系統(tǒng)管理帶來(lái)一定的難度和開銷。(3)段式管理的每個(gè)段的長(zhǎng)度受內(nèi)存大小的限制。(4)段式管理系統(tǒng)也有可能產(chǎn)生抖動(dòng)現(xiàn)象。第五章存儲(chǔ)管理4段頁(yè)式管理的基本思想把段式管理和頁(yè)式管理結(jié)合起來(lái)第五章存儲(chǔ)管理5段頁(yè)式管理的實(shí)現(xiàn)原理虛地址的構(gòu)成段頁(yè)式管理時(shí),一個(gè)進(jìn)程仍然擁有一個(gè)自己的二維地址空間,這與段式管理時(shí)相同。一個(gè)進(jìn)程中所包含的具有獨(dú)立邏輯功能的程序或數(shù)據(jù)仍被劃分為段,并有各自的段號(hào)s。對(duì)于段s中的程序或數(shù)據(jù),則按照一定的大小將其劃分為不同的頁(yè)。第五章存儲(chǔ)管理段頁(yè)式管理時(shí)的進(jìn)程的虛擬地址空間中的虛擬地址由三部分組成:即段號(hào)s,頁(yè)號(hào)p和頁(yè)內(nèi)相對(duì)地址d。第五章存儲(chǔ)管理段表和頁(yè)表系統(tǒng)為每個(gè)作業(yè)或進(jìn)程建立一張段表:管理內(nèi)存分配與釋放、缺段處理、存儲(chǔ)保護(hù)和地址變換等。每個(gè)段建立一張頁(yè)表:把段中的虛頁(yè)變換成內(nèi)存中的實(shí)際頁(yè)面。頁(yè)表中也要有實(shí)現(xiàn)缺頁(yè)中斷處理和頁(yè)面保護(hù)等功能的表項(xiàng)。頁(yè)表不再是屬于進(jìn)程而是屬于某個(gè)段,因此,段表中應(yīng)有專項(xiàng)指出該段所對(duì)應(yīng)頁(yè)表的頁(yè)表始址和頁(yè)表長(zhǎng)度。第五章存儲(chǔ)管理段頁(yè)式管理中段表、頁(yè)表與內(nèi)存的關(guān)系第五章存儲(chǔ)管理01
010段01
01
1段01
012段例如:某進(jìn)程的地址空間(外存)1,01,1
0,00,12,0內(nèi)存段號(hào)地址012進(jìn)程段表22頁(yè)號(hào)頁(yè)面號(hào)0104110620段頁(yè)表頁(yè)號(hào)頁(yè)面號(hào)010011021段頁(yè)表頁(yè)號(hào)頁(yè)面號(hào)0109122段頁(yè)表100101102103104105106107108109第五章存儲(chǔ)管理動(dòng)態(tài)地址變換過(guò)程在段頁(yè)式管理系統(tǒng)中,要對(duì)內(nèi)存中指令或數(shù)據(jù)進(jìn)行一次存取的話至少需要訪問(wèn)三次以上的內(nèi)存:第一次是由段表地址寄存器得到段表始址去訪問(wèn)段表,由此取出對(duì)應(yīng)段的頁(yè)表地址。第二次則是訪問(wè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ù)覽,若沒有圖紙預(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 遼寧軌道交通職業(yè)學(xué)院《國(guó)際經(jīng)濟(jì)與貿(mào)易專業(yè)概論》2023-2024學(xué)年第一學(xué)期期末試卷
- 江蘇科技大學(xué)蘇州理工學(xué)院《企業(yè)設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 湖南理工學(xué)院南湖學(xué)院《食品基礎(chǔ)實(shí)驗(yàn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 湖北水利水電職業(yè)技術(shù)學(xué)院《傳統(tǒng)文化概論》2023-2024學(xué)年第一學(xué)期期末試卷
- 黑龍江建筑職業(yè)技術(shù)學(xué)院《美容外科學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 重慶工程學(xué)院《系統(tǒng)建模與自控原理》2023-2024學(xué)年第一學(xué)期期末試卷
- 鎮(zhèn)江市高等??茖W(xué)?!吨袑W(xué)化學(xué)教學(xué)技能訓(xùn)練》2023-2024學(xué)年第一學(xué)期期末試卷
- 中國(guó)礦業(yè)大學(xué)《云計(jì)算基礎(chǔ)與開發(fā)》2023-2024學(xué)年第一學(xué)期期末試卷
- 浙大寧波理工學(xué)院《Verog數(shù)字系統(tǒng)設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 棗莊職業(yè)學(xué)院《汽車?yán)碚摗?023-2024學(xué)年第一學(xué)期期末試卷
- 供銷合同(完整版)
- 二零二五年企業(yè)存單質(zhì)押擔(dān)保貸款合同樣本3篇
- 鍋爐安裝、改造、維修質(zhì)量保證手冊(cè)
- 油氣行業(yè)人才需求預(yù)測(cè)-洞察分析
- (2024)河南省公務(wù)員考試《行測(cè)》真題及答案解析
- 1000只肉羊養(yǎng)殖基地建設(shè)項(xiàng)目可行性研究報(bào)告
- 2024版房屋市政工程生產(chǎn)安全重大事故隱患判定標(biāo)準(zhǔn)內(nèi)容解讀
- 學(xué)校文印室外包服務(wù) 投標(biāo)方案(技術(shù)方案)
- 中國(guó)農(nóng)業(yè)核心期刊要目概覽
- 好聽簡(jiǎn)單的鋼琴譜
- 技術(shù)咨詢合同書(浙江省科學(xué)技術(shù)廳監(jiān)制)
評(píng)論
0/150
提交評(píng)論