第五章 存儲(chǔ)管理_第1頁(yè)
第五章 存儲(chǔ)管理_第2頁(yè)
第五章 存儲(chǔ)管理_第3頁(yè)
第五章 存儲(chǔ)管理_第4頁(yè)
第五章 存儲(chǔ)管理_第5頁(yè)
已閱讀5頁(yè),還剩115頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 實(shí)用操作系統(tǒng)教程實(shí)用操作系統(tǒng)教程2本章內(nèi)容本章內(nèi)容5.1 存儲(chǔ)管理概述5.2 程序的裝入和鏈接5.3 連續(xù)分配方式5.4 基本分頁(yè)存儲(chǔ)管理方式 5.5 基本分段存儲(chǔ)管理方式5.6 基本段頁(yè)式存儲(chǔ)管理方式3本章學(xué)習(xí)目標(biāo)本章學(xué)習(xí)目標(biāo)v理解程序從編譯、鏈接到被裝入執(zhí)行的過程;理解程序從編譯、鏈接到被裝入執(zhí)行的過程;v理解邏輯地址和物理地址;理解邏輯地址和物理地址;v幾種基本的連續(xù)分配方案,理解內(nèi)部碎片和外部碎片;幾種基本的連續(xù)分配方案,理解內(nèi)部碎片和外部碎片;v掌握基本分頁(yè)管理的地址變換過程及頁(yè)表的作用;掌握基本分頁(yè)管理的地址變換過程及頁(yè)表的作用;v了解快表和多級(jí)頁(yè)表的作用和原理;了解快表和多級(jí)頁(yè)

2、表的作用和原理;v掌握基本分段管理的邏輯地址結(jié)構(gòu)、段表結(jié)構(gòu)、地址變掌握基本分段管理的邏輯地址結(jié)構(gòu)、段表結(jié)構(gòu)、地址變換過程;換過程;v理解分頁(yè)和分段管理的區(qū)別和聯(lián)系;理解分頁(yè)和分段管理的區(qū)別和聯(lián)系;v掌握基本段頁(yè)式管理方案的地址變換過程。掌握基本段頁(yè)式管理方案的地址變換過程。45.1 5.1 存儲(chǔ)管理概述存儲(chǔ)管理概述5.1.1 存儲(chǔ)器層次55.1.2 5.1.2 存儲(chǔ)管理任務(wù)存儲(chǔ)管理任務(wù)v操作系統(tǒng)須占用內(nèi)存一部分存儲(chǔ)空間存放自身的操作系統(tǒng)須占用內(nèi)存一部分存儲(chǔ)空間存放自身的程序、數(shù)據(jù)、管理信息以及與硬件接口信息等,程序、數(shù)據(jù)、管理信息以及與硬件接口信息等,一般稱這部分內(nèi)存空間為系統(tǒng)區(qū)。系統(tǒng)區(qū)外的其

3、一般稱這部分內(nèi)存空間為系統(tǒng)區(qū)。系統(tǒng)區(qū)外的其余內(nèi)存空間存放用戶的程序和數(shù)據(jù),稱為用戶區(qū)。余內(nèi)存空間存放用戶的程序和數(shù)據(jù),稱為用戶區(qū)。存儲(chǔ)管理主要是對(duì)用戶區(qū)進(jìn)行管理,它包括以下存儲(chǔ)管理主要是對(duì)用戶區(qū)進(jìn)行管理,它包括以下4 4項(xiàng)任務(wù)項(xiàng)任務(wù)。 (1 1)內(nèi)存分配和回收)內(nèi)存分配和回收 (2 2)地址變換地址變換 (3 3)內(nèi)存保護(hù))內(nèi)存保護(hù) (4 4)內(nèi)存擴(kuò)充內(nèi)存擴(kuò)充65.1.3 5.1.3 存儲(chǔ)管理目標(biāo)存儲(chǔ)管理目標(biāo)(1)(1)內(nèi)存結(jié)構(gòu)細(xì)節(jié)對(duì)于用戶和用戶程序要透明。在高級(jí)程序內(nèi)存結(jié)構(gòu)細(xì)節(jié)對(duì)于用戶和用戶程序要透明。在高級(jí)程序設(shè)計(jì)語(yǔ)言和匯編語(yǔ)言中將源程序和目標(biāo)程序進(jìn)行分離,源設(shè)計(jì)語(yǔ)言和匯編語(yǔ)言中將源程序和

4、目標(biāo)程序進(jìn)行分離,源程序獨(dú)立于內(nèi)存物理地址。程序獨(dú)立于內(nèi)存物理地址。(2)(2)提高內(nèi)存的利用率,解決大程序和小內(nèi)存之間的矛盾。提高內(nèi)存的利用率,解決大程序和小內(nèi)存之間的矛盾。通過對(duì)存儲(chǔ)空間采取不同的管理方式,解決內(nèi)存管理中的通過對(duì)存儲(chǔ)空間采取不同的管理方式,解決內(nèi)存管理中的碎片問題,提高內(nèi)存利用率。碎片問題,提高內(nèi)存利用率。(3)(3)為用戶程序完成程序裝入。編譯程序產(chǎn)生可執(zhí)行程序時(shí),為用戶程序完成程序裝入。編譯程序產(chǎn)生可執(zhí)行程序時(shí),在可執(zhí)行目標(biāo)程序中生成地址重定位所需信息,例如程序在可執(zhí)行目標(biāo)程序中生成地址重定位所需信息,例如程序長(zhǎng)度、數(shù)據(jù)區(qū)長(zhǎng)度等。長(zhǎng)度、數(shù)據(jù)區(qū)長(zhǎng)度等。(4)(4)解決內(nèi)存

5、速度與解決內(nèi)存速度與CPUCPU速度不匹配問題。為了解決內(nèi)存速度速度不匹配問題。為了解決內(nèi)存速度與與CPUCPU速度不匹配問題,引入了高速緩存。速度不匹配問題,引入了高速緩存。(5)(5)實(shí)現(xiàn)內(nèi)存保護(hù)和共享。內(nèi)存保護(hù)是確保并發(fā)執(zhí)行的各個(gè)實(shí)現(xiàn)內(nèi)存保護(hù)和共享。內(nèi)存保護(hù)是確保并發(fā)執(zhí)行的各個(gè)進(jìn)程在所分配的存儲(chǔ)區(qū)內(nèi)操作,互不干擾,通常由軟硬件進(jìn)程在所分配的存儲(chǔ)區(qū)內(nèi)操作,互不干擾,通常由軟硬件結(jié)合方式實(shí)現(xiàn)。結(jié)合方式實(shí)現(xiàn)。75.2 5.2 程序的裝入和鏈接程序的裝入和鏈接鏈接程序裝入模塊第二步第三步裝入程序內(nèi)存第一步庫(kù)編譯程序產(chǎn)生的目標(biāo)模塊85.2.1 5.2.1 幾個(gè)基本概念幾個(gè)基本概念1.1.相對(duì)地址與

6、相對(duì)地址空間相對(duì)地址與相對(duì)地址空間v在用匯編語(yǔ)言或高級(jí)語(yǔ)言編寫的程序中,數(shù)據(jù)和在用匯編語(yǔ)言或高級(jí)語(yǔ)言編寫的程序中,數(shù)據(jù)和子程序通常用符號(hào)名進(jìn)行訪問。程序中各種符號(hào)子程序通常用符號(hào)名進(jìn)行訪問。程序中各種符號(hào)名集合所限定的空間稱作程序名字空間。名集合所限定的空間稱作程序名字空間。v經(jīng)匯編或編譯程序處理后,源程序中的各種符號(hào)經(jīng)匯編或編譯程序處理后,源程序中的各種符號(hào)名轉(zhuǎn)換成由機(jī)器指令和數(shù)據(jù)組成的目標(biāo)程序,用名轉(zhuǎn)換成由機(jī)器指令和數(shù)據(jù)組成的目標(biāo)程序,用相對(duì)地址替換符號(hào)地址。相對(duì)地址替換符號(hào)地址。v目標(biāo)程序中的邏輯地址集合稱作該程序的相對(duì)地目標(biāo)程序中的邏輯地址集合稱作該程序的相對(duì)地址空間,又稱作邏輯地址空

7、間址空間,又稱作邏輯地址空間95.2.1 5.2.1 幾個(gè)基本概念幾個(gè)基本概念2.2.絕對(duì)地址與絕對(duì)地址空間絕對(duì)地址與絕對(duì)地址空間v程序在內(nèi)存空間中的實(shí)際存儲(chǔ)單元地址稱做物理程序在內(nèi)存空間中的實(shí)際存儲(chǔ)單元地址稱做物理地址或絕對(duì)地址。內(nèi)存空間是指物理內(nèi)存中全部地址或絕對(duì)地址。內(nèi)存空間是指物理內(nèi)存中全部存儲(chǔ)單元的集合所限定的空間。物理地址的總體存儲(chǔ)單元的集合所限定的空間。物理地址的總體構(gòu)成運(yùn)行用戶程序的物理地址空間,又稱絕對(duì)地構(gòu)成運(yùn)行用戶程序的物理地址空間,又稱絕對(duì)地址空間。址空間。vCPUCPU直接使用物理地址存取空間中的指令和數(shù)據(jù),直接使用物理地址存取空間中的指令和數(shù)據(jù),完成用戶程序或系統(tǒng)程序

