版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第四章第四章 存儲器管理存儲器管理n重點重點n理解理解重定位的基本概念重定位的基本概念 n掌握掌握動態(tài)分區(qū)分配方式動態(tài)分區(qū)分配方式 n掌握理解掌握理解分頁存儲管理方式分頁存儲管理方式 n掌握理解掌握理解分段存儲管理方式分段存儲管理方式 n難點難點n動態(tài)分區(qū)分配動態(tài)分區(qū)分配算法算法 n分頁和分段地址轉(zhuǎn)換分頁和分段地址轉(zhuǎn)換第四章第四章 存儲器管理存儲器管理n知識點知識點n重定位的基本概念重定位的基本概念 n動態(tài)分區(qū)分配方式及分配算法、分區(qū)保護動態(tài)分區(qū)分配方式及分配算法、分區(qū)保護n對換區(qū)的實現(xiàn)對換區(qū)的實現(xiàn)n分頁存儲管理及地址變換,信息共享和保護分頁存儲管理及地址變換,信息共享和保護n分段存儲管理及地
2、址變換,信息共享和保護分段存儲管理及地址變換,信息共享和保護第四章第四章 存儲器管理存儲器管理n存儲器包括內(nèi)存(主存)和外存(磁盤)存儲器包括內(nèi)存(主存)和外存(磁盤)n功能:保存數(shù)據(jù);功能:保存數(shù)據(jù);n發(fā)展方向:高速、大容量和小體積。發(fā)展方向:高速、大容量和小體積。n內(nèi)存在訪問速度方面的發(fā)展:內(nèi)存在訪問速度方面的發(fā)展:DRAM、SDRAM、SRAM,DDRSDRAM等;等;n硬盤技術(shù)在大容量方面的發(fā)展:接口標準、硬盤技術(shù)在大容量方面的發(fā)展:接口標準、存儲密度等;存儲密度等;n主存儲器管理技術(shù)分為兩大類主存儲器管理技術(shù)分為兩大類n實存儲器管理實存儲器管理n虛擬存儲器管理(第虛擬存儲器管理(第5
3、章講述)章講述)第四章存儲器管理 4.1 存儲器的層次結(jié)構(gòu)存儲器的層次結(jié)構(gòu) 4.2程序的裝入和鏈接程序的裝入和鏈接 4.3連續(xù)分配存儲器管理方式連續(xù)分配存儲器管理方式4.4對換(對換(Swapping) 4.5分頁存儲管理方式分頁存儲管理方式4.6分段存儲管理方式分段存儲管理方式4.1 存儲器的層次結(jié)構(gòu)存儲器的層次結(jié)構(gòu)n4.1.1 多層結(jié)構(gòu)的存儲系統(tǒng)多層結(jié)構(gòu)的存儲系統(tǒng)n4.1.2 主存儲器和寄存器主存儲器和寄存器n4.1.3 高速緩存和磁盤緩存高速緩存和磁盤緩存4.1.1 多層結(jié)構(gòu)的存儲系統(tǒng)多層結(jié)構(gòu)的存儲系統(tǒng)n存儲器的多層結(jié)構(gòu)存儲器的多層結(jié)構(gòu)n存儲組織是指在存儲技術(shù)和存儲組織是指在存儲技術(shù)和C
4、PU尋址技術(shù)許可的尋址技術(shù)許可的范圍內(nèi)組織合理的存儲結(jié)構(gòu)。范圍內(nèi)組織合理的存儲結(jié)構(gòu)。n依據(jù)是訪問速度匹配關(guān)系、容量要求和價格。依據(jù)是訪問速度匹配關(guān)系、容量要求和價格。n“寄存器寄存器-內(nèi)存內(nèi)存-外存外存”結(jié)構(gòu)結(jié)構(gòu)n“寄存器寄存器-緩存緩存-內(nèi)存內(nèi)存-外存外存”結(jié)構(gòu);結(jié)構(gòu);n微機中的存儲層次組織:微機中的存儲層次組織:n訪問速度越慢,容量越大,價格越便宜;訪問速度越慢,容量越大,價格越便宜;n最佳狀態(tài)應(yīng)是各層次的存儲器都處于均衡的繁最佳狀態(tài)應(yīng)是各層次的存儲器都處于均衡的繁忙狀態(tài)(如:緩存命中率正好使主存讀寫保持忙狀態(tài)(如:緩存命中率正好使主存讀寫保持繁忙);繁忙);4.1.1 多層結(jié)構(gòu)的存儲系統(tǒng)
5、多層結(jié)構(gòu)的存儲系統(tǒng)n高速緩存:高速緩存:nData CachenTLB(Translation Lookaside Buffer)n內(nèi)存:內(nèi)存:DRAM, SDRAM等;等;n外存:軟盤、硬盤、光盤、磁帶等;外存:軟盤、硬盤、光盤、磁帶等;4.1.2 主存儲器和寄存器主存儲器和寄存器n主存儲器,也稱可執(zhí)行存儲器主存儲器,也稱可執(zhí)行存儲器n用于保存進程運行時的程序和數(shù)據(jù);用于保存進程運行時的程序和數(shù)據(jù);n容量:數(shù)百容量:數(shù)百MB到數(shù)十到數(shù)十GB(微機和大中型機),(微機和大中型機),幾十幾十KB到幾到幾MB(嵌入式計算機)。(嵌入式計算機)。n訪問速度遠低于訪問速度遠低于CPU執(zhí)行指令的速度執(zhí)行
6、指令的速度n解決方法:引入寄存器和高速緩存。解決方法:引入寄存器和高速緩存。4.1.2 主存儲器和寄存器主存儲器和寄存器n主存儲器管理功能主存儲器管理功能n存儲分配和回收存儲分配和回收n分配和回收算法及相應(yīng)的數(shù)據(jù)結(jié)構(gòu)分配和回收算法及相應(yīng)的數(shù)據(jù)結(jié)構(gòu)n地址變換和重定位地址變換和重定位n可執(zhí)行文件生成中的鏈接技術(shù)可執(zhí)行文件生成中的鏈接技術(shù)n程序加載程序加載(裝入裝入)時的重定位技術(shù)時的重定位技術(shù)n進程運行時硬件和軟件的地址變換技術(shù)和機構(gòu)進程運行時硬件和軟件的地址變換技術(shù)和機構(gòu)n存儲共享和保護存儲共享和保護n代碼和數(shù)據(jù)共享代碼和數(shù)據(jù)共享n地址空間訪問權(quán)限(讀、寫、執(zhí)行)地址空間訪問權(quán)限(讀、寫、執(zhí)行)
7、n存儲器擴充:存儲器的邏輯組織和物理組織;存儲器擴充:存儲器的邏輯組織和物理組織;n由應(yīng)用程序控制:覆蓋;由應(yīng)用程序控制:覆蓋;n由由OS控制:交換(整個進程空間),虛擬存儲的請求調(diào)入和控制:交換(整個進程空間),虛擬存儲的請求調(diào)入和預(yù)調(diào)入(部分進程空間)預(yù)調(diào)入(部分進程空間)4.1.2 主存儲器和寄存器主存儲器和寄存器n主存儲器發(fā)展歷史主存儲器發(fā)展歷史nRAM(random access memory)隨機存儲器。)隨機存儲器。按照存儲信息的不同,隨機存儲器又分為靜態(tài)按照存儲信息的不同,隨機存儲器又分為靜態(tài)隨機存儲器(隨機存儲器(Static RAM,SRAM)和動態(tài)隨機和動態(tài)隨機存儲器(存
8、儲器(Dynamic RAM,DRAM)。n靜態(tài)存儲器(靜態(tài)存儲器(SRAM)n存儲原理:由觸發(fā)器存儲數(shù)據(jù)存儲原理:由觸發(fā)器存儲數(shù)據(jù) n單元結(jié)構(gòu):六管單元結(jié)構(gòu):六管NMOS或或OS構(gòu)成構(gòu)成 n優(yōu)點:速度快、使用簡單、不需刷新、靜態(tài)功耗極優(yōu)點:速度快、使用簡單、不需刷新、靜態(tài)功耗極低;常用作低;常用作Cache n缺點:元件數(shù)多、集成度低、運行功耗大缺點:元件數(shù)多、集成度低、運行功耗大 4.1.2 主存儲器和寄存器主存儲器和寄存器n主存儲器發(fā)展歷史主存儲器發(fā)展歷史n動態(tài)存儲器(動態(tài)存儲器(DRAM)n存貯原理:利用存貯原理:利用MOS管柵極電容可以存儲電荷的原管柵極電容可以存儲電荷的原理,需刷新
9、;理,需刷新;n刷新刷新(再生再生):為及時補充漏掉的電荷以避免存儲的:為及時補充漏掉的電荷以避免存儲的信息丟失,必須定時給柵極電容補充電荷的操作信息丟失,必須定時給柵極電容補充電荷的操作 n刷新時間:定期進行刷新操作的時間。該時間必須刷新時間:定期進行刷新操作的時間。該時間必須小于柵極電容自然保持信息的時間(小于小于柵極電容自然保持信息的時間(小于2ms)。)。 n優(yōu)點:優(yōu)點: 集成度遠高于集成度遠高于SRAM、功耗低,價格也低、功耗低,價格也低 n缺點:因需刷新而使外圍電路復(fù)雜;刷新也使存取缺點:因需刷新而使外圍電路復(fù)雜;刷新也使存取速度較速度較SRAM慢,所以在計算機中,慢,所以在計算機
10、中,DRAM常用于常用于作主存儲器。作主存儲器。4.1.2 主存儲器和寄存器主存儲器和寄存器n主存儲器發(fā)展歷史主存儲器發(fā)展歷史nSIMM(Single In-lineMemory Modules)n單邊接觸內(nèi)存模組,單邊接觸內(nèi)存模組,80286上使用,容量為上使用,容量為30pin,256kb,由,由8片數(shù)據(jù)位和片數(shù)據(jù)位和1片檢驗位組成組成一個片檢驗位組成組成一個bank。因此,常由。因此,常由4條一起使用。條一起使用。n386,486使用使用72pin SIMM支持支持32bit快速頁模式內(nèi)存,快速頁模式內(nèi)存,容量為容量為512kb2mb,僅要求,僅要求2條一起使用。條一起使用。n與與30p
11、in不兼容,因此淘汰了不兼容,因此淘汰了30pin SIMM。nFPMDRAM:(:(FastPageMode),在),在386時代很流時代很流行。行。4.1.2 主存儲器和寄存器主存儲器和寄存器n主存儲器發(fā)展歷史主存儲器發(fā)展歷史nEDODRAM:(Extended Data Out),19911995年年n取消了擴展數(shù)據(jù)輸出與傳輸內(nèi)存兩個存儲周期之間取消了擴展數(shù)據(jù)輸出與傳輸內(nèi)存兩個存儲周期之間的時間間隔,數(shù)據(jù)發(fā)給的時間間隔,數(shù)據(jù)發(fā)給CPU同時訪問下一個頁面。同時訪問下一個頁面。n速度比普通速度比普通DRAM快快1530%。n主要應(yīng)用于主要應(yīng)用于486及早期及早期pentium,分為,分為72
12、pin和和168pin兩種。兩種。n單條容量已達單條容量已達416MB。n由于由于Pentium及更高及更高CPU支持支持64bit,故,故EDO RAM與與FPM RAM都必須成對使用。都必須成對使用。4.1.2 主存儲器和寄存器主存儲器和寄存器n主存儲器發(fā)展歷史主存儲器發(fā)展歷史nDIMM:Dual-Inline-Memory-Modules,即雙列直插式即雙列直插式存儲模塊存儲模塊nDIMM提供了提供了64位的數(shù)據(jù)通道,因此它在奔騰主板位的數(shù)據(jù)通道,因此它在奔騰主板上可以單條使用。它有上可以單條使用。它有168條引腳,故稱為條引腳,故稱為168線內(nèi)線內(nèi)存條。存條。nSO-DIMM(Smal
13、l Outline DIMM Module):它的):它的尺寸比標準的尺寸比標準的DIMM要小很多,而且引腳數(shù)也不相要小很多,而且引腳數(shù)也不相同。同。nFB-DIMM (Full Buffered DIMM) :每個:每個DIMM上的緩沖區(qū)是互相串聯(lián)的,之間是點對點的上的緩沖區(qū)是互相串聯(lián)的,之間是點對點的連接方式,數(shù)據(jù)會在經(jīng)過第一個緩沖區(qū)后傳向下一連接方式,數(shù)據(jù)會在經(jīng)過第一個緩沖區(qū)后傳向下一個緩沖區(qū)。個緩沖區(qū)。4.1.2 主存儲器和寄存器主存儲器和寄存器n主存儲器發(fā)展歷史主存儲器發(fā)展歷史nRIMM:Rambus Inline Memory ModulenRambus生產(chǎn)的生產(chǎn)的RDRAM內(nèi)存所
14、采用的接口類型。內(nèi)存所采用的接口類型。nRIMM非非ECC版有版有16位和位和32位數(shù)據(jù)寬度,位數(shù)據(jù)寬度,ECC版則版則都是都是18位寬。位寬。nRIMM非非ECC版版16位內(nèi)存每面位內(nèi)存每面92線,雙面線,雙面184線。線。32位內(nèi)存每面位內(nèi)存每面116線,雙面為線,雙面為232線。線。4.1.2 主存儲器和寄存器主存儲器和寄存器n主存儲器發(fā)展歷史主存儲器發(fā)展歷史nSDRAM:(:(Synchronous Dynamic)n第一代使用第一代使用PC66規(guī)范,由于規(guī)范,由于Intel與與AMD之爭,之爭,CPU外頻提升到外頻提升到100MHz,PC66很快被很快被PC100取代,取代,接著接著
15、133MHz的的PIII與與K7出現(xiàn),出現(xiàn),PC133規(guī)范進一步規(guī)范進一步提高提高SDRAM的整體性能,帶寬提高到的整體性能,帶寬提高到1GB/sec以上。以上。nSDRAM帶寬為帶寬為64bit,與,與CPU完全對應(yīng),故僅需一完全對應(yīng),故僅需一條就可與工作。條就可與工作。nRAM與與CPU以相同的時鐘頻率控制,使它們與外頻以相同的時鐘頻率控制,使它們與外頻同步,速度明顯超越同步,速度明顯超越EDO。4.1.2 主存儲器和寄存器主存儲器和寄存器n主存儲器發(fā)展歷史主存儲器發(fā)展歷史nRDRAM:(:(Rambus DRAM)nIntel與與Rambus聯(lián)合推廣。采用類聯(lián)合推廣。采用類RISC(Re
16、ducde Instruction Set Computing)理論,減少數(shù)據(jù)的復(fù)雜)理論,減少數(shù)據(jù)的復(fù)雜性,提高整個系統(tǒng)的性能。性,提高整個系統(tǒng)的性能。nPC600,PC700的的RDRAM出現(xiàn)出現(xiàn)Intel820芯片組芯片組“失失誤事件誤事件”,PC800 RDRAM成本過高,成本過高,PC1066 也無也無法力挽狂瀾。法力挽狂瀾。4.1.2 主存儲器和寄存器主存儲器和寄存器n主存儲器發(fā)展歷史主存儲器發(fā)展歷史nDDRSDRAM:Double Data Rate SDRAMn雙倍速率雙倍速率SDRAM,可以認為是,可以認為是SDRAM的升級的升級nDDR在時鐘脈沖的上升沿和下降沿各傳輸一次數(shù)
17、據(jù),在時鐘脈沖的上升沿和下降沿各傳輸一次數(shù)據(jù),故比傳統(tǒng)故比傳統(tǒng)SDRAM速度快一倍。速度快一倍。n由于僅多使用下降信號傳輸數(shù)據(jù),故不會增加能耗。由于僅多使用下降信號傳輸數(shù)據(jù),故不會增加能耗。至于定址與控制信號則與傳統(tǒng)至于定址與控制信號則與傳統(tǒng)SDRAM相同采用時相同采用時鐘上升沿傳輸。鐘上升沿傳輸。nDDRn第一代第一代DDR200沒有得到推廣;沒有得到推廣;n第二代第二代PC266 DDR SDRAM由由PC133 SDRAM衍生得到。衍生得到。4.1.2 主存儲器和寄存器主存儲器和寄存器n主存儲器發(fā)展歷史主存儲器發(fā)展歷史nDDRSDRAM:Double Data Rate SDRAMnDD
18、Rn隨后出現(xiàn)隨后出現(xiàn)DDR 333,DDR 400,雙通道,雙通道DDR 400,DDR 533。nDDR2nJEDEC組織提出組織提出DDR2標準,加上標準,加上LGA775的的915/925以及以及945。n融入融入Post CAS、OCD(Off-Chip Driver)、)、ODT(On Die Termination)等新性能指標和中)等新性能指標和中斷指令,提升內(nèi)存帶寬的利用率。斷指令,提升內(nèi)存帶寬的利用率。4.1.2 主存儲器和寄存器主存儲器和寄存器n主存儲器發(fā)展歷史主存儲器發(fā)展歷史nDDRSDRAM:Double Data Rate SDRAMnDDR2n采用采用400,667
19、 ,800 ,1000MHz等不同等不同的時鐘頻率。的時鐘頻率。n采用采用200、220、 240pin的的FBGA封裝形式。封裝形式。4.1.2 主存儲器和寄存器主存儲器和寄存器n主存儲器發(fā)展歷史主存儲器發(fā)展歷史nDDRSDRAM:Double Data Rate SDRAMnDDR3n使用了使用了SSTL 15的的I/O接口,運作接口,運作I/O電壓是電壓是1.5V,采用采用CSP、FBGA封裝方式包裝。封裝方式包裝。n新增了更為精進的新增了更為精進的CWD(作為寫入延遲之用)、(作為寫入延遲之用)、Reset(提供了超省電功能的命令)、(提供了超省電功能的命令)、ZQ(新增(新增校準功能
20、)、校準功能)、SRT(Self-Reflash Temperature,可編程化溫度控制內(nèi)存時脈功能)、可編程化溫度控制內(nèi)存時脈功能)、PASR(Partial Array Self-Refresh)局部)局部Bank刷新功刷新功能。能。4.1.2 主存儲器和寄存器主存儲器和寄存器n主存儲器發(fā)展歷史主存儲器發(fā)展歷史nDDRSDRAM:Double Data Rate SDRAMnDDR4n內(nèi)存規(guī)格原計劃在內(nèi)存規(guī)格原計劃在2011年制定完成,標準規(guī)范的年制定完成,標準規(guī)范的正式公布是在正式公布是在2012年年9月底,月底, 2012年開始投入生年開始投入生產(chǎn)并上市的。產(chǎn)并上市的。n于于2014
21、年首先用于服務(wù)器領(lǐng)域,支持桌面很可年首先用于服務(wù)器領(lǐng)域,支持桌面很可能要等到再往后的能要等到再往后的14nm工藝新架構(gòu)工藝新架構(gòu)“Skylake”。4.1.2 主存儲器和寄存器主存儲器和寄存器n主存儲器發(fā)展歷史主存儲器發(fā)展歷史nDDRSDRAM:Double Data Rate SDRAMnDDR4,主要變化,主要變化n外觀變化明顯,金手指變成彎曲狀外觀變化明顯,金手指變成彎曲狀n頻率提升明顯,可達頻率提升明顯,可達4266MHzn容量提升明顯,可達容量提升明顯,可達128GBn功耗明顯降低,電壓達到功耗明顯降低,電壓達到1.2V、甚至更低、甚至更低4.1.2 主存儲器和寄存器主存儲器和寄存器
22、n寄存器寄存器n訪問速度最快,完全能與訪問速度最快,完全能與CPU協(xié)調(diào)工作,但價協(xié)調(diào)工作,但價格卻十分昂貴,因此容量不可能做得很大。格卻十分昂貴,因此容量不可能做得很大。n長度一般以字長度一般以字(word)為單位。為單位。n寄存器的數(shù)目,對于當(dāng)前的微機系統(tǒng)和大中型寄存器的數(shù)目,對于當(dāng)前的微機系統(tǒng)和大中型機,可能有幾十個甚至上百個;而嵌入式計算機,可能有幾十個甚至上百個;而嵌入式計算機系統(tǒng)一般僅有幾個到幾十個。機系統(tǒng)一般僅有幾個到幾十個。n作用:加速存儲器的訪問速度,或加快地址轉(zhuǎn)作用:加速存儲器的訪問速度,或加快地址轉(zhuǎn)換速度等。換速度等。 4.1.3 高速緩存和磁盤緩存高速緩存和磁盤緩存n高速
23、緩存高速緩存n介于寄存器和主存儲器之間的存儲器,主要用介于寄存器和主存儲器之間的存儲器,主要用于備份主存儲器中的數(shù)據(jù)。于備份主存儲器中的數(shù)據(jù)。n容量:大于或遠大于寄存器,而比內(nèi)存約小兩容量:大于或遠大于寄存器,而比內(nèi)存約小兩到三個數(shù)量級左右,從幾十到三個數(shù)量級左右,從幾十KB到幾到幾MB。n根據(jù)程序執(zhí)行的局部性原理,將主存中一些經(jīng)根據(jù)程序執(zhí)行的局部性原理,將主存中一些經(jīng)常訪問的信息存放在高速緩存中,減少訪問主常訪問的信息存放在高速緩存中,減少訪問主存儲器的次數(shù),可大幅度提高程序執(zhí)行速度。存儲器的次數(shù),可大幅度提高程序執(zhí)行速度。4.1.3 高速緩存和磁盤緩存高速緩存和磁盤緩存n磁盤緩存磁盤緩存n
24、磁盤的磁盤的I/O速度遠低于對主存的訪問速度,因速度遠低于對主存的訪問速度,因此將頻繁使用的磁盤數(shù)據(jù),暫時存放在磁盤緩此將頻繁使用的磁盤數(shù)據(jù),暫時存放在磁盤緩存中,可減少訪問磁盤的次數(shù)。存中,可減少訪問磁盤的次數(shù)。n磁盤緩存本身并不是一種實際存在的存儲介質(zhì),磁盤緩存本身并不是一種實際存在的存儲介質(zhì),利用主存中的存儲空間,來暫存從磁盤中讀出利用主存中的存儲空間,來暫存從磁盤中讀出(或?qū)懭牖驅(qū)懭?的信息。的信息。n另外,主存也可以看做是輔存的高速緩存。另外,主存也可以看做是輔存的高速緩存。4.2 程序的裝入和鏈接程序的裝入和鏈接n物理地址物理地址n內(nèi)存單元所看到的地址。用于內(nèi)存芯片級的單內(nèi)存單元所
25、看到的地址。用于內(nèi)存芯片級的單元尋址,與處理器和元尋址,與處理器和CPU連接的地址總線相對連接的地址總線相對應(yīng)。又稱為應(yīng)。又稱為絕對地址絕對地址。n邏輯地址邏輯地址n由由CPU生成。機器語言指令中,用來指定一個生成。機器語言指令中,用來指定一個操作數(shù)或者是一條指令的地址。也稱為操作數(shù)或者是一條指令的地址。也稱為虛擬地虛擬地址址,相對地址相對地址。0X000000000XFFFFFFFF4GB4.2 程序的裝入和鏈接程序的裝入和鏈接n多道程序環(huán)境下,程序以進程方式運行;多道程序環(huán)境下,程序以進程方式運行;n創(chuàng)建進程創(chuàng)建進程 分配內(nèi)存分配內(nèi)存n源程序源程序編譯(編譯(compile)鏈接鏈接(li
26、nk)裝入裝入(load) 進程進程4.2 程序的裝入和鏈接程序的裝入和鏈接int i=0,n=200;while (in) couti; myprint(i); i+;0: i=0;1: n=200;2: if not (in) jmp 7;3: couti;4: call myprint(i);5: i+;6: jmp 2;7: holt;編譯編譯邏輯邏輯地址地址myprint(int i) int j=i*2; coutj;0: j=i*2;1: coutj;2: holt;4.2 程序的裝入和鏈接程序的裝入和鏈接0: i=0;1: n=200;2: if not (in) jmp 7;
27、3: couti;4: call myprint(i);5: i+;6: jmp 2;7: holt;鏈接鏈接0: j=i*2;1: coutj;2: holt;0: i=0;1: n=200;2: if not (in) jmp 7;3: couti;4: call myprint(i);5: i+;6: jmp 2;7: holt;0: j=i*2;1: coutj;2: holt;0: i=0;1: n=200;2: if not (in) jmp 7;3: couti;4: jmp 8;5: i+;6: jmp 2;7: holt;8: j=i*2;9: coutj;10: jmp 5
28、;4.2 程序的裝入和鏈接程序的裝入和鏈接0: i=0;1: n=200;2: if not (in) jmp 7;3: couti;4: call myprint(i);5: i+;6: jmp 2;7: holt;裝入裝入i=0;n=200;if not (in) jmp 7;couti;call myprint(i);i+;jmp 2;holt;500050015002500350045005500650074.2.1 程序的裝入程序的裝入n絕對裝入方式絕對裝入方式(Absolute Loading Mode) n事先事先確定(知道)確定(知道)了程序?qū)⒘顺绦驅(qū)Ⅰv留在內(nèi)存駐留在內(nèi)存的的位
29、置位置,即在內(nèi)存中的即在內(nèi)存中的絕對地址。絕對地址。n絕對地址的產(chǎn)生絕對地址的產(chǎn)生n程序員直接賦予。不僅要求程序員熟悉內(nèi)存程序員直接賦予。不僅要求程序員熟悉內(nèi)存使用情況,而且一旦程序或數(shù)據(jù)被修改后,使用情況,而且一旦程序或數(shù)據(jù)被修改后,可能要改變程序中的所有地址??赡芤淖兂绦蛑械乃械刂?。n編譯或匯編時產(chǎn)生。通常在程序中采用符號編譯或匯編時產(chǎn)生。通常在程序中采用符號地址,在編譯或匯編時,再將符號地址轉(zhuǎn)換地址,在編譯或匯編時,再將符號地址轉(zhuǎn)換為絕對地址。為絕對地址。優(yōu)點優(yōu)點:程序中的邏輯地址與實際內(nèi)存地址完全相同,故不:程序中的邏輯地址與實際內(nèi)存地址完全相同,故不須對程序和數(shù)據(jù)的地址進行修改。
30、須對程序和數(shù)據(jù)的地址進行修改。缺點缺點: 程序和數(shù)據(jù),不能在內(nèi)存中移動。適用于單道程序程序和數(shù)據(jù),不能在內(nèi)存中移動。適用于單道程序環(huán)境。環(huán)境。4.2.1 程序的裝入程序的裝入n可重定位裝入方式可重定位裝入方式(Relocation Loading Mode) n在多道程序環(huán)境下,絕對裝入方式不適合。在多道程序環(huán)境下,絕對裝入方式不適合。n目標模塊的地址通常從目標模塊的地址通常從0開始的相對地址開始的相對地址n重定位重定位n在裝入時對目標程序中指令和數(shù)據(jù)的地址修改的過在裝入時對目標程序中指令和數(shù)據(jù)的地址修改的過程。程。n靜態(tài)重定位靜態(tài)重定位n地址變換通常是在裝入時一次完成的,以后不再改地址變換通
31、常是在裝入時一次完成的,以后不再改變。變。4.2.1 程序的裝入程序的裝入缺點:不斷的分配和回收,造成內(nèi)存中小空閑塊很多,總?cè)秉c:不斷的分配和回收,造成內(nèi)存中小空閑塊很多,總空閑空間量夠,但分配不了空閑空間量夠,但分配不了辦法:緊湊(移動),但該裝入方法不支持辦法:緊湊(移動),但該裝入方法不支持0: i=0;1: n=200;2: if not (in) jmp 7;3: couti;4: call myprint(i);5: i+;6: jmp 2;7: holt;裝入裝入i=0;n=200;if not (in) jmp 5007;couti;call myprint(i);i+;jmp
32、 5002;holt;500050015002500350045005500650074.2.1 程序的裝入程序的裝入n動態(tài)運行時裝入方式動態(tài)運行時裝入方式(Denamic Run-time Loading) n在把裝入模塊裝入內(nèi)存后,并不立即把裝入模在把裝入模塊裝入內(nèi)存后,并不立即把裝入模塊中的相對地址轉(zhuǎn)換為絕對地址,裝入內(nèi)存后塊中的相對地址轉(zhuǎn)換為絕對地址,裝入內(nèi)存后的所有地址都的所有地址都仍是相對地址仍是相對地址。n地址轉(zhuǎn)換時機地址轉(zhuǎn)換時機n程序真正要程序真正要執(zhí)行執(zhí)行時進行。時進行。4.2.2 程序的鏈接程序的鏈接n靜態(tài)鏈接方式靜態(tài)鏈接方式(Static Linking) n在程序在程序
33、運行前運行前,先將各目標模塊及所需的庫函,先將各目標模塊及所需的庫函數(shù)鏈接成一個完整的裝配模塊,以后不再拆開數(shù)鏈接成一個完整的裝配模塊,以后不再拆開n在將這幾個目標模塊裝配成一個裝入模塊時,在將這幾個目標模塊裝配成一個裝入模塊時,需要解決以下兩個問題需要解決以下兩個問題n對相對地址進行修改對相對地址進行修改n變換外部調(diào)用符號變換外部調(diào)用符號4.2.2 程序的鏈接程序的鏈接n靜態(tài)鏈接方式靜態(tài)鏈接方式0: i=0;1: n=200;2: if not (in) jmp 7;3: couti;4: call myprint(i);5: i+;6: jmp 2;7: holt;鏈接鏈接0: j=i*2
34、;1: coutj;2: holt;0: i=0;1: n=200;2: if not (in) jmp 7;3: couti;4: call myprint(i);5: i+;6: jmp 2;7: holt;0: j=i*2;1: coutj;2: holt;0: i=0;1: n=200;2: if not (in) jmp 7;3: couti;4: jmp 8;5: i+;6: jmp 2;7: holt;8: j=i*2;9: coutj;10: jmp 5;4.2.2 程序的鏈接程序的鏈接n裝入時動態(tài)鏈接裝入時動態(tài)鏈接(Loadtime Dynamic Linking) n將用戶
35、的源程序編譯后所得的一組目標將用戶的源程序編譯后所得的一組目標模塊在裝入內(nèi)存時采用模塊在裝入內(nèi)存時采用邊裝入邊鏈接邊裝入邊鏈接的的方式方式n便于修改和更新便于修改和更新n便于實現(xiàn)對目標模塊的共享便于實現(xiàn)對目標模塊的共享 4.2.2 程序的鏈接程序的鏈接n裝入時動態(tài)鏈接裝入時動態(tài)鏈接0: i=0;1: n=200;2: if not (in) jmp 7;3: couti;4: call myprint(i);5: i+;6: jmp 2;7: holt;裝入裝入0: j=i*2;1: coutj;2: holt;i=0;n=200;if not (in) jmp 5007;couti;call
36、 myprint(i);i+;jmp 5002;holt;j=i*2;cout 限長寄存器的值,則產(chǎn)生訪問地址限長寄存器的值,則產(chǎn)生訪問地址越界中斷。越界中斷。4.3.6 動態(tài)可重定位分區(qū)分配動態(tài)可重定位分區(qū)分配n讀寫保護讀寫保護防止操作越權(quán)防止操作越權(quán)n對于允許多個進程共享的存儲區(qū)域,每個進程對于允許多個進程共享的存儲區(qū)域,每個進程都有自己的訪問權(quán)限。如果一個進程對共享區(qū)都有自己的訪問權(quán)限。如果一個進程對共享區(qū)域的訪問違反了權(quán)限規(guī)定,則發(fā)生操作越權(quán)域的訪問違反了權(quán)限規(guī)定,則發(fā)生操作越權(quán)4.4 對換(對換(Swapping)n內(nèi)存擴充方法內(nèi)存擴充方法n目的:在多道環(huán)境下,目的:在多道環(huán)境下,解
37、決解決在在較小的存儲空間較小的存儲空間中運行較大程序中運行較大程序的問題的問題n覆蓋技術(shù):覆蓋技術(shù):主要用在早期的操作系統(tǒng)中;主要用在早期的操作系統(tǒng)中;n交換技術(shù):交換技術(shù):被廣泛用于小型分時系統(tǒng)中,它被廣泛用于小型分時系統(tǒng)中,它的發(fā)展導(dǎo)致了虛存技術(shù)的出現(xiàn)。的發(fā)展導(dǎo)致了虛存技術(shù)的出現(xiàn)。4.4 對換對換n覆蓋技術(shù)覆蓋技術(shù)n把程序劃分為若干個功能上相對獨立的程序段,把程序劃分為若干個功能上相對獨立的程序段,按照其自身的邏輯結(jié)構(gòu)將那些按照其自身的邏輯結(jié)構(gòu)將那些不會同時執(zhí)行不會同時執(zhí)行的的程序段程序段共享同一塊內(nèi)存共享同一塊內(nèi)存區(qū)域區(qū)域n程序段先保存在磁盤上,當(dāng)有關(guān)程序段的前一程序段先保存在磁盤上,當(dāng)
38、有關(guān)程序段的前一部分執(zhí)行結(jié)束,把后續(xù)程序段調(diào)入內(nèi)存,部分執(zhí)行結(jié)束,把后續(xù)程序段調(diào)入內(nèi)存,覆蓋覆蓋前面的程序段前面的程序段(內(nèi)存(內(nèi)存“擴大擴大”了)了)n一般要求作業(yè)各模塊之間有明確的調(diào)用結(jié)構(gòu),一般要求作業(yè)各模塊之間有明確的調(diào)用結(jié)構(gòu),程序員要向系統(tǒng)指明覆蓋結(jié)構(gòu)程序員要向系統(tǒng)指明覆蓋結(jié)構(gòu),然后由操作系,然后由操作系統(tǒng)完成自動覆蓋。統(tǒng)完成自動覆蓋。4.4 對換對換n覆蓋技術(shù)覆蓋技術(shù)4.4.1 多道程序環(huán)境下的對換技術(shù)多道程序環(huán)境下的對換技術(shù)n交換交換(對換對換)技術(shù)技術(shù)n問題問題n在內(nèi)存中的某些進程等待某事件發(fā)生而被阻塞,但在內(nèi)存中的某些進程等待某事件發(fā)生而被阻塞,但它卻占用了大量的內(nèi)存空間,甚至
39、可能出現(xiàn)在內(nèi)存它卻占用了大量的內(nèi)存空間,甚至可能出現(xiàn)在內(nèi)存中所有進程都被阻塞而迫使中所有進程都被阻塞而迫使CPU停止下來等待;停止下來等待;n許多作業(yè)在外存上等待,因無內(nèi)存而不能進入內(nèi)存許多作業(yè)在外存上等待,因無內(nèi)存而不能進入內(nèi)存運行。運行。n解決方法解決方法n把把內(nèi)存內(nèi)存中暫時不能運行的進程或者暫時不用的程序中暫時不能運行的進程或者暫時不用的程序和數(shù)據(jù),調(diào)出到和數(shù)據(jù),調(diào)出到外存外存;n再把已具備運行條件的進程或所需要的程序和數(shù)據(jù),再把已具備運行條件的進程或所需要的程序和數(shù)據(jù),調(diào)入調(diào)入內(nèi)存內(nèi)存。4.4.1 多道程序環(huán)境下的對換技術(shù)多道程序環(huán)境下的對換技術(shù)n對換的類型對換的類型n整體對換整體對換
40、n以整個進程為單位的對換,又稱為進程對換。以整個進程為單位的對換,又稱為進程對換。n頁面對換(分段對換)頁面對換(分段對換)n以頁(段)為單位進行的對換,又統(tǒng)稱為部分對換。以頁(段)為單位進行的對換,又統(tǒng)稱為部分對換。4.4.2 對換空間的管理對換空間的管理n外存空間劃分外存空間劃分n文件區(qū):存放文件;文件區(qū):存放文件;n對換區(qū):主要存放從內(nèi)存中換出的進程。對換區(qū):主要存放從內(nèi)存中換出的進程。n主要目標主要目標n提高進程換入和換出的速度提高進程換入和換出的速度n對換區(qū)空閑盤塊的管理中的數(shù)據(jù)結(jié)構(gòu)對換區(qū)空閑盤塊的管理中的數(shù)據(jù)結(jié)構(gòu)n記錄對換區(qū)的使用情況。形式與內(nèi)存在動態(tài)分區(qū)分配記錄對換區(qū)的使用情況。
41、形式與內(nèi)存在動態(tài)分區(qū)分配方式中所用數(shù)據(jù)結(jié)構(gòu)相似,即用方式中所用數(shù)據(jù)結(jié)構(gòu)相似,即用空閑分區(qū)表或空閑分空閑分區(qū)表或空閑分區(qū)鏈區(qū)鏈。n在空閑分區(qū)表中的每個表目中應(yīng)包含兩項,在空閑分區(qū)表中的每個表目中應(yīng)包含兩項, 即對換區(qū)即對換區(qū)的首址及其大小,它們的單位是盤塊號和盤塊數(shù)。的首址及其大小,它們的單位是盤塊號和盤塊數(shù)。4.4.2 對換空間的管理對換空間的管理n對換空間分配與回收對換空間分配與回收n對換空間的分配對換空間的分配n采用連續(xù)分配方式,可以是首次適應(yīng)算法、循環(huán)首采用連續(xù)分配方式,可以是首次適應(yīng)算法、循環(huán)首次適應(yīng)算法或最佳適應(yīng)算法。次適應(yīng)算法或最佳適應(yīng)算法。n對換空間的對換空間的回收操作回收操作n
42、回收區(qū)與插入點的前一分區(qū)回收區(qū)與插入點的前一分區(qū)F1相鄰接;相鄰接;n回收區(qū)與插入點的后一分區(qū)回收區(qū)與插入點的后一分區(qū)F2相鄰接;相鄰接;n回收區(qū)還同時與回收區(qū)還同時與F1和和F2二個分區(qū)相鄰接;二個分區(qū)相鄰接;n回收區(qū)的前、后沒有與之相鄰接的空閑分區(qū)?;厥諈^(qū)的前、后沒有與之相鄰接的空閑分區(qū)。4.4.2 對換空間的管理對換空間的管理回收區(qū)回收區(qū)F1F2回收區(qū)回收區(qū)F2回收區(qū)回收區(qū)F1F1F2F2回收區(qū)回收區(qū)F1F14.4.3 進程的換出與換入進程的換出與換入n進程的換出進程的換出n換出進程:換出進程:阻塞阻塞 且且優(yōu)先級最低優(yōu)先級最低;n啟動盤塊,將該進程的程序和數(shù)據(jù)傳送到磁盤啟動盤塊,將該進
43、程的程序和數(shù)據(jù)傳送到磁盤的的對換區(qū)對換區(qū)上。上。n若傳送未出現(xiàn)錯誤,便回收其占用的內(nèi)存空間,若傳送未出現(xiàn)錯誤,便回收其占用的內(nèi)存空間,并對該進程的并對該進程的進程控制塊進程控制塊做相應(yīng)的修改做相應(yīng)的修改n進程的換入進程的換入n換入進程:換入進程:就緒就緒” 且且換出時間換出時間(換出到磁盤上換出到磁盤上)最久最久;n直至已無可換入的進程或無可換出的進程直至已無可換入的進程或無可換出的進程為止為止4.4.3 進程的換出與換入進程的換出與換入4.4.3 進程的換出與換入進程的換出與換入n交換技術(shù)實現(xiàn)中的問題交換技術(shù)實現(xiàn)中的問題n選擇原則選擇原則: :將哪個進程換出內(nèi)存?將哪個進程換出內(nèi)存?n交換時
44、機的確定?交換時機的確定?n交換時需要做哪些工作?交換時需要做哪些工作?n換入內(nèi)存時位置的確定?換入內(nèi)存時位置的確定?4.4.3 進程的換出與換入進程的換出與換入n選擇原則:選擇原則:將哪個進程換出內(nèi)存?將哪個進程換出內(nèi)存?n例,分時系統(tǒng),時間片輪轉(zhuǎn)法或基于優(yōu)先數(shù)的例,分時系統(tǒng),時間片輪轉(zhuǎn)法或基于優(yōu)先數(shù)的調(diào)度算法,在選擇換出進程時,要確定調(diào)度算法,在選擇換出進程時,要確定換出的換出的進程是要長時間等待進程是要長時間等待的。的。n需要特殊考慮的情形需要特殊考慮的情形n任何等待任何等待I/OI/O的進程中存在的問題的進程中存在的問題n解決方法解決方法n從來不換出處于等待從來不換出處于等待I/OI/
45、O狀態(tài)的進程狀態(tài)的進程 有些有些I/O進程因進程因DMA(直接存儲器訪問)而不(直接存儲器訪問)而不能換出內(nèi)存或換出前需要操作系統(tǒng)的特殊幫助能換出內(nèi)存或換出前需要操作系統(tǒng)的特殊幫助4.4.3 進程的換出與換入進程的換出與換入n交換時機的確定:交換時機的確定:何時需發(fā)生交換?何時需發(fā)生交換?n只要不用就換出(很少再用)只要不用就換出(很少再用)n只在內(nèi)存空間不夠或有不夠的危險時換出只在內(nèi)存空間不夠或有不夠的危險時換出n交換時需要做哪些工作交換時需要做哪些工作n盤交換區(qū)盤交換區(qū):足夠大,存放所有用戶程序的所有:足夠大,存放所有用戶程序的所有內(nèi)存映像的內(nèi)存映像的拷貝拷貝n直接存取直接存?。罕仨毮軌?qū)?/p>
46、這些用戶程序的內(nèi)存映:必須能夠?qū)@些用戶程序的內(nèi)存映像進行存取操作。像進行存取操作。4.4.3 進程的換出與換入進程的換出與換入n換入內(nèi)存時位置的確定換入內(nèi)存時位置的確定n換出后再換入的內(nèi)存位置一定要在換出前的原換出后再換入的內(nèi)存位置一定要在換出前的原來位置上嗎?來位置上嗎?n受地址受地址“綁定綁定”技術(shù)的影響,即絕對地址產(chǎn)生技術(shù)的影響,即絕對地址產(chǎn)生時機的限制。時機的限制。4.4.3 進程的換出與換入進程的換出與換入n交換與覆蓋異同點交換與覆蓋異同點n共同點:共同點:n進程的程序和數(shù)據(jù)主要放進程的程序和數(shù)據(jù)主要放在外存在外存,當(dāng)前需要,當(dāng)前需要執(zhí)行的部分放在內(nèi)存執(zhí)行的部分放在內(nèi)存,內(nèi)外存之間
47、進行信息,內(nèi)外存之間進行信息交換交換n不同點:不同點:n交換交換發(fā)生在進程或作業(yè)之間,發(fā)生在進程或作業(yè)之間,而覆蓋而覆蓋發(fā)生在發(fā)生在同一進程或作業(yè)內(nèi)同一進程或作業(yè)內(nèi)。n覆蓋只能覆蓋那些與覆蓋段無關(guān)的程序段。覆蓋只能覆蓋那些與覆蓋段無關(guān)的程序段。4.5 分頁存儲管理方式分頁存儲管理方式n連續(xù)分配方式主要問題連續(xù)分配方式主要問題n形成許多形成許多“碎片碎片”;n通過通過“緊湊緊湊”方法將碎片拼接成可用的大塊空方法將碎片拼接成可用的大塊空間,但須為此付出很大開銷。間,但須為此付出很大開銷。n離散分配:將一個進程直接分散地裝入到離散分配:將一個進程直接分散地裝入到許多不相鄰接的分區(qū)。許多不相鄰接的分區(qū)
48、。n分頁存儲管理:基本單位是頁;分頁存儲管理:基本單位是頁;n分段存儲管理:基本單位是段;分段存儲管理:基本單位是段;n段頁式存儲管理段頁式存儲管理 :基本單位是段,段內(nèi)分頁。:基本單位是段,段內(nèi)分頁。4.5 分頁存儲管理方式分頁存儲管理方式存儲器管理存儲器管理連續(xù)分配方式連續(xù)分配方式離散分配方式離散分配方式分頁存儲管理分頁存儲管理分段存儲管理分段存儲管理段頁式存儲管理段頁式存儲管理4.5.1 分頁存儲管理的基本方法分頁存儲管理的基本方法n頁面和物理塊頁面和物理塊n頁面:頁面:將一個進程的邏輯地址空間分成若干個將一個進程的邏輯地址空間分成若干個大小相等的片,稱為大小相等的片,稱為頁面或頁頁面或
49、頁,并加以編號,并加以編號,從從0開始編制頁號,頁內(nèi)地址是相對于開始編制頁號,頁內(nèi)地址是相對于0編址。編址。n物理塊:物理塊:內(nèi)存按頁的大小劃分為大小相等的區(qū)內(nèi)存按頁的大小劃分為大小相等的區(qū)域,域,稱為物理塊(物理頁面,頁框稱為物理塊(物理頁面,頁框(frame),幀),幀),同樣加以編號,如同樣加以編號,如0塊、塊、1塊等等塊等等n在為進程分配內(nèi)存時,以塊為單位將進程中的在為進程分配內(nèi)存時,以塊為單位將進程中的若干個頁分別裝入到多個可以不相鄰接的物理若干個頁分別裝入到多個可以不相鄰接的物理塊中。由于進程的最后一頁經(jīng)常裝不滿一塊而塊中。由于進程的最后一頁經(jīng)常裝不滿一塊而形成了不可利用的碎片,稱
50、之為形成了不可利用的碎片,稱之為“頁內(nèi)碎片頁內(nèi)碎片”4.5.1 分頁存儲管理的基本方法分頁存儲管理的基本方法n頁面頁面和物理塊和物理塊n頁面大小。頁面大小。適中,且頁面大小應(yīng)是適中,且頁面大小應(yīng)是2的冪,的冪,通常為通常為1K B4MBn頁面較小頁面較小n內(nèi)存內(nèi)存碎片減小碎片減小,有利于,有利于提高內(nèi)存利用率提高內(nèi)存利用率,但也會,但也會導(dǎo)致進程的導(dǎo)致進程的頁表過長頁表過長,占用大量內(nèi)存;,占用大量內(nèi)存; 此外,還此外,還會會降低頁面換進換出的效率降低頁面換進換出的效率n頁面較大頁面較大n可以可以減少頁表的長度減少頁表的長度,提高頁面換進換出的速度,提高頁面換進換出的速度,但卻又會使但卻又會使
51、頁內(nèi)碎片增大頁內(nèi)碎片增大。4.5.1 分頁存儲管理的基本方法分頁存儲管理的基本方法n地址結(jié)構(gòu)地址結(jié)構(gòu)n分頁地址中的地址結(jié)構(gòu)分頁地址中的地址結(jié)構(gòu) 對某特定機器,其地址結(jié)構(gòu)是一定的。若給定一個邏對某特定機器,其地址結(jié)構(gòu)是一定的。若給定一個邏輯地址空間中的地址為輯地址空間中的地址為A,頁面的大小為,頁面的大小為L,則頁號,則頁號P和頁和頁內(nèi)地址內(nèi)地址d可按下式求得:可按下式求得: 例如:其系統(tǒng)的頁面大小為例如:其系統(tǒng)的頁面大小為1KB,設(shè),設(shè)A=2170B,則由,則由下式可以求得下式可以求得P= ,d= 。 頁號頁號P位移量位移量W3112110頁內(nèi)地址頁內(nèi)地址212=4*2104KB220=210
52、*2101MMODLAdLAINTP212220481224.5.1 分頁存儲管理的基本方法分頁存儲管理的基本方法n頁表頁表n主存分配過程:把用戶程序的任一頁分配到內(nèi)主存分配過程:把用戶程序的任一頁分配到內(nèi)存中的任一物理塊,從而實現(xiàn)非連續(xù)的內(nèi)存分存中的任一物理塊,從而實現(xiàn)非連續(xù)的內(nèi)存分配。配。n問題問題n如何管理、如何進行地址變換?如何管理、如何進行地址變換?4.5.1 分頁存儲管理的基本方法分頁存儲管理的基本方法n將進程的每一頁離散地存儲在內(nèi)存的任一物理塊中,為將進程的每一頁離散地存儲在內(nèi)存的任一物理塊中,為每個進程建立一張頁面映像表,簡稱頁表每個進程建立一張頁面映像表,簡稱頁表4.5.1
53、分頁存儲管理的基本方法分頁存儲管理的基本方法n頁表頁表n用戶程序的邏輯地址與其在主存中的物理地址用戶程序的邏輯地址與其在主存中的物理地址間的對應(yīng)關(guān)系。間的對應(yīng)關(guān)系。n一個頁表中包含若干個表目,表目的一個頁表中包含若干個表目,表目的自然序號自然序號對應(yīng)于用戶程序中的對應(yīng)于用戶程序中的頁號頁號,表目中的,表目中的塊號塊號是該是該頁對應(yīng)的頁對應(yīng)的物理塊號物理塊號。n每一個表目包含每一個表目包含指向頁框的指針指向頁框的指針,存取控制字存取控制字段段。n表目也稱為表目也稱為頁描述子。頁描述子。4.5.1 分頁存儲管理的基本方法分頁存儲管理的基本方法進程進程A頁表頁表00頁號頁號 塊號塊號11243548
54、59程序程序A 00程序程序A 11程序程序B 02程序程序B 13程序程序A 24程序程序A 35程序程序B 26程序程序B 37程序程序A 48內(nèi)存內(nèi)存程序程序A 59程序程序A0頁頁1頁頁2頁頁3頁頁4頁頁5頁頁n頁頁程序程序B0頁頁1頁頁2頁頁3頁頁4頁頁5頁頁m頁頁進程進程B頁表頁表02頁號頁號 塊號塊號132637n頁表頁表4.5.2 地址變換機構(gòu)地址變換機構(gòu)n基本地址變換機構(gòu)基本地址變換機構(gòu)n實現(xiàn)從實現(xiàn)從邏輯地址邏輯地址到到物理地址物理地址的轉(zhuǎn)換,將邏輯地址中的的轉(zhuǎn)換,將邏輯地址中的頁號頁號轉(zhuǎn)換為內(nèi)存中的轉(zhuǎn)換為內(nèi)存中的物理塊號物理塊號,通過,通過頁表頁表來完成來完成n頁表的實現(xiàn)頁
55、表的實現(xiàn)n寄存器:變換速度快、成本高,適應(yīng)小型系統(tǒng)。寄存器:變換速度快、成本高,適應(yīng)小型系統(tǒng)。n駐留在內(nèi)存:速度較低、成本低,適應(yīng)大系統(tǒng)。駐留在內(nèi)存:速度較低、成本低,適應(yīng)大系統(tǒng)。n頁表大多駐留在內(nèi)存中,在系統(tǒng)中設(shè)置頁表大多駐留在內(nèi)存中,在系統(tǒng)中設(shè)置頁表寄存器頁表寄存器PTR(Page Table Register),存放頁表在內(nèi)存中的,存放頁表在內(nèi)存中的始始址(址(PTBR)和和頁表的長度(頁表的長度(PTLR)n進程未執(zhí)行時,頁表的始址和頁表長度存放在本進程進程未執(zhí)行時,頁表的始址和頁表長度存放在本進程的的PCB中,當(dāng)調(diào)度程序調(diào)度到某進程時,才將這兩個中,當(dāng)調(diào)度程序調(diào)度到某進程時,才將這兩
56、個數(shù)據(jù)裝入頁表寄存器。數(shù)據(jù)裝入頁表寄存器。4.5.2 地址變換機構(gòu)地址變換機構(gòu)n地址轉(zhuǎn)換過程地址轉(zhuǎn)換過程4.5.2 地址變換機構(gòu)地址變換機構(gòu)n地址轉(zhuǎn)換過程地址轉(zhuǎn)換過程n指令指令 LOAD 1,2500 的地址變換過程(塊大小為的地址變換過程(塊大小為1024B)n把虛擬地址把虛擬地址2500轉(zhuǎn)換成頁號轉(zhuǎn)換成頁號P=2,位移量,位移量W=452;n如果頁號如果頁號2大于頁表大小,則中斷;否則繼續(xù);大于頁表大小,則中斷;否則繼續(xù);n頁號頁號2與頁表起址與頁表起址1000運算(運算(1000+2*4,設(shè)頁描述子,設(shè)頁描述子大小為大小為4)得到頁描述子地址為)得到頁描述子地址為1008;n從頁描述子中
57、讀取塊號從頁描述子中讀取塊號8;n根據(jù)頁描述子的根據(jù)頁描述子的“存取控制存取控制”判斷該指令是否被允許判斷該指令是否被允許訪問內(nèi)存,如果不允許,則中斷;否則繼續(xù);訪問內(nèi)存,如果不允許,則中斷;否則繼續(xù);n塊號塊號8與位移量與位移量452運算(運算(8*1024+452=9644,1024為為頁面大?。┑玫轿锢淼刂讽撁娲笮。┑玫轿锢淼刂?644;n執(zhí)行執(zhí)行LOAD操作。操作。4.5.2 地址變換機構(gòu)地址變換機構(gòu)n具有快表的地址變換機構(gòu)具有快表的地址變換機構(gòu)n由于頁表是存放在內(nèi)存中,因此每次由于頁表是存放在內(nèi)存中,因此每次CPU存取存取一個數(shù)據(jù)要一個數(shù)據(jù)要兩次訪問內(nèi)存;兩次訪問內(nèi)存;n為提高地址變
58、換速度,在地址變換機構(gòu)中增設(shè)為提高地址變換速度,在地址變換機構(gòu)中增設(shè)一個具有一個具有并行查詢能力并行查詢能力的高速緩沖寄存器,又的高速緩沖寄存器,又稱為稱為“聯(lián)想寄存器聯(lián)想寄存器”(Associative Memory)或或“快表快表”,“轉(zhuǎn)換表緩沖區(qū)轉(zhuǎn)換表緩沖區(qū)”,“關(guān)聯(lián)內(nèi)關(guān)聯(lián)內(nèi)存存”,用以存放當(dāng)前訪問的那些頁表項。用以存放當(dāng)前訪問的那些頁表項。n快表通??纱娣趴毂硗ǔ?纱娣?6-512個表項,如果設(shè)計得當(dāng),個表項,如果設(shè)計得當(dāng),命中率可達命中率可達90以上。以上。4.5.2 地址變換機構(gòu)地址變換機構(gòu)n具有快表的地址變換機構(gòu)具有快表的地址變換機構(gòu)頁表寄存器頁表寄存器頁表始址頁表始址頁表長度頁
59、表長度頁號頁號頁頁內(nèi)地址內(nèi)地址邏輯地址邏輯地址L越界中斷越界中斷塊號塊號b頁表頁表頁號頁號頁號頁號輸輸入入寄寄存存器器塊號塊號bb快表快表d物理地址物理地址4.5.3 訪問內(nèi)存的有效時間訪問內(nèi)存的有效時間n可能訪問時間:可能訪問時間:n 訪問快表;訪問快表;n訪問頁表(訪問內(nèi)存);訪問頁表(訪問內(nèi)存);n修改快表;修改快表;n訪問內(nèi)存,存取數(shù)據(jù)。訪問內(nèi)存,存取數(shù)據(jù)。n有效訪問時間:有效訪問時間:n設(shè)設(shè)TLB查找時間為查找時間為,內(nèi)存訪問時間為,內(nèi)存訪問時間為。n命中率:特定頁在命中率:特定頁在TLB中被查找到的百分比。用中被查找到的百分比。用表示表示n有效訪問時間(有效訪問時間(Effecti
60、ve Access Time, EAT)n EAT = ( + ) + (2 + ) (1 - )n = 2 + - 4.5.3 訪問內(nèi)存的有效時間訪問內(nèi)存的有效時間例:有一頁式系統(tǒng),其頁表存放在主存中:例:有一頁式系統(tǒng),其頁表存放在主存中: 如果對主存的一次存取需要如果對主存的一次存取需要1.51.5s,s,試問試問實現(xiàn)一次頁面訪問的存取時間是多少實現(xiàn)一次頁面訪問的存取時間是多少? ? =1.5=1.5* *2=3(s)2=3(s) 如果系統(tǒng)加有快表如果系統(tǒng)加有快表, ,平均命中率為平均命中率為85%,85%,當(dāng)當(dāng)頁表項在快表中時頁表項在快表中時, ,其查找時間忽略為其查找時間忽略為0, 0
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 重要物資采購合同
- 江西省萬載縣高中生物 專題2 細胞工程 2.2.2 動物細胞融合與單克隆抗體(練習(xí)課)教案 新人教版選修3
- 2024年三年級品社下冊《濃濃鄉(xiāng)土情》教案 山東版
- 高考化學(xué) 專題二 第8講 有機物的結(jié)構(gòu)、性質(zhì)和應(yīng)用教案(含解析)
- 2024秋九年級歷史上冊 第七單元 工業(yè)革命和工人運動的興起 第20課 第一次工業(yè)革命教案 新人教版
- 2023一年級數(shù)學(xué)上冊 二 比一比第1課時 比長短 比高矮教案 蘇教版
- 2024年春九年級化學(xué)下冊 第12單元 化學(xué)與生活 課題2 化學(xué)元素與人體健康教案 (新版)新人教版
- 文書模板-委托研發(fā)合同補充協(xié)議
- 年度部門評分表
- 混凝土澆筑課件
- 高考英語高頻短語按字母排序
- 世界各國國家代號、區(qū)號、時差
- 優(yōu)秀校長的政治素養(yǎng)與養(yǎng)成講述
- 河北省灤平縣東北部冶金礦產(chǎn)工業(yè)區(qū)發(fā)展規(guī)劃
- 藍牙測試項及其標準
- 第二章接待禮儀拜訪禮儀饋贈禮儀
- 鋼結(jié)構(gòu)拆除的施工協(xié)議書
- 旅游列車開行管理辦法
- 園區(qū)網(wǎng)絡(luò)規(guī)劃與設(shè)計管理 畢業(yè)設(shè)計
- 最新原創(chuàng)企業(yè)安全生產(chǎn)設(shè)備維修記錄表.doc
- 水利水電工程招標文件(示范文本)勘察設(shè)計
評論
0/150
提交評論