




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、存儲(chǔ)器的層次結(jié)構(gòu)存儲(chǔ)器的層次結(jié)構(gòu)存儲(chǔ)器的功能存儲(chǔ)器的功能程序的裝入和鏈接程序的裝入和鏈接連續(xù)分配存儲(chǔ)管理連續(xù)分配存儲(chǔ)管理基本分頁(yè)存儲(chǔ)管理方式基本分頁(yè)存儲(chǔ)管理方式基本分段存儲(chǔ)管理方式基本分段存儲(chǔ)管理方式虛擬存儲(chǔ)器的基本概念虛擬存儲(chǔ)器的基本概念請(qǐng)求分頁(yè)存儲(chǔ)管理方式請(qǐng)求分頁(yè)存儲(chǔ)管理方式頁(yè)面置換算法頁(yè)面置換算法請(qǐng)求分段存儲(chǔ)管理方式請(qǐng)求分段存儲(chǔ)管理方式存儲(chǔ)器存儲(chǔ)器內(nèi)存儲(chǔ)器內(nèi)存儲(chǔ)器外存儲(chǔ)器外存儲(chǔ)器是處理機(jī)可按是處理機(jī)可按照地址直接存照地址直接存取指令和數(shù)據(jù)取指令和數(shù)據(jù)的存儲(chǔ)器的存儲(chǔ)器 是一永久性存是一永久性存儲(chǔ)器儲(chǔ)器 可執(zhí)行可執(zhí)行存儲(chǔ)器存儲(chǔ)器磁盤(pán)緩存磁盤(pán)緩存高速緩存高速緩存寄存器寄存器主存主存存儲(chǔ)管理功能
2、:存儲(chǔ)管理功能:1、內(nèi)存空間的管理、分配與回收、內(nèi)存空間的管理、分配與回收 記錄內(nèi)存的使用情況記錄內(nèi)存的使用情況 內(nèi)存空間劃分問(wèn)題??jī)?nèi)存空間劃分問(wèn)題? 內(nèi)存共享:兩個(gè)或多個(gè)進(jìn)程共用內(nèi)存中相同區(qū)域內(nèi)存共享:兩個(gè)或多個(gè)進(jìn)程共用內(nèi)存中相同區(qū)域 A.目的:目的:節(jié)省內(nèi)存空間,提高內(nèi)存利用率,實(shí)現(xiàn)節(jié)省內(nèi)存空間,提高內(nèi)存利用率,實(shí)現(xiàn)進(jìn)程通信進(jìn)程通信 B.共享內(nèi)容:共享內(nèi)容:代碼共享和數(shù)據(jù)共享代碼共享和數(shù)據(jù)共享 保護(hù)目的:保護(hù)目的:為多個(gè)程序共享內(nèi)存提供保障為多個(gè)程序共享內(nèi)存提供保障A.保護(hù)系統(tǒng)程序區(qū)不被用戶侵犯保護(hù)系統(tǒng)程序區(qū)不被用戶侵犯(有意或有意或無(wú)意的無(wú)意的)B.不允許用戶程序讀寫(xiě)不屬于自己地址空不允
3、許用戶程序讀寫(xiě)不屬于自己地址空間的數(shù)據(jù)(系統(tǒng)區(qū)地址空間,其他用戶間的數(shù)據(jù)(系統(tǒng)區(qū)地址空間,其他用戶程序的地址空間)程序的地址空間)一般由硬件提供一對(duì)寄存器:一般由硬件提供一對(duì)寄存器: 基址寄存器:存放起始地址基址寄存器:存放起始地址 限長(zhǎng)寄存器:存放長(zhǎng)度限長(zhǎng)寄存器:存放長(zhǎng)度 (上界寄存器(上界寄存器/下界寄存器)下界寄存器)通過(guò)虛擬存儲(chǔ)技術(shù)實(shí)現(xiàn)通過(guò)虛擬存儲(chǔ)技術(shù)實(shí)現(xiàn) 具體實(shí)現(xiàn)是在硬件支持下,軟硬件相互具體實(shí)現(xiàn)是在硬件支持下,軟硬件相互協(xié)作,將內(nèi)存和外存結(jié)合起來(lái)統(tǒng)一使用。協(xié)作,將內(nèi)存和外存結(jié)合起來(lái)統(tǒng)一使用。地址映射地址映射Load A 200 3456 。 。1200物理地址空間物理地址空間Loa
4、d A data1data1 3456源程序源程序Load A 200 34560100200編譯編譯連接連接邏輯地址空間邏輯地址空間BA=1000(1) 邏輯地址(相對(duì)地址,虛地址)邏輯地址(相對(duì)地址,虛地址)(2) 物理地址(絕對(duì)地址,實(shí)地址)物理地址(絕對(duì)地址,實(shí)地址)(3) 地址映射地址映射 用戶的程序經(jīng)過(guò)匯編或編譯后形成目標(biāo)代碼,目用戶的程序經(jīng)過(guò)匯編或編譯后形成目標(biāo)代碼,目標(biāo)代碼通常采用相對(duì)地址的形式,其首地址為標(biāo)代碼通常采用相對(duì)地址的形式,其首地址為0,其余,其余指令中的地址都相對(duì)于首地址而編址。指令中的地址都相對(duì)于首地址而編址。 不能用邏輯地不能用邏輯地址在內(nèi)存中讀取信息址在內(nèi)存
5、中讀取信息 為了保證為了保證CPU執(zhí)行指令時(shí)可正確訪問(wèn)存儲(chǔ)單元,執(zhí)行指令時(shí)可正確訪問(wèn)存儲(chǔ)單元,需將用戶程序中的邏輯地址轉(zhuǎn)換為運(yùn)行時(shí)由機(jī)器直需將用戶程序中的邏輯地址轉(zhuǎn)換為運(yùn)行時(shí)由機(jī)器直接尋址的物理地址,這一過(guò)程稱為地址映射。接尋址的物理地址,這一過(guò)程稱為地址映射。10003456.LOAD A 200.0100200300.LOAD A 2003456邏輯地址空間邏輯地址空間110012001300物理地址空間物理地址空間200VR+1000BR源程序源程序編譯器或編譯器或匯編器匯編器目標(biāo)模塊目標(biāo)模塊動(dòng)態(tài)動(dòng)態(tài)鏈接鏈接加載模加載模塊塊邏輯地址邏輯地址-物理地址物理地址編譯時(shí)編譯時(shí)加載(裝入)時(shí)加載
6、(裝入)時(shí)執(zhí)行時(shí)執(zhí)行時(shí)(1)絕對(duì)裝入方式(編譯時(shí))絕對(duì)裝入方式(編譯時(shí))(2)可重定位裝入方式(裝入時(shí))可重定位裝入方式(裝入時(shí))(3)動(dòng)態(tài)運(yùn)行時(shí)裝入方式(執(zhí)行時(shí))動(dòng)態(tài)運(yùn)行時(shí)裝入方式(執(zhí)行時(shí))編譯產(chǎn)生的目標(biāo)編譯產(chǎn)生的目標(biāo)代碼中的地址就代碼中的地址就是絕對(duì)地址是絕對(duì)地址 符號(hào)地址 JUMP i j i 絕對(duì)地址 JUMP1424 1024 2224 1424 4編譯或匯編編譯或匯編特點(diǎn):特點(diǎn):一般在程序中采用符號(hào)地址,在編譯或匯一般在程序中采用符號(hào)地址,在編譯或匯編時(shí),將符號(hào)地址轉(zhuǎn)換為絕對(duì)地址。編時(shí),將符號(hào)地址轉(zhuǎn)換為絕對(duì)地址。絕對(duì)裝入程序按照裝入模塊中的地址,裝絕對(duì)裝入程序按照裝入模塊中的地址,
7、裝入時(shí)不用對(duì)程序和數(shù)據(jù)的地址進(jìn)行修改。入時(shí)不用對(duì)程序和數(shù)據(jù)的地址進(jìn)行修改。缺點(diǎn):缺點(diǎn):絕對(duì)裝入方式只能將裝入模塊裝入到內(nèi)存絕對(duì)裝入方式只能將裝入模塊裝入到內(nèi)存中事先指定的位置。中事先指定的位置。只能用于單道程序環(huán)境。只能用于單道程序環(huán)境。 可重定位裝可重定位裝入方式,可將裝入方式,可將裝入模塊裝入到內(nèi)入模塊裝入到內(nèi)存中適當(dāng)?shù)奈恢茫嬷羞m當(dāng)?shù)奈恢茫虼丝捎糜诙嗟酪虼丝捎糜诙嗟莱绦颦h(huán)境。程序環(huán)境。 裝入裝入 重定位:重定位:在裝入內(nèi)存時(shí)對(duì)目標(biāo)程序中的指在裝入內(nèi)存時(shí)對(duì)目標(biāo)程序中的指令和數(shù)據(jù)地址的修改過(guò)程。令和數(shù)據(jù)地址的修改過(guò)程。 靜態(tài)重定位靜態(tài)重定位:地址變換只是在裝入時(shí)一次:地址變換只是在裝入時(shí)一
8、次完成,以后不再改變。完成,以后不再改變。 靜態(tài)重定位不允許程序在運(yùn)行中在內(nèi)存中移靜態(tài)重定位不允許程序在運(yùn)行中在內(nèi)存中移動(dòng)位置。動(dòng)位置。靜態(tài)重定位靜態(tài)重定位靜態(tài)重定位的主要缺點(diǎn):靜態(tài)重定位的主要缺點(diǎn):1、只能連續(xù)存儲(chǔ),在重定位后不能移動(dòng),不利于、只能連續(xù)存儲(chǔ),在重定位后不能移動(dòng),不利于內(nèi)存空間的有效利用。內(nèi)存空間的有效利用。2、各用戶進(jìn)程很難共享內(nèi)存中的同一程序的副本。、各用戶進(jìn)程很難共享內(nèi)存中的同一程序的副本。 動(dòng)態(tài)運(yùn)行時(shí)的裝入程序,在把裝入模塊動(dòng)態(tài)運(yùn)行時(shí)的裝入程序,在把裝入模塊裝入內(nèi)存后,并不馬上把相對(duì)地址轉(zhuǎn)換為絕裝入內(nèi)存后,并不馬上把相對(duì)地址轉(zhuǎn)換為絕對(duì)地址,而是在程序要真正執(zhí)行時(shí)才進(jìn)行地
9、對(duì)地址,而是在程序要真正執(zhí)行時(shí)才進(jìn)行地址轉(zhuǎn)換。址轉(zhuǎn)換。 在程序運(yùn)行過(guò)程中要訪問(wèn)數(shù)據(jù)時(shí)再進(jìn)行地址變換(即在程序運(yùn)行過(guò)程中要訪問(wèn)數(shù)據(jù)時(shí)再進(jìn)行地址變換(即在逐條指令執(zhí)行時(shí)完成地址映射。一般為了提高效率,此在逐條指令執(zhí)行時(shí)完成地址映射。一般為了提高效率,此工作由硬件地址映射機(jī)制來(lái)完成。)工作由硬件地址映射機(jī)制來(lái)完成。) 硬件支持,軟硬件結(jié)合完成硬件支持,軟硬件結(jié)合完成 硬件上需要一對(duì)寄存器的支持硬件上需要一對(duì)寄存器的支持基地址基地址14000重定位寄重定位寄存器存器內(nèi)存管理單元(內(nèi)存管理單元(memory-management unit):完成從邏輯地完成從邏輯地址到物理地址映射的硬件設(shè)備址到物理地址
10、映射的硬件設(shè)備一、靜態(tài)鏈接一、靜態(tài)鏈接 (Static Linking) 程序運(yùn)行前先將各目標(biāo)模塊及它們所程序運(yùn)行前先將各目標(biāo)模塊及它們所需的庫(kù)函數(shù),鏈接成一個(gè)完整的裝入模塊,需的庫(kù)函數(shù),鏈接成一個(gè)完整的裝入模塊,以后不再拆開(kāi)。這種事先進(jìn)行鏈接的方式,以后不再拆開(kāi)。這種事先進(jìn)行鏈接的方式,稱為稱為靜態(tài)鏈接方式靜態(tài)鏈接方式 。 CALL B CALLB;Return; CALLC; Return; Return; 模塊 C 模塊 B 模塊 A 模塊 C 模塊 B 模塊 A 模塊 B JSR“L+M” Return; M-1 0 0 L-1 0 0 N-1 模塊 A JSR“L” L+M M-1
11、L L-1 0 模塊 C Return; L+L+M+N-1L-11、對(duì)相對(duì)地址進(jìn)、對(duì)相對(duì)地址進(jìn)行修改行修改 2、變換外部調(diào)用、變換外部調(diào)用符號(hào)符號(hào)(B,C都屬于外都屬于外部調(diào)用號(hào)部調(diào)用號(hào)) 每個(gè)模塊中所每個(gè)模塊中所用的外部調(diào)用符號(hào)用的外部調(diào)用符號(hào),都變換為相對(duì)地址。都變換為相對(duì)地址。 經(jīng)編譯得到的目標(biāo)模塊,是在裝入內(nèi)經(jīng)編譯得到的目標(biāo)模塊,是在裝入內(nèi)存時(shí)邊裝入邊鏈接的。存時(shí)邊裝入邊鏈接的。 采用裝入時(shí)動(dòng)態(tài)鏈接方式把目標(biāo)模塊采用裝入時(shí)動(dòng)態(tài)鏈接方式把目標(biāo)模塊裝入內(nèi)存的同時(shí),對(duì)相對(duì)地址進(jìn)行修改。裝入內(nèi)存的同時(shí),對(duì)相對(duì)地址進(jìn)行修改。 優(yōu)點(diǎn):優(yōu)點(diǎn):1 1、便于軟件版本的修改和更新。、便于軟件版本的修改和
12、更新。2 2、便于實(shí)現(xiàn)目標(biāo)模塊共享。、便于實(shí)現(xiàn)目標(biāo)模塊共享。 該方式可將某些目標(biāo)模塊的鏈接,該方式可將某些目標(biāo)模塊的鏈接,推遲到執(zhí)行時(shí)進(jìn)行。推遲到執(zhí)行時(shí)進(jìn)行。 在執(zhí)行時(shí),如果發(fā)現(xiàn)有一個(gè)被調(diào)用在執(zhí)行時(shí),如果發(fā)現(xiàn)有一個(gè)被調(diào)用模塊不在內(nèi)存中,就由操作系統(tǒng)找到這模塊不在內(nèi)存中,就由操作系統(tǒng)找到這個(gè)模塊,把它裝入內(nèi)存,并鏈接到調(diào)用個(gè)模塊,把它裝入內(nèi)存,并鏈接到調(diào)用者模塊上。者模塊上。連續(xù)分配有兩種:連續(xù)分配有兩種: 1、單一連續(xù)分配方式單一連續(xù)分配方式 2 2、分區(qū)式分配方式,又可分為:、分區(qū)式分配方式,又可分為: 固定分區(qū)固定分區(qū) 動(dòng)態(tài)分區(qū)動(dòng)態(tài)分區(qū) 動(dòng)態(tài)重定位分區(qū)動(dòng)態(tài)重定位分區(qū) 采用單一連續(xù)存采用單一
13、連續(xù)存儲(chǔ)管理時(shí),內(nèi)存從概儲(chǔ)管理時(shí),內(nèi)存從概念上分為兩個(gè)連續(xù)區(qū):念上分為兩個(gè)連續(xù)區(qū): (1)系統(tǒng)區(qū)。)系統(tǒng)區(qū)。(2 2)用戶區(qū)。)用戶區(qū)。 作業(yè)實(shí)際 占用區(qū) OS 空閑區(qū) 用戶區(qū) 系統(tǒng)區(qū) 用戶程序用戶程序位于位于RAM中的中的操作系統(tǒng)操作系統(tǒng)0 xFFF.0位于位于RAM中的中的操作系統(tǒng)操作系統(tǒng)用戶程序用戶程序0ROM中的中的設(shè)備驅(qū)動(dòng)程序設(shè)備驅(qū)動(dòng)程序用戶程序用戶程序位于位于RAM中的中的操作系統(tǒng)操作系統(tǒng)0簡(jiǎn)單微機(jī)上通常使用的技術(shù):簡(jiǎn)單微機(jī)上通常使用的技術(shù):IBM-PCROM中的程序中的程序稱稱BIOS內(nèi)存空間安排內(nèi)存空間安排特點(diǎn):任一時(shí)刻內(nèi)存只有一道作業(yè),該任一時(shí)刻內(nèi)存只有一道作業(yè),該作業(yè)連續(xù)存
14、放于內(nèi)存中。作業(yè)連續(xù)存放于內(nèi)存中。操作系統(tǒng)操作系統(tǒng)用戶程序用戶程序0a aa+1a+1n n界地址寄存器界地址寄存器界限寄存器界限寄存器主存主存A Aa acpucputruetruefalsefalse地址地址A A終止程序運(yùn)行終止程序運(yùn)行越界檢查機(jī)構(gòu):用戶程序每訪問(wèn)一次主存,用戶程序每訪問(wèn)一次主存,越界檢查機(jī)構(gòu)將訪問(wèn)的地址與界限寄存器越界檢查機(jī)構(gòu)將訪問(wèn)的地址與界限寄存器中的值比較。若越界,則終止其執(zhí)行。中的值比較。若越界,則終止其執(zhí)行。內(nèi)存分配:內(nèi)存分配:主要優(yōu)點(diǎn)主要優(yōu)點(diǎn): : 管理簡(jiǎn)單,只需要較少的軟件和硬件支持,管理簡(jiǎn)單,只需要較少的軟件和硬件支持,便于用戶了解和使用。便于用戶了解和使
15、用。缺點(diǎn):缺點(diǎn):(1)若正在執(zhí)行的程序等待某個(gè)事件,這時(shí)處理器就會(huì)于處)若正在執(zhí)行的程序等待某個(gè)事件,這時(shí)處理器就會(huì)于處于空閑狀態(tài),使處理器利用率不高。于空閑狀態(tài),使處理器利用率不高。(2)由于可以進(jìn)入系統(tǒng)運(yùn)行的大多數(shù)用戶作業(yè)尺寸都不可能)由于可以進(jìn)入系統(tǒng)運(yùn)行的大多數(shù)用戶作業(yè)尺寸都不可能正好與整個(gè)內(nèi)存用戶作業(yè)區(qū)一致,因此造成主存空間的浪費(fèi)。正好與整個(gè)內(nèi)存用戶作業(yè)區(qū)一致,因此造成主存空間的浪費(fèi)。(3)計(jì)算機(jī)外圍設(shè)備均被單個(gè)用戶所占用。因此利用率不高。)計(jì)算機(jī)外圍設(shè)備均被單個(gè)用戶所占用。因此利用率不高。程序和數(shù)據(jù)不可能被共享。程序和數(shù)據(jù)不可能被共享。 固定分區(qū)式分配就是把內(nèi)存空間分為若干固定分區(qū)式
16、分配就是把內(nèi)存空間分為若干個(gè)固定大小的區(qū)域。每一個(gè)作業(yè)占據(jù)一個(gè)連續(xù)個(gè)固定大小的區(qū)域。每一個(gè)作業(yè)占據(jù)一個(gè)連續(xù)的分區(qū)。的分區(qū)。特點(diǎn):任一時(shí)刻內(nèi)存可有多道作業(yè),每道作業(yè)任一時(shí)刻內(nèi)存可有多道作業(yè),每道作業(yè)連續(xù)存放于內(nèi)存連續(xù)存放于內(nèi)存. .存儲(chǔ)分配:如果有一個(gè)空閑區(qū),則分配給進(jìn)程;存儲(chǔ)分配:如果有一個(gè)空閑區(qū),則分配給進(jìn)程;當(dāng)進(jìn)程終止時(shí),其分區(qū)可以被其他進(jìn)程使用。當(dāng)進(jìn)程終止時(shí),其分區(qū)可以被其他進(jìn)程使用。最早為最早為IBM/360所所使用,稱為使用,稱為MFT。l分區(qū)大小相等分區(qū)大小相等l分區(qū)大小不相等分區(qū)大小不相等 分區(qū)一旦劃分結(jié)束,在整個(gè)執(zhí)行分區(qū)一旦劃分結(jié)束,在整個(gè)執(zhí)行過(guò)程中每個(gè)分區(qū)的長(zhǎng)度和內(nèi)存的總分過(guò)
17、程中每個(gè)分區(qū)的長(zhǎng)度和內(nèi)存的總分區(qū)個(gè)數(shù)將保持不變。區(qū)個(gè)數(shù)將保持不變。分區(qū)分區(qū)4分區(qū)分區(qū)3分區(qū)分區(qū)2分區(qū)分區(qū)1操作系統(tǒng)操作系統(tǒng)多個(gè)等待隊(duì)列多個(gè)等待隊(duì)列單個(gè)等待隊(duì)列單個(gè)等待隊(duì)列分區(qū)分區(qū)4分區(qū)分區(qū)3分區(qū)分區(qū)2分區(qū)分區(qū)1操作系統(tǒng)操作系統(tǒng)固定分區(qū)中的存儲(chǔ)器分配固定分區(qū)中的存儲(chǔ)器分配分區(qū)分區(qū)號(hào)號(hào)大小大小( K )起址起址( K )狀態(tài)狀態(tài)11220已分配已分配23232已分配已分配36464已分配已分配4128128已分配已分配操作系統(tǒng)操作系統(tǒng)作業(yè)作業(yè)A作業(yè)作業(yè)B作業(yè)作業(yè)C作業(yè)作業(yè)D20K32K64K128K256K 采用固定分區(qū)時(shí),把一個(gè)分區(qū)分配給某作業(yè)后,采用固定分區(qū)時(shí),把一個(gè)分區(qū)分配給某作業(yè)后,該作業(yè)
18、就在此區(qū)域里運(yùn)行、工作,直至完成。該作業(yè)就在此區(qū)域里運(yùn)行、工作,直至完成。 有沒(méi)有采用重定位?有沒(méi)有采用重定位? 作業(yè)在裝入時(shí)必須進(jìn)行地址變換,因此固定分作業(yè)在裝入時(shí)必須進(jìn)行地址變換,因此固定分區(qū)方法實(shí)行的是區(qū)方法實(shí)行的是“靜態(tài)重定位靜態(tài)重定位”。 1.上下界寄存器和地址檢查機(jī)構(gòu)。當(dāng)當(dāng)作業(yè)被調(diào)度運(yùn)行時(shí),作業(yè)在內(nèi)存中的上下作業(yè)被調(diào)度運(yùn)行時(shí),作業(yè)在內(nèi)存中的上下界地址送上下界寄存器,每次內(nèi)存訪問(wèn)時(shí),界地址送上下界寄存器,每次內(nèi)存訪問(wèn)時(shí),地址檢查機(jī)構(gòu)作越界檢查。地址檢查機(jī)構(gòu)作越界檢查。CPUCPU主存主存下界寄存器下界寄存器上界寄存器上界寄存器 TrueTrueTrueTrue地址地址A Afalse
19、 false false false程序性中斷程序性中斷地址訪問(wèn)保護(hù)有兩種方式:地址訪問(wèn)保護(hù)有兩種方式: 2. 2.基址寄存器、長(zhǎng)度寄存器和動(dòng)態(tài)地基址寄存器、長(zhǎng)度寄存器和動(dòng)態(tài)地址轉(zhuǎn)換機(jī)構(gòu)。址轉(zhuǎn)換機(jī)構(gòu)。當(dāng)作業(yè)被調(diào)度運(yùn)行時(shí),將作當(dāng)作業(yè)被調(diào)度運(yùn)行時(shí),將作業(yè)所占內(nèi)存基址及長(zhǎng)度送基址、長(zhǎng)度寄存業(yè)所占內(nèi)存基址及長(zhǎng)度送基址、長(zhǎng)度寄存器,每次內(nèi)存訪問(wèn)時(shí),先看訪問(wèn)地址是否器,每次內(nèi)存訪問(wèn)時(shí),先看訪問(wèn)地址是否小于長(zhǎng)度,然后小于長(zhǎng)度,然后+ +基址進(jìn)行訪存。基址進(jìn)行訪存。CPUCPU主存主存基地址寄存器基地址寄存器長(zhǎng)度寄存器長(zhǎng)度寄存器 size,從分區(qū)中劃出,從分區(qū)中劃出u.size給請(qǐng)求給請(qǐng)求者,其余的留在空閑分
20、區(qū)鏈或空閑分區(qū)表中;者,其余的留在空閑分區(qū)鏈或空閑分區(qū)表中;將分配區(qū)的首址返回給調(diào)用者。將分配區(qū)的首址返回給調(diào)用者。 (1)回收區(qū)與插入點(diǎn)的前一個(gè)分區(qū)相鄰接)回收區(qū)與插入點(diǎn)的前一個(gè)分區(qū)相鄰接F1回收區(qū)F序號(hào)序號(hào)分區(qū)大小分區(qū)大小分區(qū)始址分區(qū)始址狀態(tài)狀態(tài)iF1.size addr1可用可用addr1F1序號(hào)序號(hào)分區(qū)大小分區(qū)大小分區(qū)始址分區(qū)始址狀態(tài)狀態(tài)iF.size+F1.sizeaddr1可用可用(2)回收區(qū)與插入點(diǎn)的后一分區(qū))回收區(qū)與插入點(diǎn)的后一分區(qū)F2相鄰接相鄰接 回收區(qū)回收區(qū)F F2序號(hào)序號(hào)分區(qū)大小分區(qū)大小分區(qū)始址分區(qū)始址狀態(tài)狀態(tài)iF2.sizeaddr2可用可用addraddr2F序號(hào)序號(hào)
21、分區(qū)大分區(qū)大小小分區(qū)始址分區(qū)始址狀態(tài)狀態(tài)i F.size+F2.sizeaddr 可用可用(3)回收區(qū)同時(shí)與插入點(diǎn)的前、后兩個(gè)分區(qū)鄰)回收區(qū)同時(shí)與插入點(diǎn)的前、后兩個(gè)分區(qū)鄰接接F1回收區(qū)回收區(qū)F序號(hào)序號(hào)分區(qū)大小分區(qū)大小分區(qū)始址分區(qū)始址狀態(tài)狀態(tài)iF1.sizeadd1可用可用i+1F2.sizeadd2可用可用F2add1add2F1序號(hào)序號(hào)分區(qū)大小分區(qū)大小分區(qū)始址分區(qū)始址狀態(tài)狀態(tài)iF1.size+F+F2.sizeadd1可用可用(4)回收區(qū)既不與)回收區(qū)既不與F1鄰接,也不與鄰接,也不與F2鄰接。鄰接。回收區(qū)回收區(qū)F序號(hào)序號(hào)分區(qū)大小分區(qū)大小分區(qū)始址分區(qū)始址狀態(tài)狀態(tài)addr F序號(hào)序號(hào)分區(qū)大小分
22、區(qū)大小分區(qū)始址分區(qū)始址狀態(tài)狀態(tài)i F.size addr可用可用addr分區(qū)回收算法:分區(qū)回收算法:(補(bǔ)充)補(bǔ)充)回收分區(qū)回收分區(qū)R,首址為首址為baddrF上鄰一個(gè)空白區(qū)上鄰一個(gè)空白區(qū)f1?將將f 放入自由主存隊(duì)列放入自由主存隊(duì)列從自由主存隊(duì)列中摘下從自由主存隊(duì)列中摘下f1NYYN合并釋放分區(qū)合并釋放分區(qū)f和空白分區(qū)和空白分區(qū)f1成為一個(gè)大的空白區(qū)成為一個(gè)大的空白區(qū)fF下鄰一個(gè)空白區(qū)下鄰一個(gè)空白區(qū)f2?從自由主存隊(duì)列中摘下從自由主存隊(duì)列中摘下f2合并釋放分區(qū)合并釋放分區(qū)f和空白分區(qū)和空白分區(qū)f2成為一個(gè)大的空白區(qū)成為一個(gè)大的空白區(qū)f返回返回4.3.4 伙伴系統(tǒng)伙伴系統(tǒng) 在一個(gè)伙伴系統(tǒng)中,內(nèi)存
23、分區(qū)的大小為在一個(gè)伙伴系統(tǒng)中,內(nèi)存分區(qū)的大小為2K,LKM,其中:其中: 2L=分配的最小分區(qū)的尺寸分配的最小分區(qū)的尺寸 2M=分配的最大分區(qū)的尺寸分配的最大分區(qū)的尺寸比較有吸引力的折比較有吸引力的折中方案中方案 設(shè)最初的分區(qū)大小為設(shè)最初的分區(qū)大小為1MB,第一個(gè)請(qǐng)求,第一個(gè)請(qǐng)求A為為100KB,下,下一個(gè)請(qǐng)求一個(gè)請(qǐng)求B需要需要256KB,C請(qǐng)求請(qǐng)求64KB,D請(qǐng)求請(qǐng)求256KB,B釋放,釋放,A釋放,釋放,E請(qǐng)求請(qǐng)求75KB, C釋放,釋放,E釋放,釋放, D釋放。釋放。1MB512KB256KB128KBA=128KB64KBB=256KBC=64KBD=256KBB釋放釋放1MB512K
24、B256KB128KBA=128KB64KBC=64KBD=256KB 設(shè)最初的分區(qū)大小為設(shè)最初的分區(qū)大小為1KB,第一個(gè)請(qǐng)求,第一個(gè)請(qǐng)求A為為100KB,下一個(gè),下一個(gè)請(qǐng)求請(qǐng)求B需要需要256KB,C請(qǐng)求請(qǐng)求64KB,D請(qǐng)求請(qǐng)求256KB,B釋放,釋放,A釋釋放,放,E請(qǐng)求請(qǐng)求75KB, C釋放,釋放,E釋放,釋放, D釋放。釋放。A釋放釋放1MB512KB256KB128KB64KBC=64KBD=256KB 設(shè)最初的分區(qū)大小為設(shè)最初的分區(qū)大小為1KB,第一個(gè)請(qǐng)求,第一個(gè)請(qǐng)求A為為100KB,下一個(gè),下一個(gè)請(qǐng)求請(qǐng)求B需要需要256KB,C請(qǐng)求請(qǐng)求64KB,D請(qǐng)求請(qǐng)求256KB,B釋放,釋放
25、,A釋釋放,放,E請(qǐng)求請(qǐng)求75KB, C釋放,釋放,E釋放,釋放, D釋放。釋放。E請(qǐng)求請(qǐng)求75KB1MB512KB256KB128KB64KBC=64KBD=256KBE=75KB 設(shè)最初的分區(qū)大小為設(shè)最初的分區(qū)大小為1KB,第一個(gè)請(qǐng)求,第一個(gè)請(qǐng)求A為為100KB,下一個(gè),下一個(gè)請(qǐng)求請(qǐng)求B需要需要256KB,C請(qǐng)求請(qǐng)求64KB,D請(qǐng)求請(qǐng)求256KB,B釋放,釋放,A釋釋放,放,E請(qǐng)求請(qǐng)求75KB, C釋放,釋放,E釋放,釋放, D釋放。釋放。C釋放釋放1MB512KB256KB128KB64KBD=256KB64KBE=75KB 設(shè)最初的分區(qū)大小為設(shè)最初的分區(qū)大小為1KB,第一個(gè)請(qǐng)求,第一個(gè)
26、請(qǐng)求A為為100KB,下一個(gè),下一個(gè)請(qǐng)求請(qǐng)求B需要需要256KB,C請(qǐng)求請(qǐng)求64KB,D請(qǐng)求請(qǐng)求256KB,B釋放,釋放,A釋釋放,放,E請(qǐng)求請(qǐng)求75KB, C釋放,釋放,E釋放,釋放, D釋放。釋放。C釋放釋放1MB512KB256KB128KBD=256KBE=75KB 設(shè)最初的分區(qū)大小為設(shè)最初的分區(qū)大小為1KB,第一個(gè)請(qǐng)求,第一個(gè)請(qǐng)求A為為100KB,下一個(gè),下一個(gè)請(qǐng)求請(qǐng)求B需要需要256KB,C請(qǐng)求請(qǐng)求64KB,D請(qǐng)求請(qǐng)求256KB,B釋放,釋放,A釋釋放,放,E請(qǐng)求請(qǐng)求75KB, C釋放,釋放,E釋放,釋放, D釋放。釋放。E釋放釋放1MB512KB256KB128KBD=256KB
27、 設(shè)最初的分區(qū)大小為設(shè)最初的分區(qū)大小為1KB,第一個(gè)請(qǐng)求,第一個(gè)請(qǐng)求A為為100KB,下一個(gè),下一個(gè)請(qǐng)求請(qǐng)求B需要需要256KB,C請(qǐng)求請(qǐng)求64KB,D請(qǐng)求請(qǐng)求256KB,B釋放,釋放,A釋釋放,放,E請(qǐng)求請(qǐng)求75KB, C釋放,釋放,E釋放,釋放, D釋放。釋放。E釋放釋放1MB512KB256KBD=256KB 設(shè)最初的分區(qū)大小為設(shè)最初的分區(qū)大小為1KB,第一個(gè)請(qǐng)求,第一個(gè)請(qǐng)求A為為100KB,下一個(gè),下一個(gè)請(qǐng)求請(qǐng)求B需要需要256KB,C請(qǐng)求請(qǐng)求64KB,D請(qǐng)求請(qǐng)求256KB,B釋放,釋放,A釋釋放,放,E請(qǐng)求請(qǐng)求75KB, C釋放,釋放,E釋放,釋放, D釋放。釋放。E釋放釋放1MB5
28、12KBD=256KBD釋放。釋放。1MB512KBD釋放。釋放。1MB512KB1MB 請(qǐng)求的大小為請(qǐng)求的大小為n (1)開(kāi)始時(shí),整個(gè)空間被看作是一個(gè)大小為)開(kāi)始時(shí),整個(gè)空間被看作是一個(gè)大小為2M的塊。若的塊。若2m-1 n 2m,則分配整個(gè)空間,停止。則分配整個(gè)空間,停止。 (2)否則,這個(gè)塊被分成兩個(gè)大小相等的伙伴,)否則,這個(gè)塊被分成兩個(gè)大小相等的伙伴,大小為大小為2m-1 。 若若2m-2 n 2m-1,則給該請(qǐng)求分配兩個(gè)伙伴中,則給該請(qǐng)求分配兩個(gè)伙伴中的任何一個(gè);否則,一個(gè)伙伴又被分成兩半。的任何一個(gè);否則,一個(gè)伙伴又被分成兩半。 這個(gè)過(guò)程一直繼續(xù)到產(chǎn)生的最小塊大于或等于這個(gè)過(guò)程一
29、直繼續(xù)到產(chǎn)生的最小塊大于或等于n,并分配給該進(jìn)程。,并分配給該進(jìn)程。 跟一次分配可能要進(jìn)行多次分割一樣,一次回跟一次分配可能要進(jìn)行多次分割一樣,一次回收也可能要進(jìn)行多次合并。收也可能要進(jìn)行多次合并。4.3.4 伙伴系統(tǒng)伙伴系統(tǒng)(續(xù)續(xù)) 建立哈希函數(shù),構(gòu)造一張以空閑分區(qū)大小為關(guān)建立哈希函數(shù),構(gòu)造一張以空閑分區(qū)大小為關(guān)鍵字的哈希表,該表的每一表項(xiàng)記錄了一個(gè)對(duì)應(yīng)的鍵字的哈希表,該表的每一表項(xiàng)記錄了一個(gè)對(duì)應(yīng)的空閑分區(qū)鏈表表頭指針。空閑分區(qū)鏈表表頭指針。 4.2.5 哈希算法哈希算法所需空閑所需空閑分區(qū)大小分區(qū)大小哈希函數(shù)計(jì)算哈希函數(shù)計(jì)算在哈希表在哈希表中的位置中的位置相應(yīng)的空閑相應(yīng)的空閑分區(qū)鏈表分區(qū)鏈
30、表作業(yè)作業(yè)2空閑區(qū)空閑區(qū)14K作業(yè)作業(yè)4作業(yè)作業(yè)3空閑區(qū)空閑區(qū)8K作業(yè)作業(yè)1OS 假若一個(gè)作業(yè)要求有假若一個(gè)作業(yè)要求有20k字節(jié)的分區(qū),此時(shí)雖然字節(jié)的分區(qū),此時(shí)雖然有總數(shù)為有總數(shù)為22k字節(jié)的空白區(qū),字節(jié)的空白區(qū),但因不連續(xù)而不能分配。但因不連續(xù)而不能分配。 “零頭零頭”或或“碎片碎片” 4.3.6 動(dòng)態(tài)重定位分區(qū)分配動(dòng)態(tài)重定位分區(qū)分配(可重定位分區(qū))(可重定位分區(qū))作業(yè)作業(yè)2作業(yè)作業(yè)4作業(yè)作業(yè)3空閑區(qū)空閑區(qū)22K作業(yè)作業(yè)1OS作業(yè)作業(yè)2空閑區(qū)空閑區(qū)14K作業(yè)作業(yè)4作業(yè)作業(yè)3空閑區(qū)空閑區(qū)8K作業(yè)作業(yè)1OS“拼接拼接”或或“緊緊湊湊”存儲(chǔ)器存儲(chǔ)器“打飽打飽嗝嗝”一、緊湊一、緊湊 這種通過(guò)移動(dòng)內(nèi)存
31、中作業(yè)的位置,以把原來(lái)這種通過(guò)移動(dòng)內(nèi)存中作業(yè)的位置,以把原來(lái)分散的多個(gè)小分區(qū)拼接成一個(gè)大分區(qū)的方法,稱分散的多個(gè)小分區(qū)拼接成一個(gè)大分區(qū)的方法,稱為為“拼接拼接”或或“緊湊緊湊”。 由于程序在存儲(chǔ)空間中移動(dòng)所進(jìn)行的由于程序在存儲(chǔ)空間中移動(dòng)所進(jìn)行的與位置有關(guān)的地址調(diào)整過(guò)程,也稱為重定與位置有關(guān)的地址調(diào)整過(guò)程,也稱為重定位或者叫位或者叫“浮動(dòng)浮動(dòng)”。動(dòng)態(tài)重定位動(dòng)態(tài)重定位硬件支持:重定位寄存器、加法器等硬件支持:重定位寄存器、加法器等 只要用該程序在內(nèi)存的新起始地址,去置換原來(lái)的起始只要用該程序在內(nèi)存的新起始地址,去置換原來(lái)的起始地址就可以了。地址就可以了。 當(dāng)系統(tǒng)對(duì)內(nèi)存進(jìn)行了當(dāng)系統(tǒng)對(duì)內(nèi)存進(jìn)行了“緊湊
32、緊湊”,需要修,需要修改程序嗎?改程序嗎?2、動(dòng)態(tài)重定位、動(dòng)態(tài)重定位 0LOAD 1,2500100365250050002500相對(duì)地址相對(duì)地址10000重定位寄存器重定位寄存器+10000LOAD 1,250010100365125005000作業(yè)作業(yè)J主存主存單處理器系統(tǒng)中需幾個(gè)重定位寄存器?單處理器系統(tǒng)中需幾個(gè)重定位寄存器? 三、動(dòng)態(tài)重定位分區(qū)分配算法三、動(dòng)態(tài)重定位分區(qū)分配算法 實(shí)現(xiàn)動(dòng)態(tài)重定位分區(qū)分配算法和動(dòng)態(tài)分實(shí)現(xiàn)動(dòng)態(tài)重定位分區(qū)分配算法和動(dòng)態(tài)分區(qū)基本上相同。區(qū)基本上相同。何時(shí)進(jìn)行拼接:何時(shí)進(jìn)行拼接: 1、在某個(gè)分區(qū)被回收后,如果它不與空白區(qū)鄰、在某個(gè)分區(qū)被回收后,如果它不與空白區(qū)鄰接
33、,則立即進(jìn)行拼接。接,則立即進(jìn)行拼接。 2、在為作業(yè)分配而找不到足夠大的空白區(qū)再進(jìn)、在為作業(yè)分配而找不到足夠大的空白區(qū)再進(jìn)行拼接。行拼接。 增加了增加了“緊湊緊湊”功功能能 請(qǐng)求分配請(qǐng)求分配 u.size分區(qū)分區(qū) 檢索空閑分區(qū)鏈檢索空閑分區(qū)鏈(表表) 無(wú)法分配無(wú)法分配 空閑分區(qū)總空閑分區(qū)總否否 找到大于找到大于 u.size 返回返回 和和u.size 的可用區(qū)否的可用區(qū)否 進(jìn)行緊湊形成進(jìn)行緊湊形成 按動(dòng)態(tài)分區(qū)方式按動(dòng)態(tài)分區(qū)方式 連續(xù)空閑區(qū)連續(xù)空閑區(qū) 進(jìn)行分配進(jìn)行分配 修改有關(guān)的修改有關(guān)的 修改有關(guān)的修改有關(guān)的 返回分區(qū)號(hào)返回分區(qū)號(hào) 數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu) 數(shù)據(jù)數(shù)據(jù)結(jié)構(gòu)結(jié)構(gòu) 及首址及首址 是是否否
34、是是 請(qǐng)大家注意,無(wú)論有沒(méi)請(qǐng)大家注意,無(wú)論有沒(méi)有拼接,最后都是按動(dòng)態(tài)分有拼接,最后都是按動(dòng)態(tài)分區(qū)方式進(jìn)行分配的區(qū)方式進(jìn)行分配的。 固定分區(qū):固定分區(qū): 動(dòng)態(tài)分區(qū):動(dòng)態(tài)分區(qū): 動(dòng)態(tài)重定位分區(qū):動(dòng)態(tài)重定位分區(qū):分區(qū)分配方式分區(qū)分配方式 把內(nèi)存空間分為若干個(gè)固定把內(nèi)存空間分為若干個(gè)固定大小的區(qū)域,每個(gè)作業(yè)占據(jù)一個(gè)大小的區(qū)域,每個(gè)作業(yè)占據(jù)一個(gè)連續(xù)的分區(qū)。連續(xù)的分區(qū)。 根據(jù)進(jìn)程的實(shí)際需要,動(dòng)態(tài)根據(jù)進(jìn)程的實(shí)際需要,動(dòng)態(tài)地為之分配連續(xù)的內(nèi)存空間。地為之分配連續(xù)的內(nèi)存空間。 采用采用“緊湊緊湊”技術(shù),使技術(shù),使若干程序從內(nèi)存的某處移至若干程序從內(nèi)存的某處移至另一處時(shí),地址變換過(guò)程是另一處時(shí),地址變換過(guò)程是在程
35、序執(zhí)行期間,隨著對(duì)每在程序執(zhí)行期間,隨著對(duì)每條指令和數(shù)據(jù)的訪問(wèn)而自動(dòng)條指令和數(shù)據(jù)的訪問(wèn)而自動(dòng)進(jìn)行的。進(jìn)行的。優(yōu)點(diǎn):優(yōu)點(diǎn): (1)實(shí)現(xiàn)了內(nèi)存的共享,因而有助于多道程序設(shè)計(jì),提高了系)實(shí)現(xiàn)了內(nèi)存的共享,因而有助于多道程序設(shè)計(jì),提高了系統(tǒng)的資源利用率。統(tǒng)的資源利用率。(2)該方法要求的硬件支持少,管理算法簡(jiǎn)單,實(shí)現(xiàn)容易。)該方法要求的硬件支持少,管理算法簡(jiǎn)單,實(shí)現(xiàn)容易。(3)實(shí)現(xiàn)信息保護(hù)的手段比較簡(jiǎn)單。)實(shí)現(xiàn)信息保護(hù)的手段比較簡(jiǎn)單。缺點(diǎn):缺點(diǎn): (1)內(nèi)存利用率仍然不高,除了動(dòng)態(tài)重定位分區(qū)方式以外,)內(nèi)存利用率仍然不高,除了動(dòng)態(tài)重定位分區(qū)方式以外,都存在著嚴(yán)重的零頭問(wèn)題。跟單一連續(xù)區(qū)分配一樣,要求作
36、業(yè)都存在著嚴(yán)重的零頭問(wèn)題。跟單一連續(xù)區(qū)分配一樣,要求作業(yè)執(zhí)行前全部裝入內(nèi)存,在內(nèi)儲(chǔ)器中可能包含有從未使用過(guò)的信執(zhí)行前全部裝入內(nèi)存,在內(nèi)儲(chǔ)器中可能包含有從未使用過(guò)的信息。息。 (2)采用拼接技術(shù),雖然解決了零頭問(wèn)題,但有時(shí)需要移動(dòng))采用拼接技術(shù),雖然解決了零頭問(wèn)題,但有時(shí)需要移動(dòng)大量的信息,從而損失了處理機(jī)時(shí)間。大量的信息,從而損失了處理機(jī)時(shí)間。 (3 3)不能實(shí)現(xiàn)對(duì)主存的)不能實(shí)現(xiàn)對(duì)主存的“擴(kuò)充擴(kuò)充”,不能為用戶提供一個(gè)比存,不能為用戶提供一個(gè)比存儲(chǔ)空間大的地址空間,作業(yè)的大小受到主存可用空間的限制。儲(chǔ)空間大的地址空間,作業(yè)的大小受到主存可用空間的限制。 如何使小容量的內(nèi)存能如何使小容量的內(nèi)存
37、能適應(yīng)大作業(yè)的需求?適應(yīng)大作業(yè)的需求? “對(duì)換對(duì)換”是指把內(nèi)存中暫不能運(yùn)行的進(jìn)程,或暫時(shí)是指把內(nèi)存中暫不能運(yùn)行的進(jìn)程,或暫時(shí)不用的程序和數(shù)據(jù),換出到外存上,以騰出足夠的內(nèi)不用的程序和數(shù)據(jù),換出到外存上,以騰出足夠的內(nèi)存空間,把已具備運(yùn)行條件的進(jìn)程,或進(jìn)程所需要的存空間,把已具備運(yùn)行條件的進(jìn)程,或進(jìn)程所需要的程序和數(shù)據(jù),換入內(nèi)存。程序和數(shù)據(jù),換入內(nèi)存。 目的:目的:提高內(nèi)存利用率提高內(nèi)存利用率 多用于分多用于分時(shí)系統(tǒng)中時(shí)系統(tǒng)中 以整個(gè)進(jìn)程為單位。以整個(gè)進(jìn)程為單位。 用于解決內(nèi)存用于解決內(nèi)存緊張問(wèn)題,進(jìn)緊張問(wèn)題,進(jìn)一步提高內(nèi)存的利用率。一步提高內(nèi)存的利用率。 以以“頁(yè)頁(yè)”或或“段段”為單位。為單位
38、。 是實(shí)現(xiàn)請(qǐng)求分頁(yè)及請(qǐng)求分是實(shí)現(xiàn)請(qǐng)求分頁(yè)及請(qǐng)求分段式存儲(chǔ)器的基礎(chǔ),目的是為段式存儲(chǔ)器的基礎(chǔ),目的是為了支持虛擬存儲(chǔ)系統(tǒng)。了支持虛擬存儲(chǔ)系統(tǒng)。對(duì)對(duì) 換換整體對(duì)換或整體對(duì)換或進(jìn)程對(duì)換進(jìn)程對(duì)換頁(yè)面對(duì)換或頁(yè)面對(duì)換或分段對(duì)換分段對(duì)換 具有對(duì)換功能的具有對(duì)換功能的OS中,外存分為文件中,外存分為文件區(qū)和對(duì)換區(qū)。區(qū)和對(duì)換區(qū)。 文件區(qū):存放文件文件區(qū):存放文件 對(duì)換區(qū):存放從內(nèi)存換出的進(jìn)程對(duì)換區(qū):存放從內(nèi)存換出的進(jìn)程交換區(qū)中的空閑盤(pán)塊采用空閑交換區(qū)中的空閑盤(pán)塊采用空閑分區(qū)表或空閑分區(qū)鏈進(jìn)行管理分區(qū)表或空閑分區(qū)鏈進(jìn)行管理 對(duì)換區(qū)空間的對(duì)換區(qū)空間的分配與回收,與動(dòng)分配與回收,與動(dòng)態(tài)分區(qū)雷同。態(tài)分區(qū)雷同。內(nèi)核里的對(duì)
39、換程序內(nèi)核里的對(duì)換程序或喚醒程序或喚醒程序內(nèi)存內(nèi)存 對(duì)換對(duì)換區(qū)區(qū)(1 1)優(yōu)先級(jí)低的阻塞進(jìn)程)優(yōu)先級(jí)低的阻塞進(jìn)程(2 2)優(yōu)先級(jí)低的就緒進(jìn)程)優(yōu)先級(jí)低的就緒進(jìn)程 1 1、選出被換出的進(jìn)程、選出被換出的進(jìn)程 換出過(guò)程:換出過(guò)程:駐留時(shí)間駐留時(shí)間 2、換出進(jìn)程、換出進(jìn)程 換出程序(進(jìn)程),只能換出那些非換出程序(進(jìn)程),只能換出那些非共享的共享的程序和數(shù)據(jù)段程序和數(shù)據(jù)段。每個(gè)段的引用計(jì)數(shù)每個(gè)段的引用計(jì)數(shù) 是否把整個(gè)進(jìn)程都換出?是否把整個(gè)進(jìn)程都換出?換出進(jìn)程時(shí),相應(yīng)的進(jìn)程控制塊仍舊在內(nèi)存。換出進(jìn)程時(shí),相應(yīng)的進(jìn)程控制塊仍舊在內(nèi)存。共享的程序段或數(shù)據(jù)段也不能被換出。共享的程序段或數(shù)據(jù)段也不能被換出。 P
40、CB的狀態(tài)變不變?的狀態(tài)變不變? 選出狀態(tài)為選出狀態(tài)為“就緒且換出就緒且換出”并且換出并且換出時(shí)間最久的進(jìn)程作為換入進(jìn)程,并為它時(shí)間最久的進(jìn)程作為換入進(jìn)程,并為它申請(qǐng)內(nèi)申請(qǐng)內(nèi)存。存。 (1)申請(qǐng)成功)申請(qǐng)成功 (2)申請(qǐng)失敗)申請(qǐng)失敗 引進(jìn)了離散引進(jìn)了離散分配方式分配方式 不連續(xù)分配?不連續(xù)分配?連續(xù)存儲(chǔ)管理連續(xù)存儲(chǔ)管理 根據(jù)離散分配時(shí)所用基本單位的不根據(jù)離散分配時(shí)所用基本單位的不同,又可把離散方式分為以下三種:同,又可把離散方式分為以下三種:1 1、分頁(yè)存儲(chǔ)管理。、分頁(yè)存儲(chǔ)管理。2、分段存儲(chǔ)管理。、分段存儲(chǔ)管理。3、段頁(yè)式存儲(chǔ)管理。、段頁(yè)式存儲(chǔ)管理。 用戶作業(yè)的地址用戶作業(yè)的地址空間分為若干
41、頁(yè)。空間分為若干頁(yè)。 內(nèi)存空間分成與頁(yè)內(nèi)存空間分成與頁(yè)相同大小的物理塊。相同大小的物理塊。 用戶程序用戶程序 n 頁(yè)頁(yè) 4 頁(yè)頁(yè) 3 頁(yè)頁(yè) 2 頁(yè)頁(yè) 1 頁(yè)頁(yè) 0 頁(yè)頁(yè) 內(nèi)存內(nèi)存 4 3 2 1 0 m .01234560123456作業(yè)的作業(yè)的地址空間地址空間頁(yè)框頁(yè)框(物理塊)(物理塊)頁(yè)頁(yè)號(hào)號(hào)頁(yè)頁(yè)表表主存中頁(yè)框主存中頁(yè)框(物理塊)(物理塊). 機(jī)器的地址結(jié)構(gòu)決定頁(yè)面的大小,也就是機(jī)器的地址結(jié)構(gòu)決定頁(yè)面的大小,也就是說(shuō)頁(yè)面大小由硬件決定。說(shuō)頁(yè)面大小由硬件決定。 頁(yè)面的大小應(yīng)適中,通常是頁(yè)面的大小應(yīng)適中,通常是2的冪。的冪。 作業(yè)的地址結(jié)構(gòu)就由兩部分組成,前一作業(yè)的地址結(jié)構(gòu)就由兩部分組成,前一
42、部分為頁(yè)號(hào)部分為頁(yè)號(hào)P,后一部分位移量,也就是頁(yè)內(nèi),后一部分位移量,也就是頁(yè)內(nèi)地址地址 。2. 地址結(jié)構(gòu):地址結(jié)構(gòu): 頁(yè)號(hào)頁(yè)號(hào)P 位移量位移量W 31 12 110每頁(yè)的大小為每頁(yè)的大小為212=4KB頁(yè)頁(yè)地址空間最多允許有地址空間最多允許有220=1MB頁(yè)頁(yè) 假定邏輯地址空間中的地址為假定邏輯地址空間中的地址為A,頁(yè)面的,頁(yè)面的大小為大小為L(zhǎng),則,則: : 頁(yè)號(hào)頁(yè)號(hào)P=INTA/L 頁(yè)內(nèi)地址頁(yè)內(nèi)地址Wd=A MOD L 頁(yè)表的作用是實(shí)現(xiàn)從頁(yè)號(hào)到物理塊頁(yè)表的作用是實(shí)現(xiàn)從頁(yè)號(hào)到物理塊號(hào)的地址映射。號(hào)的地址映射。 內(nèi)存內(nèi)存 塊號(hào)塊號(hào) 頁(yè)號(hào)頁(yè)號(hào) 用戶程序用戶程序 5 0 n 頁(yè)頁(yè) 4 頁(yè)頁(yè) 3 頁(yè)頁(yè)
43、 2 頁(yè)頁(yè) 1 頁(yè)頁(yè) 0 頁(yè)頁(yè) 2 1 3 2 6 3 8 4 3 2 1 0 6 頁(yè)表頁(yè)表設(shè)置一存取控制字段設(shè)置一存取控制字段基本任務(wù):基本任務(wù): 實(shí)現(xiàn)從邏輯地址到物實(shí)現(xiàn)從邏輯地址到物理地址的轉(zhuǎn)換理地址的轉(zhuǎn)換頁(yè)內(nèi)地址與物理塊內(nèi)頁(yè)內(nèi)地址與物理塊內(nèi)的相應(yīng)地址一一對(duì)應(yīng)的相應(yīng)地址一一對(duì)應(yīng) 邏輯地址中的頁(yè)號(hào)轉(zhuǎn)換為內(nèi)存中的物理塊號(hào)邏輯地址中的頁(yè)號(hào)轉(zhuǎn)換為內(nèi)存中的物理塊號(hào) 頁(yè)表頁(yè)表采用重定位?采用重定位? 在分頁(yè)存儲(chǔ)管理中,是采用動(dòng)態(tài)重定位技術(shù)。在分頁(yè)存儲(chǔ)管理中,是采用動(dòng)態(tài)重定位技術(shù)。 通常采用的辦法是在內(nèi)存固定區(qū)域內(nèi),撥出通常采用的辦法是在內(nèi)存固定區(qū)域內(nèi),撥出一些存儲(chǔ)單元來(lái)存放這些頁(yè)表。一些存儲(chǔ)單元來(lái)存放
44、這些頁(yè)表。 在系統(tǒng)中設(shè)置一個(gè)頁(yè)表寄存器在系統(tǒng)中設(shè)置一個(gè)頁(yè)表寄存器PTR(Page-Table Register),存放頁(yè)表在內(nèi)存中的始址和頁(yè)),存放頁(yè)表在內(nèi)存中的始址和頁(yè)表的長(zhǎng)度。表的長(zhǎng)度。 單處理機(jī)環(huán)境需要幾個(gè)頁(yè)表寄存器?單處理機(jī)環(huán)境需要幾個(gè)頁(yè)表寄存器? 絕對(duì)地址絕對(duì)地址=塊號(hào)塊號(hào)塊長(zhǎng)塊長(zhǎng)+頁(yè)內(nèi)位移量頁(yè)內(nèi)位移量物理地址物理地址執(zhí)行一條指令執(zhí)行一條指令邏輯地址分為頁(yè)邏輯地址分為頁(yè)號(hào)和頁(yè)內(nèi)地址號(hào)和頁(yè)內(nèi)地址按照頁(yè)號(hào)查頁(yè)表按照頁(yè)號(hào)查頁(yè)表得到相應(yīng)塊號(hào)得到相應(yīng)塊號(hào)地址變換機(jī)構(gòu)地址變換機(jī)構(gòu) 頁(yè)表始址頁(yè)表始址 頁(yè)表長(zhǎng)度頁(yè)表長(zhǎng)度 越界中斷越界中斷 頁(yè)表始址頁(yè)表始址+頁(yè)號(hào)頁(yè)號(hào)頁(yè)表項(xiàng)長(zhǎng)度頁(yè)表項(xiàng)長(zhǎng)度 塊號(hào)塊號(hào) 頁(yè)號(hào)
45、頁(yè)號(hào) 0 1 2 2 3 8 1410 9 0 8 452 8644 12345 14 10 9 0 2 452 + + 例:執(zhí)行指令例:執(zhí)行指令LOAD 1,2500,假定頁(yè)長(zhǎng)假定頁(yè)長(zhǎng)=1k。 舉例:舉例:某虛擬存儲(chǔ)器某虛擬存儲(chǔ)器的用戶編程空間共的用戶編程空間共32個(gè)頁(yè)個(gè)頁(yè)面,每頁(yè)為面,每頁(yè)為1KB,內(nèi)存為,內(nèi)存為16KB。假定某時(shí)刻一用戶。假定某時(shí)刻一用戶頁(yè)表中已調(diào)入內(nèi)存的頁(yè)面頁(yè)表中已調(diào)入內(nèi)存的頁(yè)面的頁(yè)號(hào)和物理塊號(hào)的對(duì)照的頁(yè)號(hào)和物理塊號(hào)的對(duì)照表如右:表如右: 邏輯地址邏輯地址0A5C(H)所對(duì)應(yīng)的物理地址是什么?所對(duì)應(yīng)的物理地址是什么?頁(yè)號(hào)物理塊號(hào)051102437 邏輯地址:頁(yè)號(hào)和頁(yè)內(nèi)地
46、址邏輯地址:頁(yè)號(hào)和頁(yè)內(nèi)地址 5位位物理內(nèi)存:物理內(nèi)存:16塊塊0A5C:000 1010 0101 1100 頁(yè)號(hào)為頁(yè)號(hào)為2,物理塊號(hào)為,物理塊號(hào)為4物理地址:物理地址: 01 0010 0101 1100即即125C(H)頁(yè)表全部放在內(nèi)存頁(yè)表全部放在內(nèi)存 第一次訪問(wèn)內(nèi)存第一次訪問(wèn)內(nèi)存 根據(jù)頁(yè)號(hào)訪問(wèn)頁(yè)表根據(jù)頁(yè)號(hào)訪問(wèn)頁(yè)表 讀出塊號(hào)形成絕對(duì)地址讀出塊號(hào)形成絕對(duì)地址 根據(jù)絕對(duì)地址取數(shù)據(jù)根據(jù)絕對(duì)地址取數(shù)據(jù) 第二次訪問(wèn)內(nèi)存第二次訪問(wèn)內(nèi)存 取一個(gè)數(shù)據(jù)取一個(gè)數(shù)據(jù)要訪問(wèn)幾次內(nèi)存?要訪問(wèn)幾次內(nèi)存? 越界中斷越界中斷 頁(yè)內(nèi)地址頁(yè)內(nèi)地址d 頁(yè)表長(zhǎng)度頁(yè)表長(zhǎng)度 頁(yè)表始址頁(yè)表始址 頁(yè)號(hào)頁(yè)號(hào) P 頁(yè)號(hào)頁(yè)號(hào) 快表快表 塊號(hào)塊
47、號(hào) 頁(yè)號(hào)頁(yè)號(hào) 塊號(hào)塊號(hào) 物理地址物理地址 輸輸入入寄寄存存器器 d b b + b 訪問(wèn)一次內(nèi)存就可訪問(wèn)一次內(nèi)存就可取出指令或存取數(shù)據(jù)。取出指令或存取數(shù)據(jù)。優(yōu)點(diǎn):優(yōu)點(diǎn): 分頁(yè)存儲(chǔ)分配有效地解決了存儲(chǔ)器的零頭問(wèn)題,分頁(yè)存儲(chǔ)分配有效地解決了存儲(chǔ)器的零頭問(wèn)題,能同時(shí)為更多的作業(yè)提供存儲(chǔ)空間,也就能在更高的能同時(shí)為更多的作業(yè)提供存儲(chǔ)空間,也就能在更高的程度上進(jìn)行多道程序設(shè)計(jì),提高了存儲(chǔ)器和處理機(jī)的程度上進(jìn)行多道程序設(shè)計(jì),提高了存儲(chǔ)器和處理機(jī)的利用率。利用率。缺點(diǎn):缺點(diǎn):(1)采用了動(dòng)態(tài)地址變換機(jī)構(gòu),降低了)采用了動(dòng)態(tài)地址變換機(jī)構(gòu),降低了CPU的速度。的速度。(2)必須用一部分存儲(chǔ)空間來(lái)存放各種表格,要
48、花費(fèi))必須用一部分存儲(chǔ)空間來(lái)存放各種表格,要花費(fèi)一定的處理機(jī)時(shí)間來(lái)建立和管理這些表。一定的處理機(jī)時(shí)間來(lái)建立和管理這些表。(3)解決了分區(qū)間的零頭,又出現(xiàn)了塊內(nèi)的零頭。)解決了分區(qū)間的零頭,又出現(xiàn)了塊內(nèi)的零頭。(4)要求運(yùn)行的作業(yè),必須全部裝入內(nèi)存。)要求運(yùn)行的作業(yè),必須全部裝入內(nèi)存。(5 5)和分區(qū)分配方案一樣,作業(yè)的地址空間受到主存)和分區(qū)分配方案一樣,作業(yè)的地址空間受到主存實(shí)際容量的限制。實(shí)際容量的限制。 一個(gè)具有一個(gè)具有32位的邏輯地址空間的分頁(yè)系統(tǒng):位的邏輯地址空間的分頁(yè)系統(tǒng): 頁(yè)面大小為頁(yè)面大小為4KB=212B 每個(gè)進(jìn)程的頁(yè)表項(xiàng)最多可達(dá)每個(gè)進(jìn)程的頁(yè)表項(xiàng)最多可達(dá)220個(gè)個(gè)連續(xù)存放連續(xù)
49、存放解決方法:解決方法:(1)采用離散分配方式來(lái)解決難以找到一塊連續(xù)的大)采用離散分配方式來(lái)解決難以找到一塊連續(xù)的大內(nèi)存空間的問(wèn)題。內(nèi)存空間的問(wèn)題。(2)只將當(dāng)前需要的部分頁(yè)表項(xiàng)調(diào)入內(nèi)存,其余的頁(yè))只將當(dāng)前需要的部分頁(yè)表項(xiàng)調(diào)入內(nèi)存,其余的頁(yè)表仍駐留在磁盤(pán)上,需要時(shí)再調(diào)入。表仍駐留在磁盤(pán)上,需要時(shí)再調(diào)入。4.4.3 兩級(jí)和多級(jí)頁(yè)表兩級(jí)和多級(jí)頁(yè)表 1、兩級(jí)頁(yè)表、兩級(jí)頁(yè)表 以以32位的邏輯地址空間的系統(tǒng)為例,頁(yè)位的邏輯地址空間的系統(tǒng)為例,頁(yè)面大小為面大小為4 KB:1011107817421461141151468 01141468外部頁(yè)表外部頁(yè)表第第0頁(yè)頁(yè)表頁(yè)頁(yè)表第第1頁(yè)頁(yè)表頁(yè)頁(yè)表第第1023頁(yè)頁(yè)
50、表頁(yè)頁(yè)表01023某頁(yè)表某頁(yè)表分頁(yè)的分頁(yè)的始址始址進(jìn)程的某頁(yè)進(jìn)程的某頁(yè)在內(nèi)存中的在內(nèi)存中的物理塊號(hào)物理塊號(hào)01023以以32位的邏輯地址空間的系統(tǒng)為例,頁(yè)面大小為位的邏輯地址空間的系統(tǒng)為例,頁(yè)面大小為4 KB0102301023 以以32位的邏輯地址空間的系統(tǒng)為例,頁(yè)位的邏輯地址空間的系統(tǒng)為例,頁(yè)面大小為面大小為4 KB:外層頁(yè)號(hào)外層頁(yè)號(hào)P1外層頁(yè)內(nèi)地址外層頁(yè)內(nèi)地址P2頁(yè)內(nèi)地址頁(yè)內(nèi)地址d3122 2112 11010位,位,可包含可包含1024個(gè)個(gè)頁(yè)表分頁(yè)表分頁(yè)頁(yè)10位,最位,最多允許多允許1024個(gè)頁(yè)個(gè)頁(yè)表項(xiàng)表項(xiàng)12位位page offsetpip2d101012page number通過(guò)通
51、過(guò)P1可以找到對(duì)可以找到對(duì)應(yīng)頁(yè)表分頁(yè)在內(nèi)存應(yīng)頁(yè)表分頁(yè)在內(nèi)存中的起始地址中的起始地址通過(guò)通過(guò)P2可以找到對(duì)應(yīng)頁(yè)可以找到對(duì)應(yīng)頁(yè)表項(xiàng),從而找到該頁(yè)在表項(xiàng),從而找到該頁(yè)在內(nèi)存中的起始地址內(nèi)存中的起始地址P1P2d外部頁(yè)號(hào)外部頁(yè)號(hào)外部頁(yè)內(nèi)地址外部頁(yè)內(nèi)地址頁(yè)內(nèi)地址頁(yè)內(nèi)地址邏輯地址邏輯地址外部頁(yè)表寄存器外部頁(yè)表寄存器+bd外部頁(yè)表外部頁(yè)表頁(yè)表頁(yè)表物理地址物理地址頁(yè)表分頁(yè)頁(yè)表分頁(yè)的始址的始址采用離散分配的采用離散分配的方式并沒(méi)有減少方式并沒(méi)有減少頁(yè)表所占的內(nèi)存頁(yè)表所占的內(nèi)存空間空間外部頁(yè)表外部頁(yè)表始址始址 舉例:假設(shè)虛擬地址為舉例:假設(shè)虛擬地址為32位,每頁(yè)為位,每頁(yè)為4KB,采用二級(jí)頁(yè)表結(jié)構(gòu),如圖。采用二級(jí)
52、頁(yè)表結(jié)構(gòu),如圖。 邏輯地址邏輯地址0 x00403004(十進(jìn)制(十進(jìn)制4206596)所)所對(duì)應(yīng)的物理地址是什么?對(duì)應(yīng)的物理地址是什么?0 x00403004:0000000001 0000000011 000000000100 P1 P2 頁(yè)內(nèi)地址頁(yè)內(nèi)地址dP1=4206592/4k/1024=112292 P2=12292/4k=34 d=4外層頁(yè)號(hào)外層頁(yè)號(hào)P1外層頁(yè)內(nèi)地址外層頁(yè)內(nèi)地址P2頁(yè)內(nèi)地址頁(yè)內(nèi)地址d3122 2112 110 以64位的邏輯地址空間的系統(tǒng)為例,頁(yè)面大小為4 KB。l處理超過(guò)處理超過(guò)32位地址空間的常用方法是使用哈希頁(yè)表。位地址空間的常用方法是使用哈希頁(yè)表。l以邏輯
53、頁(yè)號(hào)作為哈希值,哈希頁(yè)表的每一條目都包含以邏輯頁(yè)號(hào)作為哈希值,哈希頁(yè)表的每一條目都包含一個(gè)鏈接組的元素。一個(gè)鏈接組的元素。l反向頁(yè)表的表項(xiàng)包含保存在真正內(nèi)存位置的頁(yè)的虛擬地址以反向頁(yè)表的表項(xiàng)包含保存在真正內(nèi)存位置的頁(yè)的虛擬地址以及擁有該頁(yè)的進(jìn)程的信息。及擁有該頁(yè)的進(jìn)程的信息。l系統(tǒng)只有一張頁(yè)表,對(duì)每個(gè)物理內(nèi)存的頁(yè)只有一條相應(yīng)的表系統(tǒng)只有一張頁(yè)表,對(duì)每個(gè)物理內(nèi)存的頁(yè)只有一條相應(yīng)的表目。目。64位位UltraSPARC,PowerPC頁(yè)式管理頁(yè)式管理:對(duì)用戶而言不自然對(duì)用戶而言不自然 0 1 2 3 4 5 程序段程序段數(shù)據(jù)段數(shù)據(jù)段 0 1 2主程序主程序SIN 0 1 2主程序主程序SIN作業(yè)作
54、業(yè)1 1作業(yè)作業(yè)2 21、方便編程方便編程 2、分段共享分段共享 3、分段保護(hù)分段保護(hù) 4、動(dòng)態(tài)鏈接動(dòng)態(tài)鏈接 5、動(dòng)態(tài)增長(zhǎng)動(dòng)態(tài)增長(zhǎng)4.5.1 分段存儲(chǔ)管理方式的引入分段存儲(chǔ)管理方式的引入 1 1、分段、分段 一個(gè)段定義為一一個(gè)段定義為一組邏輯信息組邏輯信息 主程序主程序 子程序子程序1 子程序子程序2棧棧數(shù)據(jù)數(shù)據(jù)邏輯空間邏輯空間 子程序子程序2主程序主程序棧棧數(shù)據(jù)數(shù)據(jù)OS 子程序子程序1物理空間物理空間.0S工作區(qū)段工作區(qū)段B主程序段主程序段M.0EP子程序段子程序段X0K.CALL X E.CALL Y FCALL A 116.0FL子程序段子程序段Y0116N數(shù)組數(shù)組A12345.作業(yè)的地
55、址空間是二維的。作業(yè)的地址空間是二維的。邏輯地址是由段名(號(hào))和段內(nèi)地址構(gòu)成。邏輯地址是由段名(號(hào))和段內(nèi)地址構(gòu)成。 段號(hào)段號(hào) 段內(nèi)地址段內(nèi)地址段號(hào)段號(hào) 段長(zhǎng)段長(zhǎng) 基址基址 邏輯段到物理內(nèi)邏輯段到物理內(nèi)存區(qū)的映射存區(qū)的映射系統(tǒng)調(diào)度到某個(gè)作業(yè)時(shí),系統(tǒng)調(diào)度到某個(gè)作業(yè)時(shí),就為它建立一張段表就為它建立一張段表B0S10003200500060008000PKSLN主存主存K 3200P 1500L 6000N 8000S 5000長(zhǎng)度長(zhǎng)度 段地址段地址01234操作系統(tǒng)操作系統(tǒng)A0NY0LX0PM0K作業(yè)作業(yè)1的地址空間的地址空間邏輯段號(hào)邏輯段號(hào)012343、地址變換機(jī)構(gòu)、地址變換機(jī)構(gòu)動(dòng)態(tài)重定位技術(shù)動(dòng)
56、態(tài)重定位技術(shù)實(shí)現(xiàn)把二維地址結(jié)構(gòu)變換成一個(gè)線性的地址結(jié)構(gòu)實(shí)現(xiàn)把二維地址結(jié)構(gòu)變換成一個(gè)線性的地址結(jié)構(gòu)段表始址段表始址 段表長(zhǎng)度段表長(zhǎng)度1100段號(hào)段號(hào)S位移量位移量W越界中斷越界中斷+01K6K1500K4K2300K8K3200K9200K4段號(hào)段號(hào)段長(zhǎng)段長(zhǎng)基址基址+4196123454196段表寄存器段表寄存器由硬件自動(dòng)完成由硬件自動(dòng)完成 CL Cb+段號(hào)段號(hào)S S 段內(nèi)地址段內(nèi)地址d比較比較比較比較b + d段段表表S= CL快表快表物理地址物理地址段表始址寄存器段表始址寄存器段表長(zhǎng)度寄存器段表長(zhǎng)度寄存器邏輯地址邏輯地址Lb.SLb地址越界地址越界d=Ld=L地址越界地址越界地址越界地址越界
57、比較比較(1)頁(yè)是信息的物理單位,分頁(yè)活動(dòng)用戶是看不見(jiàn)的,僅僅用)頁(yè)是信息的物理單位,分頁(yè)活動(dòng)用戶是看不見(jiàn)的,僅僅用于對(duì)內(nèi)存的管理,引進(jìn)分頁(yè)是為了消除內(nèi)存的外零頭,提高內(nèi)存于對(duì)內(nèi)存的管理,引進(jìn)分頁(yè)是為了消除內(nèi)存的外零頭,提高內(nèi)存的利用率。的利用率。 段是信息的邏輯單位,分段活動(dòng)用戶是可見(jiàn)的,分段的目的段是信息的邏輯單位,分段活動(dòng)用戶是可見(jiàn)的,分段的目的是為了更好地滿足用戶的需要。是為了更好地滿足用戶的需要。 (2)頁(yè)的大小是固定的,并且由系統(tǒng)確定,由硬件實(shí)現(xiàn)把邏輯)頁(yè)的大小是固定的,并且由系統(tǒng)確定,由硬件實(shí)現(xiàn)把邏輯地址劃分為頁(yè)號(hào)和頁(yè)內(nèi)地址,一個(gè)系統(tǒng)只能有一種大小的頁(yè)面。地址劃分為頁(yè)號(hào)和頁(yè)內(nèi)地址
58、,一個(gè)系統(tǒng)只能有一種大小的頁(yè)面。 段的長(zhǎng)度卻不固定,可以在用戶編程時(shí)確定,也可以在編段的長(zhǎng)度卻不固定,可以在用戶編程時(shí)確定,也可以在編譯程序?qū)υ闯绦蜻M(jìn)行編譯時(shí),根據(jù)信息的性質(zhì)來(lái)劃分。譯程序?qū)υ闯绦蜻M(jìn)行編譯時(shí),根據(jù)信息的性質(zhì)來(lái)劃分。 (3)分頁(yè)的地址空間是一維的,程序員只要用一個(gè)記憶符即可)分頁(yè)的地址空間是一維的,程序員只要用一個(gè)記憶符即可表示一個(gè)地址。表示一個(gè)地址。 分段的作業(yè)地址空間是二維的,程序員在標(biāo)識(shí)一個(gè)地址時(shí),分段的作業(yè)地址空間是二維的,程序員在標(biāo)識(shí)一個(gè)地址時(shí),既要給出段名,又要給出段內(nèi)地址。既要給出段名,又要給出段內(nèi)地址。 LOAD 1,A 可重入代碼可重入代碼,又稱為,又稱為“純代
59、碼純代碼”,是一種允許多個(gè)進(jìn)程同時(shí)訪問(wèn)的代碼。是一種允許多個(gè)進(jìn)程同時(shí)訪問(wèn)的代碼。 可重入代碼是一種不允許任何進(jìn)程可重入代碼是一種不允許任何進(jìn)程對(duì)其進(jìn)行修改的代碼。對(duì)其進(jìn)行修改的代碼。 例:有一個(gè)可同時(shí)例:有一個(gè)可同時(shí)接納接納40個(gè)用個(gè)用 戶的多用戶戶的多用戶系統(tǒng),他們都執(zhí)行一個(gè)系統(tǒng),他們都執(zhí)行一個(gè)文本文本 編輯程序(編輯程序(Text Editor),文本),文本 編輯程編輯程序含有序含有160KB的代碼和的代碼和40K的數(shù)據(jù)區(qū)。的數(shù)據(jù)區(qū)。 40個(gè)用戶同時(shí)執(zhí)行。個(gè)用戶同時(shí)執(zhí)行。 需要需要(160+40)40=8M的內(nèi)存空間的內(nèi)存空間 。 如果如果160K代碼是可重入的,那么代碼就能被共代碼是可
60、重入的,那么代碼就能被共享。內(nèi)存只要保留一份文本編輯程序的副本,這時(shí)享。內(nèi)存只要保留一份文本編輯程序的副本,這時(shí)需要的內(nèi)存空間就是:需要的內(nèi)存空間就是: (160+4040)=1760KB。 在分頁(yè)系統(tǒng)中,假定頁(yè)面大小在分頁(yè)系統(tǒng)中,假定頁(yè)面大小為為 4 K B , 1 6 0 K B 的 代 碼 占 用的 代 碼 占 用1 6 0 / 4 = 4 0 個(gè) 頁(yè) 面 , 數(shù) 據(jù) 區(qū) 占個(gè) 頁(yè) 面 , 數(shù) 據(jù) 區(qū) 占40/4=10個(gè)頁(yè)面。個(gè)頁(yè)面。 ed1ed2ed40data1data102122607180ed1ed2ed40data1data10進(jìn)程進(jìn)程1進(jìn)程進(jìn)程22122606170頁(yè)表頁(yè)表頁(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 宮腔鏡手術(shù)管理制度
- 家庭式公司管理制度
- 應(yīng)急供水點(diǎn)管理制度
- 錄播室控制管理制度
- 影樓攝影部管理制度
- 微生物菌種管理制度
- 心理能力與管理制度
- 快遞分揀倉(cāng)管理制度
- 怎樣做人員管理制度
- 總成修理間管理制度
- 音樂(lè)與藝術(shù)在全球中的多樣性與融合
- 2025年安徽省高考生物試卷(含答案解析)
- 真實(shí)情境下的“5E”教學(xué)模式在高中化學(xué)教學(xué)中的應(yīng)用與成效探究
- 基于項(xiàng)目驅(qū)動(dòng)的創(chuàng)新實(shí)踐課程設(shè)計(jì)
- 湖北省武漢市武昌區(qū)三年級(jí)下學(xué)期數(shù)學(xué)期末試卷(含答案)
- 2025中考英語(yǔ)閱讀考點(diǎn)專項(xiàng)突破訓(xùn)練:旅游(學(xué)生版+解析)
- 專利培訓(xùn)試題及答案
- 國(guó)際工程投標(biāo)管理制度
- 2025河南濮陽(yáng)市南樂(lè)縣紀(jì)委監(jiān)委招聘編外看護(hù)隊(duì)員筆試易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 廣東省珠海市香洲區(qū)2023-2024學(xué)年七年級(jí)下學(xué)期語(yǔ)文期末試卷(含答案)
- 供熱領(lǐng)域自查工作報(bào)告
評(píng)論
0/150
提交評(píng)論