8、。相對(duì)地址空間的大小完成用戶程序或系統(tǒng)程序。相對(duì)地址空間的大小由源程序決定,絕對(duì)地址空間的大小由系統(tǒng)硬件由源程序決定,絕對(duì)地址空間的大小由系統(tǒng)硬件配置決定。一個(gè)程序只有從相對(duì)地址空間裝入絕配置決定。一個(gè)程序只有從相對(duì)地址空間裝入絕對(duì)地址空間后才能運(yùn)行。對(duì)地址空間后才能運(yùn)行。105.2.1 5.2.1 幾個(gè)基本概念幾個(gè)基本概念3.3.地址重定位地址重定位v當(dāng)一個(gè)程序的相對(duì)地址裝入到與其邏輯地址空間當(dāng)一個(gè)程序的相對(duì)地址裝入到與其邏輯地址空間不一致的絕對(duì)地址空間中時(shí),為了保證程序的正不一致的絕對(duì)地址空間中時(shí),為了保證程序的正確運(yùn)行,必須把指令和數(shù)據(jù)的邏輯地址轉(zhuǎn)換為物確運(yùn)行,必須把指令和數(shù)據(jù)的邏輯地址

9、轉(zhuǎn)換為物理地址,這項(xiàng)工作稱為地址重定位。理地址,這項(xiàng)工作稱為地址重定位。v地址重定位通常有靜態(tài)地址重定位和動(dòng)態(tài)地址重地址重定位通常有靜態(tài)地址重定位和動(dòng)態(tài)地址重定位兩種方式。定位兩種方式。 靜態(tài)地址重定位靜態(tài)地址重定位 動(dòng)態(tài)地址重定位動(dòng)態(tài)地址重定位115.2.2 5.2.2 程序的裝入程序的裝入v程序的裝入指給程序的指令和數(shù)據(jù)分配物程序的裝入指給程序的指令和數(shù)據(jù)分配物理內(nèi)存空間,也常被稱為加載。一個(gè)程序理內(nèi)存空間,也常被稱為加載。一個(gè)程序要運(yùn)行必須得裝入內(nèi)存,這需要將指令和要運(yùn)行必須得裝入內(nèi)存,這需要將指令和數(shù)據(jù)的邏輯地址轉(zhuǎn)換為物理地址,即需要數(shù)據(jù)的邏輯地址轉(zhuǎn)換為物理地址,即需要進(jìn)行地址變換。進(jìn)

10、行地址變換。v根據(jù)地址變換發(fā)生時(shí)機(jī),裝入方式分為絕根據(jù)地址變換發(fā)生時(shí)機(jī),裝入方式分為絕對(duì)裝入方式、可重定位裝入方式和動(dòng)態(tài)運(yùn)對(duì)裝入方式、可重定位裝入方式和動(dòng)態(tài)運(yùn)行時(shí)裝入方式三種。行時(shí)裝入方式三種。125.2.2 5.2.2 程序的裝入程序的裝入1、絕對(duì)裝入方式v 在可執(zhí)行文件中記錄內(nèi)存地址,裝入時(shí)直接定位在上述在可執(zhí)行文件中記錄內(nèi)存地址,裝入時(shí)直接定位在上述( (即文件中記錄的地址即文件中記錄的地址) )內(nèi)存地址。內(nèi)存地址。v 優(yōu)點(diǎn):裝入過程簡(jiǎn)單。優(yōu)點(diǎn):裝入過程簡(jiǎn)單。v 缺點(diǎn):過于依賴于缺點(diǎn):過于依賴于硬件結(jié)構(gòu),不適于多道硬件結(jié)構(gòu),不適于多道程序系統(tǒng)。程序系統(tǒng)。135.2.2 5.2.2 程序的

11、裝入程序的裝入2、可重定位裝入方式v當(dāng)一個(gè)地址裝入與其地址空間不一致的存儲(chǔ)當(dāng)一個(gè)地址裝入與其地址空間不一致的存儲(chǔ)空間中,就得要進(jìn)行地址變換。也就是說將空間中,就得要進(jìn)行地址變換。也就是說將虛地址映射為內(nèi)存地址,把這種作法叫做虛地址映射為內(nèi)存地址,把這種作法叫做地地址重定位或地址映射。址重定位或地址映射。v在裝入一個(gè)作業(yè)時(shí),把作業(yè)中的指令地址全在裝入一個(gè)作業(yè)時(shí),把作業(yè)中的指令地址全部轉(zhuǎn)換為絕對(duì)地址(地址轉(zhuǎn)換工作是在作業(yè)部轉(zhuǎn)換為絕對(duì)地址(地址轉(zhuǎn)換工作是在作業(yè)執(zhí)行前集中一次完成的)在作業(yè)執(zhí)行過程中執(zhí)行前集中一次完成的)在作業(yè)執(zhí)行過程中就無須再進(jìn)行地址轉(zhuǎn)換工作。又稱靜態(tài)重定就無須再進(jìn)行地址轉(zhuǎn)換工作。又

12、稱靜態(tài)重定位裝入方式。位裝入方式。145.2.2 5.2.2 程序的裝入程序的裝入2、可重定位裝入方式v優(yōu)點(diǎn):不需硬件支持,優(yōu)點(diǎn):不需硬件支持,可以裝入有限多道可以裝入有限多道 程序(如程序(如MS DOSMS DOS中中 的的TSRTSR)。)。v缺點(diǎn):一個(gè)程序通缺點(diǎn):一個(gè)程序通 常需要占用連續(xù)的常需要占用連續(xù)的 內(nèi)存空間,程序裝內(nèi)存空間,程序裝 入內(nèi)存后不能移動(dòng)。入內(nèi)存后不能移動(dòng)。 不易實(shí)現(xiàn)共享。不易實(shí)現(xiàn)共享。155.2.2 5.2.2 程序的裝入程序的裝入3 3、動(dòng)態(tài)運(yùn)行時(shí)裝入方式、動(dòng)態(tài)運(yùn)行時(shí)裝入方式v可重定位裝入方式雖然可用于可重定位裝入方式雖然可用于多道程序系統(tǒng)多道程序系統(tǒng),但程序,

13、但程序執(zhí)行期間如果在內(nèi)存中發(fā)生移動(dòng),則程序的物理地址執(zhí)行期間如果在內(nèi)存中發(fā)生移動(dòng),則程序的物理地址都發(fā)生改變,須修改全部物理地址,否則程序?qū)o法都發(fā)生改變,須修改全部物理地址,否則程序?qū)o法正確執(zhí)行。所以,采用可重定位方式把程序裝入內(nèi)存正確執(zhí)行。所以,采用可重定位方式把程序裝入內(nèi)存后,程序在內(nèi)存中一般不再移動(dòng)。后,程序在內(nèi)存中一般不再移動(dòng)。v動(dòng)態(tài)運(yùn)行時(shí)裝入方式的優(yōu)點(diǎn)是操作系統(tǒng)可將一個(gè)程序動(dòng)態(tài)運(yùn)行時(shí)裝入方式的優(yōu)點(diǎn)是操作系統(tǒng)可將一個(gè)程序離散地存放在內(nèi)存空間。在離散地存放在內(nèi)存空間。在程序的整個(gè)執(zhí)行期間,允程序的整個(gè)執(zhí)行期間,允許程序在內(nèi)存中改變位置許程序在內(nèi)存中改變位置。這種加載方式有利于提高。這

14、種加載方式有利于提高內(nèi)存利用率,也為實(shí)現(xiàn)虛擬存儲(chǔ)器提供了基礎(chǔ)。動(dòng)態(tài)內(nèi)存利用率,也為實(shí)現(xiàn)虛擬存儲(chǔ)器提供了基礎(chǔ)。動(dòng)態(tài)運(yùn)行時(shí)裝入方式的缺點(diǎn)是需要硬件支持,操作系統(tǒng)實(shí)運(yùn)行時(shí)裝入方式的缺點(diǎn)是需要硬件支持,操作系統(tǒng)實(shí)現(xiàn)較為復(fù)雜?,F(xiàn)較為復(fù)雜。16動(dòng)態(tài)地址重定位示意圖動(dòng)態(tài)地址重定位示意圖 1500 12345Load A 500 內(nèi)存空間內(nèi)存空間5001000+ VR BR500100 12345Load A 500 0 虛擬空間(作業(yè)地址空間)虛擬空間(作業(yè)地址空間).3動(dòng)態(tài)運(yùn)行時(shí)裝入方式17重點(diǎn)回顧重點(diǎn)回顧v死鎖避免:銀行家算法死鎖避免:銀行家算法v死鎖的檢測(cè)與解除死鎖的檢測(cè)與解除v相對(duì)地址與相對(duì)地址空間

15、相對(duì)地址與相對(duì)地址空間v絕對(duì)地址與絕對(duì)地址空間絕對(duì)地址與絕對(duì)地址空間v地址重定位地址重定位18重點(diǎn)回顧重點(diǎn)回顧v程序程序的裝入的裝入 絕對(duì)裝入方式絕對(duì)裝入方式 可重定位裝入方式可重定位裝入方式 動(dòng)態(tài)運(yùn)行時(shí)裝入方式動(dòng)態(tài)運(yùn)行時(shí)裝入方式195.2.3 5.2.3 程序的鏈接程序的鏈接v根據(jù)鏈接時(shí)間的不同,可把鏈接分成如下三種:根據(jù)鏈接時(shí)間的不同,可把鏈接分成如下三種:(1) (1) 靜態(tài)鏈接靜態(tài)鏈接。在程序運(yùn)行之前,先將各目標(biāo)模塊。在程序運(yùn)行之前,先將各目標(biāo)模塊及它們所需的庫(kù)函數(shù),鏈接成一個(gè)完整的裝配模及它們所需的庫(kù)函數(shù),鏈接成一個(gè)完整的裝配模塊,以后不再拆開。我們把這種事先進(jìn)行鏈接的塊,以后不再拆

16、開。我們把這種事先進(jìn)行鏈接的方式稱為靜態(tài)鏈接方式。方式稱為靜態(tài)鏈接方式。(2) (2) 裝入時(shí)動(dòng)態(tài)鏈接裝入時(shí)動(dòng)態(tài)鏈接。這是指將用戶源程序編譯后。這是指將用戶源程序編譯后所得到的一組目標(biāo)模塊,在裝入內(nèi)存時(shí),采用邊所得到的一組目標(biāo)模塊,在裝入內(nèi)存時(shí),采用邊裝入邊鏈接的鏈接方式。裝入邊鏈接的鏈接方式。(3) (3) 運(yùn)行時(shí)動(dòng)態(tài)鏈接運(yùn)行時(shí)動(dòng)態(tài)鏈接。這是指對(duì)某些目標(biāo)模塊的鏈。這是指對(duì)某些目標(biāo)模塊的鏈接,是在程序執(zhí)行中需要該接,是在程序執(zhí)行中需要該( (目標(biāo)目標(biāo)) )模塊時(shí),才對(duì)模塊時(shí),才對(duì)它進(jìn)行的鏈接。它進(jìn)行的鏈接。201靜態(tài)鏈接方式(Static Linking)(1) (1) 對(duì)相對(duì)地址進(jìn)行修改。在

17、由編譯程序所產(chǎn)生的對(duì)相對(duì)地址進(jìn)行修改。在由編譯程序所產(chǎn)生的所有目標(biāo)模塊中,使用的都是相對(duì)地址,其起始所有目標(biāo)模塊中,使用的都是相對(duì)地址,其起始地址都為地址都為0 0,每個(gè)模塊中的地址都是相對(duì)于起始地,每個(gè)模塊中的地址都是相對(duì)于起始地址計(jì)算的。址計(jì)算的。 (2) (2) 變換外部調(diào)用符號(hào)。將每個(gè)模塊中所用的外部變換外部調(diào)用符號(hào)。將每個(gè)模塊中所用的外部調(diào)用符號(hào)也都變換為相對(duì)地址,如圖調(diào)用符號(hào)也都變換為相對(duì)地址,如圖4-4(b)4-4(b)所示所示。這種先進(jìn)行鏈接所形成的一個(gè)完整的裝入模塊。這種先進(jìn)行鏈接所形成的一個(gè)完整的裝入模塊,又稱為,又稱為可執(zhí)行文件可執(zhí)行文件。通常都不再拆開它,要運(yùn)。通常都不

18、再拆開它,要運(yùn)行時(shí)可直接將它裝入內(nèi)存。這種事先進(jìn)行鏈接,行時(shí)可直接將它裝入內(nèi)存。這種事先進(jìn)行鏈接,以后不再拆開的鏈接方式,稱為以后不再拆開的鏈接方式,稱為靜態(tài)鏈接靜態(tài)鏈接方式。方式。215.2.3 5.2.3 程序的鏈接程序的鏈接222裝入時(shí)動(dòng)態(tài)鏈接(Load-time Dynamic Linking)v用戶源程序經(jīng)編譯后所得的目標(biāo)模塊,是用戶源程序經(jīng)編譯后所得的目標(biāo)模塊,是在裝入內(nèi)存時(shí)邊裝入邊鏈接的,即在裝入在裝入內(nèi)存時(shí)邊裝入邊鏈接的,即在裝入一個(gè)目標(biāo)模塊時(shí),若發(fā)生一個(gè)外部模塊調(diào)一個(gè)目標(biāo)模塊時(shí),若發(fā)生一個(gè)外部模塊調(diào)用事件,將引起裝入程序去找出相應(yīng)的外用事件,將引起裝入程序去找出相應(yīng)的外部目標(biāo)

19、模塊,并將它裝入內(nèi)存,還要修改部目標(biāo)模塊,并將它裝入內(nèi)存,還要修改目標(biāo)模塊中的相對(duì)地址。目標(biāo)模塊中的相對(duì)地址。v裝入時(shí)動(dòng)態(tài)鏈接方式有以下優(yōu)點(diǎn):裝入時(shí)動(dòng)態(tài)鏈接方式有以下優(yōu)點(diǎn):(1) (1) 便于修改和更新。便于修改和更新。(2) (2) 便于實(shí)現(xiàn)對(duì)目標(biāo)模塊的共享。便于實(shí)現(xiàn)對(duì)目標(biāo)模塊的共享。233運(yùn)行時(shí)動(dòng)態(tài)鏈接(Run-time Dynamic Linking)v在許多情況下,應(yīng)用程序在運(yùn)行時(shí),每次要運(yùn)行在許多情況下,應(yīng)用程序在運(yùn)行時(shí),每次要運(yùn)行的模塊可能是不相同的。的模塊可能是不相同的。v但由于事先無法知道本次要運(yùn)行哪些模塊,故只但由于事先無法知道本次要運(yùn)行哪些模塊,故只能是將所有可能要運(yùn)行到的

20、模塊都全部裝入內(nèi)存能是將所有可能要運(yùn)行到的模塊都全部裝入內(nèi)存,并在裝入時(shí)全部鏈接在一起。,并在裝入時(shí)全部鏈接在一起。v顯然這是低效的。顯然這是低效的。v運(yùn)行時(shí)動(dòng)態(tài)鏈接運(yùn)行時(shí)動(dòng)態(tài)鏈接方式,是將對(duì)某些模塊的鏈接推方式,是將對(duì)某些模塊的鏈接推遲到程序執(zhí)行時(shí)才進(jìn)行鏈接,亦即,在執(zhí)行過程遲到程序執(zhí)行時(shí)才進(jìn)行鏈接,亦即,在執(zhí)行過程中,當(dāng)發(fā)現(xiàn)一個(gè)被調(diào)用模塊尚未裝入內(nèi)存時(shí),立中,當(dāng)發(fā)現(xiàn)一個(gè)被調(diào)用模塊尚未裝入內(nèi)存時(shí),立即由即由OSOS去找到該模塊并將之裝入內(nèi)存,把它鏈接去找到該模塊并將之裝入內(nèi)存,把它鏈接到調(diào)用者模塊上。到調(diào)用者模塊上。245.3 5.3 連續(xù)分配方式連續(xù)分配方式 連續(xù)分配方式是指為用戶進(jìn)程分配

21、連連續(xù)分配方式是指為用戶進(jìn)程分配連續(xù)內(nèi)存空間的內(nèi)存管理方式。早期操作系續(xù)內(nèi)存空間的內(nèi)存管理方式。早期操作系統(tǒng)都是采用連續(xù)分配方式管理內(nèi)存。連續(xù)統(tǒng)都是采用連續(xù)分配方式管理內(nèi)存。連續(xù)分配方式通常分為:?jiǎn)我贿B續(xù)分配、固定分配方式通常分為:?jiǎn)我贿B續(xù)分配、固定分區(qū)分配、可變分區(qū)分配、動(dòng)態(tài)可重定位分區(qū)分配、可變分區(qū)分配、動(dòng)態(tài)可重定位分區(qū)分配等分區(qū)分配等255.3.1 5.3.1 單一連續(xù)分配單一連續(xù)分配v單一連續(xù)分配方式是最簡(jiǎn)單的一種存儲(chǔ)管理方式,單一連續(xù)分配方式是最簡(jiǎn)單的一種存儲(chǔ)管理方式,只能用于單用戶、單任務(wù)的操作系統(tǒng)中。在此方只能用于單用戶、單任務(wù)的操作系統(tǒng)中。在此方式中,把內(nèi)存分為系統(tǒng)區(qū)和用戶區(qū)兩

22、部分。式中,把內(nèi)存分為系統(tǒng)區(qū)和用戶區(qū)兩部分。v系統(tǒng)區(qū)僅提供給操作系統(tǒng)使用;用戶區(qū)是指除系系統(tǒng)區(qū)僅提供給操作系統(tǒng)使用;用戶區(qū)是指除系統(tǒng)區(qū)之外的全部?jī)?nèi)存空間,提供給用戶作業(yè)使用,統(tǒng)區(qū)之外的全部?jī)?nèi)存空間,提供給用戶作業(yè)使用,一次只允許一個(gè)作業(yè)進(jìn)入內(nèi)存。作業(yè)往往只占用一次只允許一個(gè)作業(yè)進(jìn)入內(nèi)存。作業(yè)往往只占用戶區(qū)的一部分,其余部分空閑,內(nèi)存利用率較低。戶區(qū)的一部分,其余部分空閑,內(nèi)存利用率較低。v單一連續(xù)分配存儲(chǔ)管理方式只適用于程序的絕對(duì)單一連續(xù)分配存儲(chǔ)管理方式只適用于程序的絕對(duì)裝入。裝入。265.3.2 5.3.2 固定分區(qū)分配固定分區(qū)分配1. 1. 劃分分區(qū)的方法劃分分區(qū)的方法 分區(qū)大小相等,即所

23、有內(nèi)存分區(qū)大小相等。其缺分區(qū)大小相等,即所有內(nèi)存分區(qū)大小相等。其缺點(diǎn)是當(dāng)分區(qū)太大時(shí),會(huì)造成內(nèi)存空間浪費(fèi);當(dāng)點(diǎn)是當(dāng)分區(qū)太大時(shí),會(huì)造成內(nèi)存空間浪費(fèi);當(dāng)分區(qū)太小時(shí),會(huì)造成大作業(yè)無法運(yùn)行。它主要分區(qū)太小時(shí),會(huì)造成大作業(yè)無法運(yùn)行。它主要適用于一臺(tái)計(jì)算機(jī)控制多個(gè)相同對(duì)象的場(chǎng)合。適用于一臺(tái)計(jì)算機(jī)控制多個(gè)相同對(duì)象的場(chǎng)合。 分區(qū)大小不等,即所有內(nèi)存分區(qū)大小不等。可以分區(qū)大小不等,即所有內(nèi)存分區(qū)大小不等??梢园褍?nèi)存劃分成多個(gè)較小分區(qū)、適量中等分區(qū)及把內(nèi)存劃分成多個(gè)較小分區(qū)、適量中等分區(qū)及少量大分區(qū),以適應(yīng)不同程序的需求少量大分區(qū),以適應(yīng)不同程序的需求275.3.2 5.3.2 固定分區(qū)分配固定分區(qū)分配2. 內(nèi)存的

24、分配與回收內(nèi)存的分配與回收v為了便于內(nèi)存分配,通常將分區(qū)按為了便于內(nèi)存分配,通常將分區(qū)按大小進(jìn)行排隊(duì)大小進(jìn)行排隊(duì),并為之建立一張分區(qū)使用表,其中各表項(xiàng)包括,并為之建立一張分區(qū)使用表,其中各表項(xiàng)包括每個(gè)分區(qū)的起始地址、大小及狀態(tài)每個(gè)分區(qū)的起始地址、大小及狀態(tài)(是否已分配是否已分配),見下圖,見下圖a所示。所示。v當(dāng)有一用戶程序要裝入時(shí),由內(nèi)存分配程序檢索當(dāng)有一用戶程序要裝入時(shí),由內(nèi)存分配程序檢索該表,從中找出一個(gè)能滿足要求的、尚未分配的該表,從中找出一個(gè)能滿足要求的、尚未分配的分區(qū),將之分配給該程序,然后將該表項(xiàng)中的狀分區(qū),將之分配給該程序,然后將該表項(xiàng)中的狀態(tài)置為態(tài)置為“已分配已分配”;v若未

25、找到大小足夠的分區(qū),則拒絕為該用戶程序若未找到大小足夠的分區(qū),則拒絕為該用戶程序分配內(nèi)存。存儲(chǔ)空間分配情況如下圖分配內(nèi)存。存儲(chǔ)空間分配情況如下圖b所示。所示。2820K28K60K124K256K5.3.2 5.3.2 固定分區(qū)分配固定分區(qū)分配OS進(jìn)程進(jìn)程A(6K)進(jìn)程進(jìn)程B(25K)進(jìn)程進(jìn)程C(36K)(a)分區(qū)說明表(b)內(nèi)存狀態(tài))內(nèi)存狀態(tài)圖 固定分區(qū)使用表 295.3.2 5.3.2 固定分區(qū)分配固定分區(qū)分配v當(dāng)用戶程序要裝入執(zhí)行時(shí)當(dāng)用戶程序要裝入執(zhí)行時(shí), ,通過請(qǐng)求表通過請(qǐng)求表提出內(nèi)存分配要求和所要求的內(nèi)存空提出內(nèi)存分配要求和所要求的內(nèi)存空間大小。從分區(qū)說明表中查詢,從中間大小。從分區(qū)

26、說明表中查詢,從中找出一個(gè)大小滿足要求的空閑分區(qū),找出一個(gè)大小滿足要求的空閑分區(qū),并將其分配給申請(qǐng)者。并將其分配給申請(qǐng)者。v 固定分區(qū)的回收,只需將對(duì)應(yīng)的分區(qū)固定分區(qū)的回收,只需將對(duì)應(yīng)的分區(qū)狀態(tài)置為未使用即可。狀態(tài)置為未使用即可。30要求要求Xk大小分區(qū)大小分區(qū)取分區(qū)說明表第一項(xiàng)取分區(qū)說明表第一項(xiàng)狀態(tài)位置正在使用狀態(tài)位置正在使用取下一表項(xiàng)取下一表項(xiàng)無法分配無法分配該分區(qū)空閑?該分區(qū)空閑?分區(qū)長(zhǎng)度分區(qū)長(zhǎng)度Xk?表結(jié)束?表結(jié)束?返回分區(qū)號(hào)返回分區(qū)號(hào)否否否否否否是是是是是是圖圖5.10 5.10 固定分區(qū)分配算法固定分區(qū)分配算法315.3.2 5.3.2 固定分區(qū)分配固定分區(qū)分配3. 3. 地址變換

27、地址變換v 固定分區(qū)存儲(chǔ)的地址變換即可采用靜態(tài)重固定分區(qū)存儲(chǔ)的地址變換即可采用靜態(tài)重定位,也可采用動(dòng)態(tài)重定位。定位,也可采用動(dòng)態(tài)重定位。325.3.2 5.3.2 固定分區(qū)分配固定分區(qū)分配v優(yōu)點(diǎn):優(yōu)點(diǎn): 實(shí)現(xiàn)簡(jiǎn)單、開銷小實(shí)現(xiàn)簡(jiǎn)單、開銷小v 缺點(diǎn):缺點(diǎn): 必須預(yù)先能夠估計(jì)作業(yè)要占用的空間,必須預(yù)先能夠估計(jì)作業(yè)要占用的空間,分區(qū)總數(shù)固定,限制了并發(fā)作業(yè)的的數(shù)分區(qū)總數(shù)固定,限制了并發(fā)作業(yè)的的數(shù)目;目; 內(nèi)碎片(占用分區(qū)之內(nèi)未被利用的空間內(nèi)碎片(占用分區(qū)之內(nèi)未被利用的空間)造成浪費(fèi))造成浪費(fèi)335.3.3 5.3.3 可變分區(qū)分配可變分區(qū)分配v 可變分區(qū)的原理可變分區(qū)的原理v固定分區(qū)主存利用率不高,使

28、用起來不靈活,固定分區(qū)主存利用率不高,使用起來不靈活,所以出現(xiàn)了可變分區(qū)的管理技術(shù)。所以出現(xiàn)了可變分區(qū)的管理技術(shù)。v動(dòng)態(tài)分區(qū)原則:存儲(chǔ)空間的劃分是在作業(yè)裝入動(dòng)態(tài)分區(qū)原則:存儲(chǔ)空間的劃分是在作業(yè)裝入時(shí)進(jìn)行的。從可用的自由存儲(chǔ)空間內(nèi),劃出一時(shí)進(jìn)行的。從可用的自由存儲(chǔ)空間內(nèi),劃出一個(gè)大小正好等于作業(yè)大小的存儲(chǔ)區(qū),并分配給個(gè)大小正好等于作業(yè)大小的存儲(chǔ)區(qū),并分配給這一作業(yè)。這一作業(yè)。v動(dòng)態(tài)分區(qū),在系統(tǒng)初啟時(shí),除了操作系統(tǒng)中常動(dòng)態(tài)分區(qū),在系統(tǒng)初啟時(shí),除了操作系統(tǒng)中常駐內(nèi)存部分之外,只有一個(gè)空閑分區(qū)。駐內(nèi)存部分之外,只有一個(gè)空閑分區(qū)。345.3.3 5.3.3 可變分區(qū)分配可變分區(qū)分配進(jìn)程進(jìn)程 A A(8K

29、8K)進(jìn)程進(jìn)程 D D(124K124K)進(jìn)程進(jìn)程 B B(16K16K)進(jìn)程進(jìn)程 C C(64K64K)OSOS進(jìn)程進(jìn)程A(8K)A(8K)進(jìn)程進(jìn)程B(16K)B(16K)進(jìn)程進(jìn)程C(64K)C(64K)進(jìn)程進(jìn)程D(124K)D(124K)OSOS進(jìn)程進(jìn)程A(8K)A(8K)進(jìn)程進(jìn)程B(16K)B(16K)進(jìn)程進(jìn)程C(64K)C(64K)OSOS進(jìn)程進(jìn)程A(8K)A(8K)進(jìn)程進(jìn)程B(16K)B(16K)OSOS進(jìn)程進(jìn)程A(8K)A(8K)35內(nèi)存分配變化過程OSA(8K)8K空閑區(qū)空閑區(qū)B(16K)E(50K)D(124K)14K空閑區(qū)空閑區(qū)F(16K)OSA(8K)8K空閑區(qū)空閑區(qū)空閑區(qū)

30、空閑區(qū)16KE(50K)F(16K)空閑合并空閑合并124+14=138K進(jìn)程進(jìn)程E(50K)進(jìn)程進(jìn)程F(16K)進(jìn)入內(nèi)存進(jìn)入內(nèi)存進(jìn)程進(jìn)程B(16K)進(jìn)程進(jìn)程D(124K)完成完成OSA(8K)24K空閑區(qū)空閑區(qū)B(16K)C完成(完成(64K)空閑區(qū)空閑區(qū)D(124K)365.3.3 5.3.3 可變分區(qū)分配可變分區(qū)分配2. . 可變分區(qū)分配的數(shù)據(jù)結(jié)構(gòu)可變分區(qū)分配的數(shù)據(jù)結(jié)構(gòu) 空閑分區(qū)表。系統(tǒng)設(shè)置一張空閑分區(qū)表,記錄內(nèi)空閑分區(qū)表。系統(tǒng)設(shè)置一張空閑分區(qū)表,記錄內(nèi)存中每個(gè)空閑分區(qū)的序號(hào)、大小和起始地址,存中每個(gè)空閑分區(qū)的序號(hào)、大小和起始地址,每個(gè)空閑分區(qū)在空閑分區(qū)表中占一個(gè)表目。每個(gè)空閑分區(qū)在空閑

31、分區(qū)表中占一個(gè)表目。375.3.3 5.3.3 可變分區(qū)分配可變分區(qū)分配2. . 可變分區(qū)分配的數(shù)據(jù)結(jié)構(gòu)可變分區(qū)分配的數(shù)據(jù)結(jié)構(gòu) 空閑分區(qū)鏈。為了實(shí)現(xiàn)對(duì)空閑分區(qū)的分配和鏈接,空閑分區(qū)鏈。為了實(shí)現(xiàn)對(duì)空閑分區(qū)的分配和鏈接,在每個(gè)空閑分區(qū)的起始單元中存儲(chǔ)兩個(gè)值,一在每個(gè)空閑分區(qū)的起始單元中存儲(chǔ)兩個(gè)值,一個(gè)是空閑分區(qū)的大小,另一個(gè)是指向下一空閑個(gè)是空閑分區(qū)的大小,另一個(gè)是指向下一空閑分區(qū)的指針。分區(qū)的指針。385.3.3 5.3.3 可變分區(qū)分配可變分區(qū)分配3.常用的空閑分區(qū)分配算法有以下四種:常用的空閑分區(qū)分配算法有以下四種: 首次適應(yīng)(首次適應(yīng)(first fit)算法)算法 循環(huán)首次適應(yīng)(循環(huán)首次

32、適應(yīng)(next fit)算法)算法 最佳適應(yīng)(最佳適應(yīng)(best fit)算法)算法 最差適應(yīng)(最差適應(yīng)(worst fit)算法)算法393 3動(dòng)態(tài)分區(qū)分配算法動(dòng)態(tài)分區(qū)分配算法 首次適應(yīng)算法首次適應(yīng)算法(FF,FirstFit)v要求可用表或自由鏈按起始要求可用表或自由鏈按起始地址遞增地址遞增的次的次序排列。序排列。v從表頭查詢,一旦找到大小滿足的分區(qū)就從表頭查詢,一旦找到大小滿足的分區(qū)就結(jié)束探索。結(jié)束探索。v例題:如圖所示是某一個(gè)時(shí)刻例題:如圖所示是某一個(gè)時(shí)刻J1、J2、J3、J4在在內(nèi)存中的分配情況、空閑區(qū)表和已分區(qū)表,它們內(nèi)存中的分配情況、空閑區(qū)表和已分區(qū)表,它們的長(zhǎng)度分別是的長(zhǎng)度分別

33、是15KB、10KB、12KB、10KB。J5和和J6兩個(gè)新作業(yè)的長(zhǎng)度分別為兩個(gè)新作業(yè)的長(zhǎng)度分別為5KB和和13KB。按照。按照最先適應(yīng)算法進(jìn)行內(nèi)存分配,描述分配后內(nèi)存、最先適應(yīng)算法進(jìn)行內(nèi)存分配,描述分配后內(nèi)存、空閑區(qū)表以及已分區(qū)表的情況。空閑區(qū)表以及已分區(qū)表的情況。403 3動(dòng)態(tài)分區(qū)分配算法動(dòng)態(tài)分區(qū)分配算法最先適應(yīng)算法分配前的狀態(tài)最先適應(yīng)算法分配前的狀態(tài)已分區(qū)表已分區(qū)表0J1J4J3J21538486880110120空閑區(qū)表空閑區(qū)表J5J5和和J6J6兩個(gè)新作業(yè)的長(zhǎng)度分別為兩個(gè)新作業(yè)的長(zhǎng)度分別為5KB5KB和和13KB13KB。413 3動(dòng)態(tài)分區(qū)分配算法動(dòng)態(tài)分區(qū)分配算法最先適應(yīng)算法分配后的

34、狀態(tài)最先適應(yīng)算法分配后的狀態(tài)已分區(qū)表空閑區(qū)表3848110J6J1J4J3J20156880120J533J5J5和和J6J6兩個(gè)新作業(yè)的長(zhǎng)度分別為兩個(gè)新作業(yè)的長(zhǎng)度分別為5KB5KB和和13KB13KB。42從該空閑區(qū)中截取所需從該空閑區(qū)中截取所需大小,修改調(diào)整可用表大小,修改調(diào)整可用表從空閑區(qū)表第一從空閑區(qū)表第一表目順序查找表目順序查找從可用表中移去該從可用表中移去該表目,調(diào)整可用表表目,調(diào)整可用表取下一表項(xiàng)取下一表項(xiàng)無法分配無法分配該該 空閑區(qū)空閑區(qū)長(zhǎng)度長(zhǎng)度SIZE?該該 空閑區(qū)空閑區(qū)長(zhǎng)度長(zhǎng)度=SIZE?表目查完?表目查完?返回分配起始地址返回分配起始地址否否否否是是是是是是否否圖圖 最先

35、適應(yīng)算法最先適應(yīng)算法請(qǐng)求請(qǐng)求SIZESIZE大小的分區(qū)大小的分區(qū)433 3動(dòng)態(tài)分區(qū)分配算法動(dòng)態(tài)分區(qū)分配算法動(dòng)態(tài)分區(qū)存儲(chǔ)管理可采用多動(dòng)態(tài)分區(qū)存儲(chǔ)管理可采用多種數(shù)據(jù)結(jié)構(gòu)對(duì)內(nèi)存進(jìn)行管理種數(shù)據(jù)結(jié)構(gòu)對(duì)內(nèi)存進(jìn)行管理v每個(gè)空閑區(qū)用每個(gè)空閑區(qū)用map數(shù)據(jù)結(jié)數(shù)據(jù)結(jié)構(gòu)構(gòu)vstrut mapvunsigned m_size;vchar * m_addr;vstruct map cornmapN; m_addrm_addrm_sizem_sizem_addrm_addrm_sizem_size空閑區(qū)空閑區(qū)已分配已分配空閑區(qū)空閑區(qū)已分配已分配空閑區(qū)空閑區(qū)已分配已分配443 3動(dòng)態(tài)分區(qū)分配算法動(dòng)態(tài)分區(qū)分配算法 最先適應(yīng)法

36、最先適應(yīng)法vChar *malloc(struct map *mp,int size) /空閑表指針,空閑表指針,作業(yè)大小作業(yè)大小vint regint;vstruct map *bp;v/從從mp開始,只要開始,只要size不等于不等于0,逐個(gè)地址檢查,逐個(gè)地址檢查 m_addrm_addrm_sizem_sizem_addrm_addrm_sizem_size空閑區(qū)空閑區(qū)已分配已分配空閑區(qū)空閑區(qū)已分配已分配空閑區(qū)空閑區(qū)已分配已分配mp45for(bp=mp;bp-m_size;bp+) if(bp-m_size=size) regint=bp-m_addr; bp-m_addr+=size

37、;if(bp-m_size-=size)=0)/賦值并判斷賦值并判斷do bp+; (bp-1)-m_addr=bp-m_addr;while(bp-1)-m_size=bp-m_size);return(regint); return(0); m_addrm_addrm_sizem_sizem_addrm_addrm_sizem_size空閑區(qū)空閑區(qū)已分配已分配空閑區(qū)空閑區(qū)已分配已分配空閑區(qū)空閑區(qū)已分配已分配mp463 3動(dòng)態(tài)分區(qū)分配算法動(dòng)態(tài)分區(qū)分配算法 最先適應(yīng)法最先適應(yīng)法缺點(diǎn):缺點(diǎn): 由于查找總是從表首開始,前面的空閑區(qū)由于查找總是從表首開始,前面的空閑區(qū)被分割的很小時(shí),能滿足分配要求的

38、可能被分割的很小時(shí),能滿足分配要求的可能性就越小,查找次數(shù)越多性就越小,查找次數(shù)越多 碎片問題碎片問題473 3動(dòng)態(tài)分區(qū)分配算法動(dòng)態(tài)分區(qū)分配算法最佳適應(yīng)算法最佳適應(yīng)算法(BF,Best Fit)(BF,Best Fit)v要求可用表(空閑表)或自由鏈按分區(qū)要求可用表(空閑表)或自由鏈按分區(qū)大小遞增大小遞增的次序排列。的次序排列。v從表頭查詢,一旦找到大小滿足的分區(qū)從表頭查詢,一旦找到大小滿足的分區(qū)就結(jié)束探索就結(jié)束探索。483 3動(dòng)態(tài)分區(qū)分配算法動(dòng)態(tài)分區(qū)分配算法分配前的狀態(tài)分配前的狀態(tài)已分區(qū)表空閑區(qū)表J5J5和和J6J6兩個(gè)新作業(yè)的長(zhǎng)度分別為兩個(gè)新作業(yè)的長(zhǎng)度分別為5KB5KB和和13KB13KB

39、??臻e區(qū)表0J1J4J3J2153848688011012049 最佳適應(yīng)算法分配后的狀態(tài)已分區(qū)表空閑區(qū)表J6J3J1J4J201538486880110120J566J5J5和和J6J6兩個(gè)新作業(yè)的長(zhǎng)度分別為兩個(gè)新作業(yè)的長(zhǎng)度分別為5KB5KB和和13KB13KB。503 3動(dòng)態(tài)分區(qū)分配算法動(dòng)態(tài)分區(qū)分配算法最佳適應(yīng)法最佳適應(yīng)法v優(yōu)點(diǎn):優(yōu)點(diǎn): 分配后所剩余的空白塊會(huì)最小分配后所剩余的空白塊會(huì)最小 平均而言,只要查找一半的表格便能找到平均而言,只要查找一半的表格便能找到v缺點(diǎn):缺點(diǎn): 由于空閑區(qū)是按大小而不是按地址排序,因此由于空閑區(qū)是按大小而不是按地址排序,因此釋放時(shí),要在整個(gè)鏈表上搜索地址相鄰

40、的空閑區(qū)釋放時(shí),要在整個(gè)鏈表上搜索地址相鄰的空閑區(qū) 空閑區(qū)分配后剩余部分成為碎片空閑區(qū)分配后剩余部分成為碎片513 3動(dòng)態(tài)分區(qū)分配算法動(dòng)態(tài)分區(qū)分配算法最差適應(yīng)算法最差適應(yīng)算法(WF)(WF)v按空閑區(qū)按空閑區(qū)大小遞減大小遞減的順序組成空閑區(qū)可用表的順序組成空閑區(qū)可用表或自由鏈?;蜃杂涉湣最壞適應(yīng)算法的思想與最佳適應(yīng)算法相反,最壞適應(yīng)算法的思想與最佳適應(yīng)算法相反,將所有的空白分區(qū)按容量遞減的順序排列,最將所有的空白分區(qū)按容量遞減的順序排列,最前面的最大的空閑區(qū)就是找到的分區(qū)。該算法前面的最大的空閑區(qū)就是找到的分區(qū)。該算法是取所有空閑區(qū)中最大的一塊,把剩余的塊再是取所有空閑區(qū)中最大的一塊,把剩余

41、的塊再變成一個(gè)新小一點(diǎn)的空閑區(qū)。變成一個(gè)新小一點(diǎn)的空閑區(qū)。52分配前的狀態(tài)分配前的狀態(tài)已分區(qū)表空閑區(qū)表J5J5和和J6J6兩個(gè)新作業(yè)的長(zhǎng)度分別為兩個(gè)新作業(yè)的長(zhǎng)度分別為5KB5KB和和13KB13KB。空閑區(qū)表0J1J4J3J2153848688011012053 最壞適應(yīng)算法分配后的狀態(tài)已分區(qū)表空閑區(qū)表J5J5和和J6J6兩個(gè)新作業(yè)的長(zhǎng)度分別為兩個(gè)新作業(yè)的長(zhǎng)度分別為5KB5KB和和13KB13KB。1538486880110120J1J4J3J20J5J6 98543 3動(dòng)態(tài)分區(qū)分配算法動(dòng)態(tài)分區(qū)分配算法最壞適應(yīng)算法最壞適應(yīng)算法v優(yōu)點(diǎn):優(yōu)點(diǎn): 分配時(shí)只需查找一次就可以成功分配時(shí)只需查找一次就可以

42、成功v缺點(diǎn):缺點(diǎn):過早用掉大的空閑區(qū),剩余的分區(qū)越過早用掉大的空閑區(qū),剩余的分區(qū)越來越小來越小 ,無法運(yùn)行大程序,無法運(yùn)行大程序553 3動(dòng)態(tài)分區(qū)分配算法動(dòng)態(tài)分區(qū)分配算法循環(huán)首次適應(yīng)算法循環(huán)首次適應(yīng)算法(next fit)(next fit)v該算法是由首次適應(yīng)算法演變而成的。在為進(jìn)程該算法是由首次適應(yīng)算法演變而成的。在為進(jìn)程分配內(nèi)存空間時(shí),分配內(nèi)存空間時(shí),不再是不再是每次都從每次都從鏈?zhǔn)祖準(zhǔn)组_始查找開始查找,而是,而是從上次找到從上次找到的空閑分區(qū)的的空閑分區(qū)的下一個(gè)下一個(gè)空閑分區(qū)空閑分區(qū)開始查找,直至找到一個(gè)能滿足要求的空閑分區(qū)開始查找,直至找到一個(gè)能滿足要求的空閑分區(qū)。v為實(shí)現(xiàn)該算法,應(yīng)

43、設(shè)置一起始查尋指針,用于指為實(shí)現(xiàn)該算法,應(yīng)設(shè)置一起始查尋指針,用于指示下一次起始查尋的空閑分區(qū)。示下一次起始查尋的空閑分區(qū)。v該算法能使內(nèi)存中的空閑分區(qū)分布得更均勻,從該算法能使內(nèi)存中的空閑分區(qū)分布得更均勻,從而減少了查找空閑分區(qū)時(shí)的開銷,但這樣會(huì)缺乏而減少了查找空閑分區(qū)時(shí)的開銷,但這樣會(huì)缺乏大的空閑分區(qū)。大的空閑分區(qū)。56重點(diǎn)回顧重點(diǎn)回顧v程序鏈接程序鏈接 (1) (1) 靜態(tài)鏈接靜態(tài)鏈接 (2) (2) 裝入時(shí)動(dòng)態(tài)鏈接裝入時(shí)動(dòng)態(tài)鏈接(3) (3) 運(yùn)行時(shí)動(dòng)態(tài)鏈接運(yùn)行時(shí)動(dòng)態(tài)鏈接v連續(xù)分配方式是指為用戶進(jìn)程分配連續(xù)內(nèi)連續(xù)分配方式是指為用戶進(jìn)程分配連續(xù)內(nèi)存空間的內(nèi)存管理方式。存空間的內(nèi)存管理方式

44、。v連續(xù)分配方式:連續(xù)分配方式: 單一連續(xù)分配單一連續(xù)分配 固定分區(qū)分配:分區(qū)大小和個(gè)數(shù)固定固定分區(qū)分配:分區(qū)大小和個(gè)數(shù)固定57重點(diǎn)回顧重點(diǎn)回顧v可變分區(qū)分配:分區(qū)大小和個(gè)數(shù)隨內(nèi)存的可變分區(qū)分配:分區(qū)大小和個(gè)數(shù)隨內(nèi)存的動(dòng)態(tài)分配和回收變化動(dòng)態(tài)分配和回收變化v可變分區(qū)分配算法可變分區(qū)分配算法 首次適應(yīng)(首次適應(yīng)(first fit)算法)算法 最佳適應(yīng)(最佳適應(yīng)(best fit)算法)算法 最差適應(yīng)(最差適應(yīng)(worst fit)算法)算法584 4動(dòng)態(tài)分區(qū)時(shí)的回收與拼接動(dòng)態(tài)分區(qū)時(shí)的回收與拼接當(dāng)某一個(gè)用戶作業(yè)完成釋放所占分區(qū)時(shí),系當(dāng)某一個(gè)用戶作業(yè)完成釋放所占分區(qū)時(shí),系統(tǒng)應(yīng)進(jìn)行回收。統(tǒng)應(yīng)進(jìn)行回收。

45、在可變式分區(qū)中,應(yīng)該檢查回收區(qū)與內(nèi)存中在可變式分區(qū)中,應(yīng)該檢查回收區(qū)與內(nèi)存中前后空閑區(qū)是否相鄰,前后空閑區(qū)是否相鄰,若相鄰,則應(yīng)進(jìn)行合并,形成一個(gè)較大的空若相鄰,則應(yīng)進(jìn)行合并,形成一個(gè)較大的空閑區(qū),并對(duì)相應(yīng)的鏈表指針進(jìn)行修改;閑區(qū),并對(duì)相應(yīng)的鏈表指針進(jìn)行修改;若不相鄰,應(yīng)將空閑區(qū)插入到空閑區(qū)鏈表的若不相鄰,應(yīng)將空閑區(qū)插入到空閑區(qū)鏈表的適當(dāng)位置。適當(dāng)位置。594 4動(dòng)態(tài)分區(qū)時(shí)的回收與拼接動(dòng)態(tài)分區(qū)時(shí)的回收與拼接604 4動(dòng)態(tài)分區(qū)時(shí)的回收與拼接動(dòng)態(tài)分區(qū)時(shí)的回收與拼接v釋放區(qū)鄰接的分區(qū)情況可能是:釋放區(qū)鄰接釋放區(qū)鄰接的分區(qū)情況可能是:釋放區(qū)鄰接的是另一進(jìn)程的已分配區(qū),或者是空閑區(qū)。的是另一進(jìn)程的已分配

46、區(qū),或者是空閑區(qū)。v下面以首次適應(yīng)法說明了系統(tǒng)回收該進(jìn)程占下面以首次適應(yīng)法說明了系統(tǒng)回收該進(jìn)程占用區(qū)存在的四種可能情況。用區(qū)存在的四種可能情況。v設(shè)進(jìn)程的釋放區(qū)為設(shè)進(jìn)程的釋放區(qū)為R R,與,與R R相鄰的兩個(gè)空閑區(qū)相鄰的兩個(gè)空閑區(qū)分別為分別為F1F1和和F2F2。R R的首地址送的首地址送LOCLOC,R R的尾地址的尾地址送送LOC1LOC1,R R的大小送的大小送SIZESIZE。61(a)(a)若釋放區(qū)若釋放區(qū)R R與與F1F1相鄰接,即其低地址部分鄰相鄰接,即其低地址部分鄰接一空閑區(qū)。將接一空閑區(qū)。將R R與與F1F1合并,合并后的空閑區(qū)合并,合并后的空閑區(qū)仍記為仍記為F1F1。4 4

47、動(dòng)態(tài)分區(qū)時(shí)的回收與拼接動(dòng)態(tài)分區(qū)時(shí)的回收與拼接低地址低地址 高地址高地址空閑區(qū)空閑區(qū) F1進(jìn)程進(jìn)程 P 占用區(qū)占用區(qū)2低地址低地址 高地址高地址占用區(qū)占用區(qū)2空閑區(qū)空閑區(qū) F1(a)合并后合并后624 4動(dòng)態(tài)分區(qū)時(shí)的回收與拼接動(dòng)態(tài)分區(qū)時(shí)的回收與拼接如何判斷釋放區(qū)如何判斷釋放區(qū)R R 是否與某個(gè)空閑區(qū)相鄰呢是否與某個(gè)空閑區(qū)相鄰呢?只要從鏈?zhǔn)组_始查找即可:若只要從鏈?zhǔn)组_始查找即可:若F1F1的首地址的首地址+F1+F1的大小的大小=R=R的首地址,說明的首地址,說明R R與與F1F1相鄰接。相鄰接。只要修改只要修改F1F1的大小的大小= F1= F1的大小的大小+LOC+LOC,其它參,其它參數(shù)不變

48、和在鏈中的位置不變。數(shù)不變和在鏈中的位置不變。634 4動(dòng)態(tài)分區(qū)時(shí)的回收與拼接動(dòng)態(tài)分區(qū)時(shí)的回收與拼接(b)(b)若釋放區(qū)若釋放區(qū)R R與與F2F2相鄰接,即其高地址部分鄰接一空相鄰接,即其高地址部分鄰接一空閑區(qū)。將閑區(qū)。將R R與與F2F2合并,合并后的空閑區(qū)記仍記為合并,合并后的空閑區(qū)記仍記為F2F2。 判斷釋放區(qū)判斷釋放區(qū)R R 是否與是否與F2F2空閑區(qū)相鄰,只要從鏈?zhǔn)卓臻e區(qū)相鄰,只要從鏈?zhǔn)组_始查找。開始查找。 若若LOC+SIZE=F2LOC+SIZE=F2的首地址,說明的首地址,說明R R與與F2F2相鄰接。需相鄰接。需修改修改F2F2的首地址的首地址=LOC=LOC,F(xiàn)2F2的大小

49、的大小= F2= F2的大小的大小+SIZE+SIZE。644 4動(dòng)態(tài)分區(qū)時(shí)的回收與拼接動(dòng)態(tài)分區(qū)時(shí)的回收與拼接(b)合并后合并后低地址低地址 高地址高地址占用區(qū)占用區(qū)1 進(jìn)程進(jìn)程 P 空閑區(qū)空閑區(qū)F2低地址低地址 高地址高地址空閑區(qū)空閑區(qū)F2占用區(qū)占用區(qū)1654 4動(dòng)態(tài)分區(qū)時(shí)的回收與拼接動(dòng)態(tài)分區(qū)時(shí)的回收與拼接(c) (c) 若釋放區(qū)若釋放區(qū)R R的高、低地址部分都鄰接一個(gè)空閑區(qū)。的高、低地址部分都鄰接一個(gè)空閑區(qū)。應(yīng)將三個(gè)分區(qū)合并為一個(gè)大空閑區(qū),并記為應(yīng)將三個(gè)分區(qū)合并為一個(gè)大空閑區(qū),并記為F1F1。 先將先將R R與與F2F2合并,記為合并,記為F2F2。再將再將F 2F 2與與F1F1合并,并

50、將合并,并將F2F2從鏈中刪除。從鏈中刪除??臻e區(qū)空閑區(qū)F1 釋放區(qū)釋放區(qū)R空閑區(qū)空閑區(qū)F2空閑區(qū)空閑區(qū)F1合并后合并后664 4動(dòng)態(tài)分區(qū)時(shí)的回收與拼接動(dòng)態(tài)分區(qū)時(shí)的回收與拼接(d)(d)若釋放區(qū)若釋放區(qū)R R上下都不鄰接空閑區(qū),將其插入上下都不鄰接空閑區(qū),將其插入空閑區(qū)鏈的適當(dāng)位置即可。空閑區(qū)鏈的適當(dāng)位置即可。675. 5. 地址變換和分區(qū)保護(hù)地址變換和分區(qū)保護(hù) 地址變換地址變換 對(duì)動(dòng)態(tài)分區(qū)可采用動(dòng)態(tài)重定位裝入方式,程序和數(shù)據(jù)的對(duì)動(dòng)態(tài)分區(qū)可采用動(dòng)態(tài)重定位裝入方式,程序和數(shù)據(jù)的地址轉(zhuǎn)換由硬件完成。地址轉(zhuǎn)換由硬件完成。 硬件中設(shè)置兩個(gè)專門控制寄存器:基址寄存器和限長(zhǎng)寄硬件中設(shè)置兩個(gè)專門控制寄存器:

51、基址寄存器和限長(zhǎng)寄存器?;芳拇嫫鞔娣欧纸o作業(yè)使用的分區(qū)的起始地址,限存器?;芳拇嫫鞔娣欧纸o作業(yè)使用的分區(qū)的起始地址,限長(zhǎng)寄存器存放作業(yè)占用的分區(qū)的長(zhǎng)度。當(dāng)作業(yè)占用長(zhǎng)寄存器存放作業(yè)占用的分區(qū)的長(zhǎng)度。當(dāng)作業(yè)占用CPU CPU 運(yùn)行運(yùn)行時(shí),操作系統(tǒng)把該區(qū)的起始地址和長(zhǎng)度存入基址寄存器和限時(shí),操作系統(tǒng)把該區(qū)的起始地址和長(zhǎng)度存入基址寄存器和限長(zhǎng)寄存器。作業(yè)執(zhí)行時(shí),硬件根據(jù)基址寄存器進(jìn)行地址轉(zhuǎn)換。長(zhǎng)寄存器。作業(yè)執(zhí)行時(shí),硬件根據(jù)基址寄存器進(jìn)行地址轉(zhuǎn)換。 分區(qū)保護(hù)分區(qū)保護(hù) 基址基址/ /限長(zhǎng)保護(hù)法限長(zhǎng)保護(hù)法 保護(hù)鍵法保護(hù)鍵法 68動(dòng)態(tài)分區(qū)優(yōu)缺點(diǎn)v優(yōu)點(diǎn):優(yōu)點(diǎn):內(nèi)存利用率提高,避免了內(nèi)碎片內(nèi)存利用率提高,避免

52、了內(nèi)碎片v 缺點(diǎn):缺點(diǎn): 出現(xiàn)了外碎片(分區(qū)之間未被利用出現(xiàn)了外碎片(分區(qū)之間未被利用的空間)的空間)695.3.4 5.3.4 動(dòng)態(tài)可重定位分區(qū)分配動(dòng)態(tài)可重定位分區(qū)分配1.1.緊湊(拼接)技術(shù)緊湊(拼接)技術(shù) 緊湊(拼接)技術(shù)將內(nèi)存中的所有作業(yè)緊湊(拼接)技術(shù)將內(nèi)存中的所有作業(yè)進(jìn)行移動(dòng),同時(shí)修改每個(gè)程序的起始地址,進(jìn)行移動(dòng),同時(shí)修改每個(gè)程序的起始地址,使空閑區(qū)全都相鄰接。這樣把分散的多個(gè)小使空閑區(qū)全都相鄰接。這樣把分散的多個(gè)小分區(qū)拼接成一個(gè)大分區(qū),大作業(yè)可裝入該分分區(qū)拼接成一個(gè)大分區(qū),大作業(yè)可裝入該分區(qū)。緊湊之后要對(duì)被移動(dòng)作業(yè)的物理地址進(jìn)區(qū)。緊湊之后要對(duì)被移動(dòng)作業(yè)的物理地址進(jìn)行相應(yīng)修改。行相

53、應(yīng)修改。705.3.4 5.3.4 動(dòng)態(tài)可重定位分區(qū)分配動(dòng)態(tài)可重定位分區(qū)分配715.3.4 5.3.4 動(dòng)態(tài)可重定位分區(qū)分配動(dòng)態(tài)可重定位分區(qū)分配2.2.動(dòng)態(tài)重定位的實(shí)現(xiàn)過程動(dòng)態(tài)重定位的實(shí)現(xiàn)過程v動(dòng)態(tài)可重定位分區(qū)法中加載程序時(shí)采用動(dòng)態(tài)運(yùn)行動(dòng)態(tài)可重定位分區(qū)法中加載程序時(shí)采用動(dòng)態(tài)運(yùn)行時(shí)裝入方式,作業(yè)裝入內(nèi)存后的所有地址仍是邏時(shí)裝入方式,作業(yè)裝入內(nèi)存后的所有地址仍是邏輯地址,將邏輯地址轉(zhuǎn)換為物理地址的工作推遲輯地址,將邏輯地址轉(zhuǎn)換為物理地址的工作推遲到程序指令執(zhí)行時(shí)進(jìn)行。到程序指令執(zhí)行時(shí)進(jìn)行。v系統(tǒng)中增設(shè)一個(gè)重定位寄存器,用它來存放程序系統(tǒng)中增設(shè)一個(gè)重定位寄存器,用它來存放程序或數(shù)據(jù)在內(nèi)存中的起始地址

54、。程序執(zhí)行時(shí),真正或數(shù)據(jù)在內(nèi)存中的起始地址。程序執(zhí)行時(shí),真正訪問的物理地址是邏輯地址與重定位寄存器中的訪問的物理地址是邏輯地址與重定位寄存器中的地址相加而形成的。地址相加而形成的。725.3.4 5.3.4 動(dòng)態(tài)可重定位分區(qū)分配動(dòng)態(tài)可重定位分區(qū)分配735.4 5.4 基本分頁(yè)存儲(chǔ)管理方式基本分頁(yè)存儲(chǔ)管理方式5.4.1 5.4.1 基本概念基本概念1 1頁(yè)面頁(yè)面v分頁(yè)存儲(chǔ)管理是將一個(gè)進(jìn)程的邏輯地址空間分成分頁(yè)存儲(chǔ)管理是將一個(gè)進(jìn)程的邏輯地址空間分成大小相等的若干片,這樣的片被稱為頁(yè)或頁(yè)面。大小相等的若干片,這樣的片被稱為頁(yè)或頁(yè)面。程序的頁(yè)面從程序的頁(yè)面從0 0開始編號(hào),稱為頁(yè)號(hào)。一般情況下開始編號(hào)

55、,稱為頁(yè)號(hào)。一般情況下,進(jìn)程長(zhǎng)度不會(huì)剛好是頁(yè)面大小的整數(shù)倍,進(jìn)程,進(jìn)程長(zhǎng)度不會(huì)剛好是頁(yè)面大小的整數(shù)倍,進(jìn)程的最后一頁(yè)往往裝不滿,形成頁(yè)內(nèi)碎片。的最后一頁(yè)往往裝不滿,形成頁(yè)內(nèi)碎片。v頁(yè)式存儲(chǔ)管理中,頁(yè)面大小應(yīng)適中。若頁(yè)面太小頁(yè)式存儲(chǔ)管理中,頁(yè)面大小應(yīng)適中。若頁(yè)面太小,雖可減小頁(yè)內(nèi)碎片,提高內(nèi)存利用率,但會(huì)使,雖可減小頁(yè)內(nèi)碎片,提高內(nèi)存利用率,但會(huì)使每個(gè)進(jìn)程占用較多頁(yè)面,進(jìn)程的頁(yè)表過長(zhǎng),增加每個(gè)進(jìn)程占用較多頁(yè)面,進(jìn)程的頁(yè)表過長(zhǎng),增加內(nèi)存存放頁(yè)表的開銷。反之,若頁(yè)面太大,雖可內(nèi)存存放頁(yè)表的開銷。反之,若頁(yè)面太大,雖可減小頁(yè)表長(zhǎng)度,但會(huì)增大頁(yè)內(nèi)碎片。減小頁(yè)表長(zhǎng)度,但會(huì)增大頁(yè)內(nèi)碎片。745.4.1 5.

56、4.1 基本概念基本概念2 2物理塊物理塊v頁(yè)式存儲(chǔ)管理將物理內(nèi)存空間按頁(yè)面大小劃分為頁(yè)式存儲(chǔ)管理將物理內(nèi)存空間按頁(yè)面大小劃分為若干個(gè)存儲(chǔ)塊,每個(gè)存儲(chǔ)塊稱為物理塊,也稱為若干個(gè)存儲(chǔ)塊,每個(gè)存儲(chǔ)塊稱為物理塊,也稱為頁(yè)框或塊。內(nèi)存的所有物理塊從頁(yè)框或塊。內(nèi)存的所有物理塊從0 0開始編號(hào),稱為開始編號(hào),稱為塊號(hào)。每個(gè)物理塊內(nèi)也從塊號(hào)。每個(gè)物理塊內(nèi)也從0 0開始依次編址,稱為塊開始依次編址,稱為塊內(nèi)地址。內(nèi)地址。v在裝入程序時(shí),內(nèi)存以物理塊為單位進(jìn)行分配,在裝入程序時(shí),內(nèi)存以物理塊為單位進(jìn)行分配,程序頁(yè)面在內(nèi)存中可以占據(jù)地址不連續(xù)的物理塊程序頁(yè)面在內(nèi)存中可以占據(jù)地址不連續(xù)的物理塊,從而實(shí)現(xiàn)內(nèi)存的離散化

57、分配。,從而實(shí)現(xiàn)內(nèi)存的離散化分配。755.4.1 5.4.1 基本概念基本概念3 3地址結(jié)構(gòu)地址結(jié)構(gòu)v采用頁(yè)式管理時(shí),用戶程序中的邏輯地址仍然是采用頁(yè)式管理時(shí),用戶程序中的邏輯地址仍然是連續(xù)的、一維的。用戶在編制程序時(shí),只需使用連續(xù)的、一維的。用戶在編制程序時(shí),只需使用順序地址,而不必考慮如何去分頁(yè)。在運(yùn)行程序順序地址,而不必考慮如何去分頁(yè)。在運(yùn)行程序時(shí),系統(tǒng)自動(dòng)將邏輯地址分為頁(yè)號(hào)和頁(yè)內(nèi)地址兩時(shí),系統(tǒng)自動(dòng)將邏輯地址分為頁(yè)號(hào)和頁(yè)內(nèi)地址兩部分。地址的高位部分為頁(yè)號(hào),低位部分為頁(yè)內(nèi)部分。地址的高位部分為頁(yè)號(hào),低位部分為頁(yè)內(nèi)地址地址( (又稱為頁(yè)內(nèi)偏移地址又稱為頁(yè)內(nèi)偏移地址) )。 765.4.1 5

58、.4.1 基本概念基本概念4 4頁(yè)表頁(yè)表v分頁(yè)管理方式雖允許將進(jìn)程的各個(gè)頁(yè)離散地存儲(chǔ)在內(nèi)分頁(yè)管理方式雖允許將進(jìn)程的各個(gè)頁(yè)離散地存儲(chǔ)在內(nèi)存中的不同物理塊,但進(jìn)程運(yùn)行時(shí),系統(tǒng)應(yīng)能在內(nèi)存存中的不同物理塊,但進(jìn)程運(yùn)行時(shí),系統(tǒng)應(yīng)能在內(nèi)存中準(zhǔn)確地找到各個(gè)物理塊。為此,系統(tǒng)需記錄進(jìn)程邏中準(zhǔn)確地找到各個(gè)物理塊。為此,系統(tǒng)需記錄進(jìn)程邏輯頁(yè)與內(nèi)存物理塊之間的對(duì)應(yīng)關(guān)系,這往往通過為每輯頁(yè)與內(nèi)存物理塊之間的對(duì)應(yīng)關(guān)系,這往往通過為每個(gè)進(jìn)程建立的頁(yè)面映像表來實(shí)現(xiàn),頁(yè)面映像表常常簡(jiǎn)個(gè)進(jìn)程建立的頁(yè)面映像表來實(shí)現(xiàn),頁(yè)面映像表常常簡(jiǎn)稱為頁(yè)表。稱為頁(yè)表。v進(jìn)程的每個(gè)頁(yè)面對(duì)應(yīng)于頁(yè)表中一個(gè)頁(yè)表項(xiàng)。頁(yè)表項(xiàng)中進(jìn)程的每個(gè)頁(yè)面對(duì)應(yīng)于頁(yè)表中一個(gè)

59、頁(yè)表項(xiàng)。頁(yè)表項(xiàng)中記錄了該頁(yè)面對(duì)應(yīng)的內(nèi)存物理塊號(hào)。進(jìn)程執(zhí)行時(shí),通記錄了該頁(yè)面對(duì)應(yīng)的內(nèi)存物理塊號(hào)。進(jìn)程執(zhí)行時(shí),通過查找頁(yè)表即可找到每個(gè)頁(yè)面在位置??梢姡?yè)表的過查找頁(yè)表即可找到每個(gè)頁(yè)面在位置。可見,頁(yè)表的作用是實(shí)現(xiàn)從頁(yè)號(hào)到物理塊號(hào)的映射。頁(yè)表訪問頻繁作用是實(shí)現(xiàn)從頁(yè)號(hào)到物理塊號(hào)的映射。頁(yè)表訪問頻繁,常存放在內(nèi)存中。,常存放在內(nèi)存中。775.4.1 5.4.1 基本概念基本概念 78第0頁(yè)第1頁(yè)第2頁(yè)第3頁(yè)第4頁(yè)第5頁(yè)第6頁(yè)0k1k2k3k4k5k6k0k1k2k3k4k5k6k作業(yè)1的地址空間頁(yè)式管理的示意圖頁(yè)式管理的示意圖05k6k7k8k9k10k11k12k13k14k15k16k17k31k

60、.主存空間57915131016頁(yè)表795.4.2 5.4.2 地址變換機(jī)構(gòu)地址變換機(jī)構(gòu)1 1基本的地址變換機(jī)構(gòu)基本的地址變換機(jī)構(gòu)v地址變換:實(shí)現(xiàn)從虛擬地址(有效邏輯地址)到物地址變換:實(shí)現(xiàn)從虛擬地址(有效邏輯地址)到物理地址(絕對(duì)地址)的變換理地址(絕對(duì)地址)的變換v頁(yè)表的功能可以由一組專門的寄存器來實(shí)現(xiàn)。一個(gè)頁(yè)表的功能可以由一組專門的寄存器來實(shí)現(xiàn)。一個(gè)頁(yè)表項(xiàng)用一個(gè)寄存器。寄存器有利于提高地址變換頁(yè)表項(xiàng)用一個(gè)寄存器。寄存器有利于提高地址變換的速度;但由于寄存器成本較高,且大多數(shù)現(xiàn)代計(jì)的速度;但由于寄存器成本較高,且大多數(shù)現(xiàn)代計(jì)算機(jī)的頁(yè)表又可能很大,這些算機(jī)的頁(yè)表又可能很大,這些頁(yè)表項(xiàng)頁(yè)表項(xiàng)不

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論