軟件技術(shù)基礎(chǔ) (12)存儲(chǔ)器管理_第1頁
軟件技術(shù)基礎(chǔ) (12)存儲(chǔ)器管理_第2頁
軟件技術(shù)基礎(chǔ) (12)存儲(chǔ)器管理_第3頁
軟件技術(shù)基礎(chǔ) (12)存儲(chǔ)器管理_第4頁
軟件技術(shù)基礎(chǔ) (12)存儲(chǔ)器管理_第5頁
已閱讀5頁,還剩72頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、NO:1 第四章第四章 操作系統(tǒng)操作系統(tǒng)4.3 4.3 存儲(chǔ)器管理存儲(chǔ)器管理1. 存儲(chǔ)管理的功能及有關(guān)概念存儲(chǔ)管理的功能及有關(guān)概念 主存儲(chǔ)器主存儲(chǔ)器又稱內(nèi)存,是計(jì)算機(jī)中最重要的資源,用戶的程又稱內(nèi)存,是計(jì)算機(jī)中最重要的資源,用戶的程序和數(shù)據(jù)在運(yùn)行時(shí)都要放在內(nèi)存中,再由序和數(shù)據(jù)在運(yùn)行時(shí)都要放在內(nèi)存中,再由CPU訪問。訪問。 內(nèi)存的容量是有限的,因此如何對(duì)內(nèi)存進(jìn)行管理和有效使內(nèi)存的容量是有限的,因此如何對(duì)內(nèi)存進(jìn)行管理和有效使用是操作系統(tǒng)最重要的內(nèi)容。用是操作系統(tǒng)最重要的內(nèi)容。 存儲(chǔ)管理分為兩大類:存儲(chǔ)管理分為兩大類:實(shí)存儲(chǔ)管理實(shí)存儲(chǔ)管理和和虛擬存儲(chǔ)管理虛擬存儲(chǔ)管理。 實(shí)存管理實(shí)存管理:作業(yè)運(yùn)行時(shí)整

2、個(gè)作業(yè)的地址空間必須全部作業(yè)運(yùn)行時(shí)整個(gè)作業(yè)的地址空間必須全部裝入內(nèi)存的一個(gè)連續(xù)空間。裝入內(nèi)存的一個(gè)連續(xù)空間。 虛存管理虛存管理:用軟件辦法來擴(kuò)充存儲(chǔ)器,提供給用戶一用軟件辦法來擴(kuò)充存儲(chǔ)器,提供給用戶一個(gè)比實(shí)際內(nèi)存大得多的存儲(chǔ)空間。個(gè)比實(shí)際內(nèi)存大得多的存儲(chǔ)空間。NO:2 第四章第四章 操作系統(tǒng)操作系統(tǒng)4.3 4.3 存儲(chǔ)器管理存儲(chǔ)器管理(1) (1) 存儲(chǔ)器的分級(jí)結(jié)構(gòu)存儲(chǔ)器的分級(jí)結(jié)構(gòu)高速緩沖存儲(chǔ)器(高速緩沖存儲(chǔ)器(cache):又稱緩存,速度快、容量小、又稱緩存,速度快、容量小、價(jià)格貴,用來存放使用最頻繁的信息,以及緩沖價(jià)格貴,用來存放使用最頻繁的信息,以及緩沖CPU與內(nèi)與內(nèi)存之間的速度差。存之

3、間的速度差。 主存儲(chǔ)器:主存儲(chǔ)器:又稱內(nèi)存,是程序運(yùn)行時(shí)存放系統(tǒng)和用戶的又稱內(nèi)存,是程序運(yùn)行時(shí)存放系統(tǒng)和用戶的指令及數(shù)據(jù)的設(shè)備。指令及數(shù)據(jù)的設(shè)備。 外部存儲(chǔ)器:外部存儲(chǔ)器:又稱外存,如硬盤、磁盤、光盤等;存取又稱外存,如硬盤、磁盤、光盤等;存取速度慢、容量大、價(jià)格便宜;可以存放大量的系統(tǒng)和用速度慢、容量大、價(jià)格便宜;可以存放大量的系統(tǒng)和用戶的程序及數(shù)據(jù);不能由戶的程序及數(shù)據(jù);不能由CPU直接讀取。直接讀取。NO:3 第四章第四章 操作系統(tǒng)操作系統(tǒng)4.3 4.3 存儲(chǔ)器管理存儲(chǔ)器管理分級(jí)存儲(chǔ)機(jī)構(gòu)示意圖分級(jí)存儲(chǔ)機(jī)構(gòu)示意圖 外存外存主存主存程序和數(shù)據(jù)可以直程序和數(shù)據(jù)可以直接被接被CPU訪問訪問程序和

4、數(shù)據(jù)必須交換程序和數(shù)據(jù)必須交換到內(nèi)存后才能被到內(nèi)存后才能被CPU訪問訪問寄存器寄存器NO:4 第四章第四章 操作系統(tǒng)操作系統(tǒng)4.3 4.3 存儲(chǔ)器管理存儲(chǔ)器管理 存儲(chǔ)管理的功能主要分為存儲(chǔ)管理的功能主要分為內(nèi)存分配內(nèi)存分配、地址轉(zhuǎn)換地址轉(zhuǎn)換、存儲(chǔ)存儲(chǔ)保護(hù)保護(hù)和和內(nèi)存擴(kuò)充內(nèi)存擴(kuò)充四部分。四部分。 內(nèi)存分配內(nèi)存分配 內(nèi)存分為內(nèi)存分為系統(tǒng)區(qū)系統(tǒng)區(qū)和和用戶區(qū)用戶區(qū)兩大部分。由于多道程序出兩大部分。由于多道程序出現(xiàn),內(nèi)存中需要存放多個(gè)用戶作業(yè),因此內(nèi)存分配要解決如現(xiàn),內(nèi)存中需要存放多個(gè)用戶作業(yè),因此內(nèi)存分配要解決如何何合理分配內(nèi)存空間合理分配內(nèi)存空間以保證各作業(yè)以保證各作業(yè)互不沖突互不沖突,而且系統(tǒng)要提

5、,而且系統(tǒng)要提供適當(dāng)?shù)膬?nèi)存分配算法,提高內(nèi)存的供適當(dāng)?shù)膬?nèi)存分配算法,提高內(nèi)存的利用率利用率和和運(yùn)行效率運(yùn)行效率。NO:5 第四章第四章 操作系統(tǒng)操作系統(tǒng)4.3 4.3 存儲(chǔ)器管理存儲(chǔ)器管理 地址轉(zhuǎn)換或重定位地址轉(zhuǎn)換或重定位 地址空間地址空間 為了程序的獨(dú)立性,用戶編制的程序是由符號(hào)指令、數(shù)為了程序的獨(dú)立性,用戶編制的程序是由符號(hào)指令、數(shù)據(jù)說明和輸入輸出操作所組成的。我們把程序中的各種符號(hào)據(jù)說明和輸入輸出操作所組成的。我們把程序中的各種符號(hào)元素的集合所限定的空間叫做元素的集合所限定的空間叫做符號(hào)名字空間符號(hào)名字空間。 經(jīng)編譯程序處理后,源程序中的各種符號(hào)元素轉(zhuǎn)換成機(jī)經(jīng)編譯程序處理后,源程序中的各

6、種符號(hào)元素轉(zhuǎn)換成機(jī)器指令和數(shù)據(jù)組成的目標(biāo)程序,并用實(shí)際地址碼替換符號(hào)地器指令和數(shù)據(jù)組成的目標(biāo)程序,并用實(shí)際地址碼替換符號(hào)地址。經(jīng)編譯后目標(biāo)代碼所限定的地址叫做該程序址。經(jīng)編譯后目標(biāo)代碼所限定的地址叫做該程序地址空間地址空間。 地址空間中各個(gè)地址叫做地址空間中各個(gè)地址叫做相對(duì)地址相對(duì)地址或或邏輯地址邏輯地址,這是因,這是因?yàn)榫幾g程序?qū)σ粋€(gè)源程序編譯時(shí),總是以為編譯程序?qū)σ粋€(gè)源程序編譯時(shí),總是以0號(hào)單元作為參考號(hào)單元作為參考地址,其他所有的地址都是以地址,其他所有的地址都是以0號(hào)單元為起始地址順序編碼號(hào)單元為起始地址順序編碼 mov r1, 5000100500599123邏輯地址空間邏輯地址空間

7、mov r1, datadata123 名空間名空間NO:6 第四章第四章 操作系統(tǒng)操作系統(tǒng)4.3 4.3 存儲(chǔ)器管理存儲(chǔ)器管理 存儲(chǔ)空間存儲(chǔ)空間:內(nèi)存中一系列存儲(chǔ)信息的物理單元的集合,:內(nèi)存中一系列存儲(chǔ)信息的物理單元的集合,是由字或字節(jié)組成的一個(gè)大陣列,每個(gè)字或字節(jié)都有它自己是由字或字節(jié)組成的一個(gè)大陣列,每個(gè)字或字節(jié)都有它自己的編號(hào)地址,這些編號(hào)地址叫做的編號(hào)地址,這些編號(hào)地址叫做物理地址物理地址或或絕對(duì)地址絕對(duì)地址。mov r1, 500010050059912301000mov r1, 500123110015001599邏輯地址空間邏輯地址空間物理空間物理空間 例:在一個(gè)程序的地址空間

8、中例:在一個(gè)程序的地址空間中100號(hào)單元處有一條指令號(hào)單元處有一條指令 mov r1, 500。如果該程序僅僅是簡(jiǎn)單裝入到內(nèi)存。如果該程序僅僅是簡(jiǎn)單裝入到內(nèi)存10001599號(hào)單元,當(dāng)執(zhí)號(hào)單元,當(dāng)執(zhí)行到行到1100號(hào)單元中的指令時(shí),則將號(hào)單元中的指令時(shí),則將500號(hào)單元的內(nèi)容送到號(hào)單元的內(nèi)容送到1號(hào)寄存器,號(hào)寄存器,這顯然時(shí)錯(cuò)誤的。必須修改這顯然時(shí)錯(cuò)誤的。必須修改1100號(hào)單元指令中的地址部分,即把邏號(hào)單元指令中的地址部分,即把邏輯地址輯地址500改為絕對(duì)地址改為絕對(duì)地址1500。NO:7 第四章第四章 操作系統(tǒng)操作系統(tǒng)4.3 4.3 存儲(chǔ)器管理存儲(chǔ)器管理 重定位重定位 CPU執(zhí)行用戶程序,所

9、要訪問的指令和數(shù)據(jù)必須執(zhí)行用戶程序,所要訪問的指令和數(shù)據(jù)必須是實(shí)際的物理地址。因此必須把是實(shí)際的物理地址。因此必須把 邏輯地址邏輯地址 絕對(duì)地址絕對(duì)地址。這。這種使程序裝入到與其地址空間不一致的存儲(chǔ)空間所引起的,種使程序裝入到與其地址空間不一致的存儲(chǔ)空間所引起的,對(duì)有關(guān)地址部分的調(diào)整過程稱為對(duì)有關(guān)地址部分的調(diào)整過程稱為 地址重定位地址重定位。重定位的方式有重定位的方式有靜態(tài)重定位靜態(tài)重定位和和動(dòng)態(tài)重定位動(dòng)態(tài)重定位兩種。兩種。 靜態(tài)重定位靜態(tài)重定位:在程序裝入時(shí)進(jìn)行,由:在程序裝入時(shí)進(jìn)行,由裝入程序裝入程序把用戶程序把用戶程序中的指令地址和數(shù)據(jù)地址全部轉(zhuǎn)換成存儲(chǔ)空間的絕對(duì)地址。中的指令地址和數(shù)據(jù)

10、地址全部轉(zhuǎn)換成存儲(chǔ)空間的絕對(duì)地址。 地址轉(zhuǎn)換工作在程序執(zhí)行前一次性完成,在程序執(zhí)行時(shí)就地址轉(zhuǎn)換工作在程序執(zhí)行前一次性完成,在程序執(zhí)行時(shí)就無須再進(jìn)行地址轉(zhuǎn)換工作。無須再進(jìn)行地址轉(zhuǎn)換工作。NO:8 第四章第四章 操作系統(tǒng)操作系統(tǒng)4.3 4.3 存儲(chǔ)器管理存儲(chǔ)器管理mov r1, 50001005005991230BRBRmov r1, BR+500123BR+100BR+500BR+599靜態(tài)重定位過程靜態(tài)重定位過程重定位裝入程重定位裝入程序序 假定程序裝入內(nèi)存的首地址為假定程序裝入內(nèi)存的首地址為BRBR,程序地址為程序地址為VRVR,內(nèi)內(nèi)存地址為存地址為MRMR,則地址映射按下式進(jìn)行:則地址映射

11、按下式進(jìn)行:MR=BR+VR MR=BR+VR 。NO:9 第四章第四章 操作系統(tǒng)操作系統(tǒng)4.3 4.3 存儲(chǔ)器管理存儲(chǔ)器管理靜態(tài)地址重定位優(yōu)缺點(diǎn):靜態(tài)地址重定位優(yōu)缺點(diǎn): 優(yōu)點(diǎn):優(yōu)點(diǎn): a) 無需增加硬件地址變換機(jī)構(gòu),可在一般機(jī)器上實(shí)現(xiàn);無需增加硬件地址變換機(jī)構(gòu),可在一般機(jī)器上實(shí)現(xiàn); b) 利用重定位裝入程序即可對(duì)若干程序段進(jìn)行靜態(tài)鏈接,利用重定位裝入程序即可對(duì)若干程序段進(jìn)行靜態(tài)鏈接, 實(shí)現(xiàn)起來比較簡(jiǎn)單。實(shí)現(xiàn)起來比較簡(jiǎn)單。 缺點(diǎn):缺點(diǎn): a) 要求分配一片連續(xù)的存儲(chǔ)空間,且在執(zhí)行期間必須限定要求分配一片連續(xù)的存儲(chǔ)空間,且在執(zhí)行期間必須限定在這個(gè)區(qū)域內(nèi)。就是說程序運(yùn)行期間不能移動(dòng),因而不能實(shí)在這

12、個(gè)區(qū)域內(nèi)。就是說程序運(yùn)行期間不能移動(dòng),因而不能實(shí)現(xiàn)重新分配主存,對(duì)提高主存利用率不利現(xiàn)重新分配主存,對(duì)提高主存利用率不利 b) 用戶必須事先確定所需的存儲(chǔ)量用戶必須事先確定所需的存儲(chǔ)量NO:10 第四章第四章 操作系統(tǒng)操作系統(tǒng)4.3 4.3 存儲(chǔ)器管理存儲(chǔ)器管理 動(dòng)態(tài)重定位:動(dòng)態(tài)重定位:在程序在程序執(zhí)行過程中執(zhí)行過程中進(jìn)行,當(dāng)進(jìn)行,當(dāng)CPU訪問內(nèi)存訪問內(nèi)存指令時(shí)由指令時(shí)由硬件的地址轉(zhuǎn)換機(jī)構(gòu)硬件的地址轉(zhuǎn)換機(jī)構(gòu)實(shí)現(xiàn)。通常的辦法是設(shè)置一個(gè)實(shí)現(xiàn)。通常的辦法是設(shè)置一個(gè)重定位寄存器重定位寄存器。在存儲(chǔ)管理為程序分配一個(gè)主存區(qū)域后,裝。在存儲(chǔ)管理為程序分配一個(gè)主存區(qū)域后,裝入程序直接把程序和數(shù)據(jù)裝入到分配的

13、存儲(chǔ)區(qū)中,然后把這入程序直接把程序和數(shù)據(jù)裝入到分配的存儲(chǔ)區(qū)中,然后把這個(gè)存儲(chǔ)區(qū)的個(gè)存儲(chǔ)區(qū)的起始地址起始地址送入重定位寄存器中。在程序執(zhí)行時(shí),送入重定位寄存器中。在程序執(zhí)行時(shí),對(duì)于每一個(gè)存儲(chǔ)區(qū)的訪問,都要將相對(duì)地址轉(zhuǎn)換成主存的絕對(duì)于每一個(gè)存儲(chǔ)區(qū)的訪問,都要將相對(duì)地址轉(zhuǎn)換成主存的絕對(duì)地址。由于這種定位方式是在指令執(zhí)行過程中進(jìn)行的,所對(duì)地址。由于這種定位方式是在指令執(zhí)行過程中進(jìn)行的,所以叫做以叫做動(dòng)態(tài)重定位動(dòng)態(tài)重定位。NO:11 第四章第四章 操作系統(tǒng)操作系統(tǒng)4.3 4.3 存儲(chǔ)器管理存儲(chǔ)器管理mov r1, 500010050059912301000mov r1, m+50012311001500

14、1599+1000重定位寄存器重定位寄存器相對(duì)地址相對(duì)地址絕對(duì)地址絕對(duì)地址動(dòng)態(tài)重定位過程動(dòng)態(tài)重定位過程上述的地址轉(zhuǎn)換是動(dòng)態(tài)的,即每執(zhí)行一條指令,就進(jìn)行一次上述的地址轉(zhuǎn)換是動(dòng)態(tài)的,即每執(zhí)行一條指令,就進(jìn)行一次地址轉(zhuǎn)換。程序運(yùn)行過程中要執(zhí)行多少條指令,系統(tǒng)就要進(jìn)地址轉(zhuǎn)換。程序運(yùn)行過程中要執(zhí)行多少條指令,系統(tǒng)就要進(jìn)行多少次地址轉(zhuǎn)換。行多少次地址轉(zhuǎn)換。NO:12 第四章第四章 操作系統(tǒng)操作系統(tǒng)4.3 4.3 存儲(chǔ)器管理存儲(chǔ)器管理動(dòng)態(tài)地址重定位優(yōu)點(diǎn)動(dòng)態(tài)地址重定位優(yōu)點(diǎn):a) 主存使用更加靈活、有效,用戶程序不一定要分配在一片主存使用更加靈活、有效,用戶程序不一定要分配在一片連續(xù)的存儲(chǔ)區(qū)內(nèi),對(duì)應(yīng)每一個(gè)存儲(chǔ)空

15、間重新設(shè)置相應(yīng)的重定連續(xù)的存儲(chǔ)區(qū)內(nèi),對(duì)應(yīng)每一個(gè)存儲(chǔ)空間重新設(shè)置相應(yīng)的重定位寄存器即可;位寄存器即可;b) 可能向用戶提供一個(gè)比主存空間大得多的地址空間,并無可能向用戶提供一個(gè)比主存空間大得多的地址空間,并無需由用戶來考慮覆蓋,而由系統(tǒng)來負(fù)責(zé)全部的存儲(chǔ)管理。需由用戶來考慮覆蓋,而由系統(tǒng)來負(fù)責(zé)全部的存儲(chǔ)管理。c) 便于多用戶共享存儲(chǔ)器中的同一程序便于多用戶共享存儲(chǔ)器中的同一程序 即使動(dòng)態(tài)重定位需要額外的硬件支持,增加系統(tǒng)的成本,即使動(dòng)態(tài)重定位需要額外的硬件支持,增加系統(tǒng)的成本,且實(shí)現(xiàn)存儲(chǔ)管理的算法也比較復(fù)雜,但現(xiàn)代計(jì)算機(jī)系統(tǒng)都廣且實(shí)現(xiàn)存儲(chǔ)管理的算法也比較復(fù)雜,但現(xiàn)代計(jì)算機(jī)系統(tǒng)都廣泛采用了這一技術(shù)。

16、泛采用了這一技術(shù)。NO:13 第四章第四章 操作系統(tǒng)操作系統(tǒng)4.3 4.3 存儲(chǔ)器管理存儲(chǔ)器管理 3) 存儲(chǔ)保護(hù):存儲(chǔ)保護(hù): 確保多道程序都在各自分配到存儲(chǔ)區(qū)域內(nèi)操作,互不確保多道程序都在各自分配到存儲(chǔ)區(qū)域內(nèi)操作,互不干擾,防止一道程序破壞其它作業(yè)或系統(tǒng)文件的信息。干擾,防止一道程序破壞其它作業(yè)或系統(tǒng)文件的信息。 主要包含二部分內(nèi)容:主要包含二部分內(nèi)容:1) 防止地址越界防止地址越界; 2) 防止操作防止操作越權(quán)越權(quán)。存儲(chǔ)保護(hù)只能在進(jìn)程執(zhí)行過程中動(dòng)態(tài)的進(jìn)行。存儲(chǔ)保護(hù)只能在進(jìn)程執(zhí)行過程中動(dòng)態(tài)的進(jìn)行。 4) 內(nèi)存擴(kuò)充:內(nèi)存擴(kuò)充: 當(dāng)作業(yè)的當(dāng)作業(yè)的地址空間地址空間大于大于分配到的分配到的存儲(chǔ)空間存儲(chǔ)

17、空間時(shí)需采取內(nèi)時(shí)需采取內(nèi)存擴(kuò)充技術(shù),將內(nèi)外存聯(lián)合起來擴(kuò)大存儲(chǔ)空間,常采用存擴(kuò)充技術(shù),將內(nèi)外存聯(lián)合起來擴(kuò)大存儲(chǔ)空間,常采用的內(nèi)存擴(kuò)充技術(shù)有的內(nèi)存擴(kuò)充技術(shù)有覆蓋覆蓋、交換交換和和虛擬存儲(chǔ)虛擬存儲(chǔ)技術(shù)。技術(shù)。NO:14 第四章第四章 操作系統(tǒng)操作系統(tǒng)4.3 4.3 存儲(chǔ)器管理存儲(chǔ)器管理2. 實(shí)存儲(chǔ)管理實(shí)存儲(chǔ)管理(1) 分區(qū)分配分區(qū)分配(2) 可重定位分區(qū)分配可重定位分區(qū)分配(3) 覆蓋技術(shù)覆蓋技術(shù)(4) 交換技術(shù)交換技術(shù) 實(shí)存儲(chǔ)管理的特點(diǎn)是當(dāng)作業(yè)要求調(diào)入內(nèi)存時(shí),存儲(chǔ)管實(shí)存儲(chǔ)管理的特點(diǎn)是當(dāng)作業(yè)要求調(diào)入內(nèi)存時(shí),存儲(chǔ)管理要提供一個(gè)理要提供一個(gè)不小于不小于作業(yè)地址空間的連續(xù)存儲(chǔ)空間,當(dāng)空作業(yè)地址空間的連續(xù)存

18、儲(chǔ)空間,當(dāng)空間間不夠時(shí)不夠時(shí),常采用,常采用覆蓋覆蓋或或交換交換技術(shù)來擴(kuò)充內(nèi)存。技術(shù)來擴(kuò)充內(nèi)存。 幾種常用的實(shí)存儲(chǔ)管理方法:幾種常用的實(shí)存儲(chǔ)管理方法:NO:15 第四章第四章 操作系統(tǒng)操作系統(tǒng)4.3 4.3 存儲(chǔ)器管理存儲(chǔ)器管理(1) 分區(qū)分配分區(qū)分配 分區(qū)分配是滿足多道程序的最簡(jiǎn)單的存儲(chǔ)管理方案。它分區(qū)分配是滿足多道程序的最簡(jiǎn)單的存儲(chǔ)管理方案。它的基本思想是將內(nèi)存劃分成若干個(gè)連續(xù)區(qū)域,稱為分區(qū)。每的基本思想是將內(nèi)存劃分成若干個(gè)連續(xù)區(qū)域,稱為分區(qū)。每個(gè)分區(qū)分配給一個(gè)作業(yè),用個(gè)分區(qū)分配給一個(gè)作業(yè),用靜態(tài)重定位靜態(tài)重定位方式進(jìn)行地址轉(zhuǎn)換,方式進(jìn)行地址轉(zhuǎn)換,提供必要的保護(hù)手段,保證各作業(yè)互不干擾。在

19、分區(qū)的劃分提供必要的保護(hù)手段,保證各作業(yè)互不干擾。在分區(qū)的劃分方式上有方式上有固定分區(qū)固定分區(qū)和和可變分區(qū)可變分區(qū)兩種。兩種。 a) 固定分區(qū)分配固定分區(qū)分配:存儲(chǔ)器事先被劃分為若干個(gè):存儲(chǔ)器事先被劃分為若干個(gè)大小不大小不等等的分區(qū),系統(tǒng)為每個(gè)分區(qū)設(shè)置一個(gè)目錄,說明該分區(qū)的大的分區(qū),系統(tǒng)為每個(gè)分區(qū)設(shè)置一個(gè)目錄,說明該分區(qū)的大小、起始位置、分配狀況等信息,所有分區(qū)目錄構(gòu)成一個(gè)小、起始位置、分配狀況等信息,所有分區(qū)目錄構(gòu)成一個(gè)內(nèi)內(nèi)存狀態(tài)表存狀態(tài)表;用戶為每個(gè)作業(yè)規(guī)定所需的最大存儲(chǔ)量,存儲(chǔ)管;用戶為每個(gè)作業(yè)規(guī)定所需的最大存儲(chǔ)量,存儲(chǔ)管理程序負(fù)責(zé)找出一個(gè)足夠大的分區(qū)分配給此作業(yè)。理程序負(fù)責(zé)找出一個(gè)足夠

20、大的分區(qū)分配給此作業(yè)。NO:16 第四章第四章 操作系統(tǒng)操作系統(tǒng)4.3 4.3 存儲(chǔ)器管理存儲(chǔ)器管理:分區(qū)的分配和回收算法簡(jiǎn)單;:分區(qū)的分配和回收算法簡(jiǎn)單; 缺點(diǎn)缺點(diǎn): 內(nèi)存利用不充足,有內(nèi)存利用不充足,有“碎片碎片”,即作業(yè)所需空間和,即作業(yè)所需空間和分區(qū)大小不一定恰好相等。分區(qū)大小不一定恰好相等。區(qū)號(hào)區(qū)號(hào)容量容量起始位置起始位置狀態(tài)狀態(tài)18kB312kB已分配已分配232kB320kB已分配已分配332kB352kB未未 用用4120kB384kB未未 用用5520kB504kB已分配已分配O S8kB32kB32kB120kB520kB312kB320kB352kB384kB504kB1

21、024kBNO:17 第四章第四章 操作系統(tǒng)操作系統(tǒng)4.3 4.3 存儲(chǔ)器管理存儲(chǔ)器管理b) 可變分區(qū)分配:可變分區(qū)分配:又稱又稱動(dòng)態(tài)存儲(chǔ)管理動(dòng)態(tài)存儲(chǔ)管理,內(nèi)存不是預(yù)先劃分,內(nèi)存不是預(yù)先劃分好的,而是當(dāng)作業(yè)裝入時(shí),根據(jù)作業(yè)的需求和內(nèi)存空間的使好的,而是當(dāng)作業(yè)裝入時(shí),根據(jù)作業(yè)的需求和內(nèi)存空間的使用情況來決定是否分配。若有足夠的空間,則按需要分割一用情況來決定是否分配。若有足夠的空間,則按需要分割一部分分區(qū)給該進(jìn)程;否則令其等待主存空間。當(dāng)作業(yè)執(zhí)行完部分分區(qū)給該進(jìn)程;否則令其等待主存空間。當(dāng)作業(yè)執(zhí)行完后又釋放此空間。采用鏈結(jié)構(gòu)來構(gòu)造分區(qū)目錄。后又釋放此空間。采用鏈結(jié)構(gòu)來構(gòu)造分區(qū)目錄。 空間分配:空

22、間分配:由于多作業(yè)調(diào)入內(nèi)存運(yùn)行,有些作業(yè)運(yùn)行結(jié)由于多作業(yè)調(diào)入內(nèi)存運(yùn)行,有些作業(yè)運(yùn)行結(jié)束后釋放所占空間,內(nèi)存區(qū)呈現(xiàn)占用塊與空閑塊交叉存在的束后釋放所占空間,內(nèi)存區(qū)呈現(xiàn)占用塊與空閑塊交叉存在的狀態(tài)。狀態(tài)。 P8P6P4P3P1 占用塊占用塊空閑塊空閑塊 如果此時(shí)又有用戶作業(yè)進(jìn)入系統(tǒng),在系統(tǒng)必須在現(xiàn)有如果此時(shí)又有用戶作業(yè)進(jìn)入系統(tǒng),在系統(tǒng)必須在現(xiàn)有的空閑塊中為新作業(yè)分配空間。的空閑塊中為新作業(yè)分配空間。NO:18 第四章第四章 操作系統(tǒng)操作系統(tǒng)4.3 4.3 存儲(chǔ)器管理存儲(chǔ)器管理L linktagsizeR linktagUp linkL link和和 R link為鏈表左右指針,為鏈表左右指針, t

23、ag=0表示空閑塊,表示空閑塊, tag=1表表示占用塊,示占用塊, size 是本塊的大小,是本塊的大小,Up link 為本塊的起始地址為本塊的起始地址 當(dāng)空閑區(qū)分配出去以后,把狀態(tài)位當(dāng)空閑區(qū)分配出去以后,把狀態(tài)位tag由由“0”改為改為1,此,此時(shí)鏈表左右指針已無意義。時(shí)鏈表左右指針已無意義。 為了對(duì)空閑塊進(jìn)行有效的管理,在每塊開始與結(jié)束的幾為了對(duì)空閑塊進(jìn)行有效的管理,在每塊開始與結(jié)束的幾個(gè)字節(jié)中存放有關(guān)本塊狀態(tài)的信息,稱為個(gè)字節(jié)中存放有關(guān)本塊狀態(tài)的信息,稱為控制信息區(qū)控制信息區(qū),并把,并把所有的空閑塊鏈成一個(gè)雙向鏈表所有的空閑塊鏈成一個(gè)雙向鏈表NO:19 第四章第四章 操作系統(tǒng)操作系統(tǒng)

24、4.3 4.3 存儲(chǔ)器管理存儲(chǔ)器管理例:設(shè)某系統(tǒng)用戶區(qū)大小為例:設(shè)某系統(tǒng)用戶區(qū)大小為5000字節(jié),地址為字節(jié),地址為1 5000,初,初始狀態(tài)如下圖始狀態(tài)如下圖a所示,依次分配給所示,依次分配給5個(gè)作業(yè)個(gè)作業(yè)P1 P5, 作業(yè)占用作業(yè)占用區(qū)大小分別為區(qū)大小分別為1000,300,600,900,700。 P0 為余下的空閑為余下的空閑塊,各占用塊和空閑塊情況如下頁圖塊,各占用塊和空閑塊情況如下頁圖b和和c所示。所示。P1P2P3P4P5P01000 3006009007001500圖圖 aNO:20 第四章第四章 操作系統(tǒng)操作系統(tǒng)4.3 4.3 存儲(chǔ)器管理存儲(chǔ)器管理NO:21 第四章第四章 操

25、作系統(tǒng)操作系統(tǒng)4.3 4.3 存儲(chǔ)器管理存儲(chǔ)器管理右鄰居左鄰居P-1 PP+nn 空間回收空間回收 當(dāng)作業(yè)執(zhí)行完畢后,系統(tǒng)將空間當(dāng)作業(yè)執(zhí)行完畢后,系統(tǒng)將空間收回收回,插入到,插入到空空閑塊鏈表閑塊鏈表中,但插入時(shí)還要判斷中,但插入時(shí)還要判斷左右相鄰塊左右相鄰塊是否空閑,若是則是否空閑,若是則合并成一個(gè)較大的空間,它可通過每一塊中頭尾的控制信息區(qū)合并成一個(gè)較大的空間,它可通過每一塊中頭尾的控制信息區(qū)的的tag標(biāo)志來判斷。設(shè)當(dāng)前回收塊起始地址為標(biāo)志來判斷。設(shè)當(dāng)前回收塊起始地址為p,大小為大小為n,則應(yīng)判則應(yīng)判斷它左鄰居斷它左鄰居p-1和右鄰居和右鄰居p+n的的tag是否為是否為0,若不為,若不為0

26、則將當(dāng)前回則將當(dāng)前回收塊插入到空閑塊鏈表中。若出現(xiàn)有收塊插入到空閑塊鏈表中。若出現(xiàn)有tag為為0的相鄰塊,則應(yīng)修的相鄰塊,則應(yīng)修改原空閑塊的大小,將本回收塊和相鄰塊合并。如下圖。改原空閑塊的大小,將本回收塊和相鄰塊合并。如下圖。NO:22 第四章第四章 操作系統(tǒng)操作系統(tǒng)4.3 4.3 存儲(chǔ)器管理存儲(chǔ)器管理在空間分配例題中,當(dāng)作業(yè)在空間分配例題中,當(dāng)作業(yè)P4完成后,應(yīng)回收完成后,應(yīng)回收P4分區(qū)到空閑塊分區(qū)到空閑塊鏈表中,見圖鏈表中,見圖a;當(dāng);當(dāng)P5作業(yè)完成后,回收使由于其左右鄰居均作業(yè)完成后,回收使由于其左右鄰居均為空閑塊,因此應(yīng)進(jìn)行合并,見圖為空閑塊,因此應(yīng)進(jìn)行合并,見圖b所示。所示。NO:

27、23 第四章第四章 操作系統(tǒng)操作系統(tǒng)4.3 4.3 存儲(chǔ)器管理存儲(chǔ)器管理空閑區(qū)分配算法:空閑區(qū)分配算法:由于空閑鏈表中各空閑塊的大小不同,由于空閑鏈表中各空閑塊的大小不同,在分配是有一個(gè)在分配是有一個(gè)如何分配如何分配的問題。通常有三種分配策略。的問題。通常有三種分配策略。 首次適應(yīng)法首次適應(yīng)法: 從空閑塊鏈表的表頭指針從空閑塊鏈表的表頭指針av開始,將找到開始,將找到的第一個(gè)大小的第一個(gè)大小不小于不小于所需大小所需大小n的空閑塊,將其一部分分配給的空閑塊,將其一部分分配給用戶。這種空閑塊鏈表既不按結(jié)點(diǎn)的初始地址有序排列,也用戶。這種空閑塊鏈表既不按結(jié)點(diǎn)的初始地址有序排列,也不按結(jié)點(diǎn)大小有序排列

28、,在回收時(shí),只要將釋放的空閑塊插不按結(jié)點(diǎn)大小有序排列,在回收時(shí),只要將釋放的空閑塊插入到鏈表的表頭即可。入到鏈表的表頭即可。 最佳適應(yīng)法:最佳適應(yīng)法:將空閑塊鏈表中一個(gè)不小于將空閑塊鏈表中一個(gè)不小于n而最接近而最接近n的的空閑塊的一部分分配給用戶。要求系統(tǒng)在內(nèi)存分配前首先將空閑塊的一部分分配給用戶。要求系統(tǒng)在內(nèi)存分配前首先將空閑塊鏈表中的結(jié)點(diǎn)按空閑塊大小空閑塊鏈表中的結(jié)點(diǎn)按空閑塊大小自小到大有序排列自小到大有序排列。 NO:24 第四章第四章 操作系統(tǒng)操作系統(tǒng)4.3 4.3 存儲(chǔ)器管理存儲(chǔ)器管理 最差適應(yīng)法最差適應(yīng)法:將空閑塊鏈表中:將空閑塊鏈表中不小于不小于n且且是鏈表中是鏈表中最大最大空空

29、閑塊的一部分分配給用戶,并將剩余部分作為一個(gè)新結(jié)點(diǎn)插閑塊的一部分分配給用戶,并將剩余部分作為一個(gè)新結(jié)點(diǎn)插入到鏈表的相應(yīng)位置。要求空閑塊鏈表的結(jié)點(diǎn)按空閑塊大小入到鏈表的相應(yīng)位置。要求空閑塊鏈表的結(jié)點(diǎn)按空閑塊大小由大到小由大到小排列,每次分配從鏈表中刪除第一個(gè)結(jié)點(diǎn),將其一排列,每次分配從鏈表中刪除第一個(gè)結(jié)點(diǎn),將其一部分分配給用戶,剩余部分作為一個(gè)新結(jié)點(diǎn)插入到鏈表的相部分分配給用戶,剩余部分作為一個(gè)新結(jié)點(diǎn)插入到鏈表的相應(yīng)位置。應(yīng)位置。NO:25 第四章第四章 操作系統(tǒng)操作系統(tǒng)4.3 4.3 存儲(chǔ)器管理存儲(chǔ)器管理 最佳適應(yīng)法最佳適應(yīng)法適用于請(qǐng)求分配內(nèi)存大小范圍較廣的系統(tǒng);適用于請(qǐng)求分配內(nèi)存大小范圍較廣

30、的系統(tǒng);最差適最差適應(yīng)算法應(yīng)算法每次都從內(nèi)存中取最大的結(jié)點(diǎn)進(jìn)行分配,從而使鏈表中每次都從內(nèi)存中取最大的結(jié)點(diǎn)進(jìn)行分配,從而使鏈表中結(jié)點(diǎn)大小趨于均勻,適用于請(qǐng)求分配內(nèi)存較均勻的系統(tǒng);結(jié)點(diǎn)大小趨于均勻,適用于請(qǐng)求分配內(nèi)存較均勻的系統(tǒng);首次首次適應(yīng)法適應(yīng)法通常適用于實(shí)現(xiàn)不能掌握運(yùn)行時(shí)可能出現(xiàn)的分配情況。通常適用于實(shí)現(xiàn)不能掌握運(yùn)行時(shí)可能出現(xiàn)的分配情況。 從從時(shí)間時(shí)間上比較,上比較,首次適應(yīng)法首次適應(yīng)法分配時(shí)需查詢空閑塊鏈表,但分配時(shí)需查詢空閑塊鏈表,但回收時(shí)只要插入到表頭即可;回收時(shí)只要插入到表頭即可;最差適應(yīng)算法最差適應(yīng)算法分配時(shí)不需查詢鏈分配時(shí)不需查詢鏈表,而回收時(shí)要將剩余部分插入鏈表適當(dāng)位置;表,

31、而回收時(shí)要將剩余部分插入鏈表適當(dāng)位置;最佳適應(yīng)法最佳適應(yīng)法無無論分配和回收,均需查找鏈表,最費(fèi)時(shí)間。論分配和回收,均需查找鏈表,最費(fèi)時(shí)間。NO:26 第四章第四章 操作系統(tǒng)操作系統(tǒng)4.3 4.3 存儲(chǔ)器管理存儲(chǔ)器管理(2) 可重定位分區(qū)分配可重定位分區(qū)分配 a) 碎片問題和存儲(chǔ)區(qū)的緊縮碎片問題和存儲(chǔ)區(qū)的緊縮:在可變分區(qū)分配中,內(nèi)存區(qū):在可變分區(qū)分配中,內(nèi)存區(qū)由于各作業(yè)的多次請(qǐng)求和釋放出現(xiàn)大量的由于各作業(yè)的多次請(qǐng)求和釋放出現(xiàn)大量的碎片碎片,浪費(fèi)了,浪費(fèi)了大量的內(nèi)存空間。為了把分散的碎片集中起來成為一個(gè)大量的內(nèi)存空間。為了把分散的碎片集中起來成為一個(gè)大分區(qū),需大分區(qū),需移動(dòng)移動(dòng)各用戶程序,使它們集

32、中在主存的一端,各用戶程序,使它們集中在主存的一端,稱為存儲(chǔ)器的稱為存儲(chǔ)器的“緊縮緊縮”。 b) 程序浮動(dòng)和重定位程序浮動(dòng)和重定位:將主存中用戶程序進(jìn)行移動(dòng)稱為:將主存中用戶程序進(jìn)行移動(dòng)稱為程序浮動(dòng)程序浮動(dòng);程序浮動(dòng)需對(duì)程序中所有與地址有關(guān)的項(xiàng)重;程序浮動(dòng)需對(duì)程序中所有與地址有關(guān)的項(xiàng)重新進(jìn)行定位,此工作是在程序運(yùn)行過程中進(jìn)行的,也就新進(jìn)行定位,此工作是在程序運(yùn)行過程中進(jìn)行的,也就是在是在CPU每次訪問內(nèi)存單元前進(jìn)行的,又稱每次訪問內(nèi)存單元前進(jìn)行的,又稱動(dòng)態(tài)重定位動(dòng)態(tài)重定位。經(jīng)過一段時(shí)間的分配回收后,內(nèi)存中存經(jīng)過一段時(shí)間的分配回收后,內(nèi)存中存在很多很小的空閑塊。它們每一個(gè)都很在很多很小的空閑塊。

33、它們每一個(gè)都很小,不足以滿足分配要求;但其總和滿小,不足以滿足分配要求;但其總和滿足分配要求。這些空閑塊被稱為足分配要求。這些空閑塊被稱為碎片碎片。NO:27 第四章第四章 操作系統(tǒng)操作系統(tǒng)4.3 4.3 存儲(chǔ)器管理存儲(chǔ)器管理動(dòng)態(tài)重定位實(shí)現(xiàn)過程:動(dòng)態(tài)重定位實(shí)現(xiàn)過程: 先將用戶作業(yè)的目標(biāo)程序先將用戶作業(yè)的目標(biāo)程序原封不動(dòng)原封不動(dòng)的裝入主存某一分區(qū),的裝入主存某一分區(qū),即用戶程序中與地址有關(guān)的各項(xiàng)均保持原來的即用戶程序中與地址有關(guān)的各項(xiàng)均保持原來的相對(duì)地址相對(duì)地址,例如,例如下頁圖下頁圖 b中中 Load 1,1000 指令(指令(1000為相對(duì)地址)。為相對(duì)地址)。 當(dāng)該用戶程序被調(diào)度到處理器上

34、執(zhí)行時(shí),操作系統(tǒng)自動(dòng)當(dāng)該用戶程序被調(diào)度到處理器上執(zhí)行時(shí),操作系統(tǒng)自動(dòng)將該用戶將該用戶作業(yè)區(qū)的起始地址作業(yè)區(qū)的起始地址(圖(圖b中的中的10023)減去用戶目標(biāo)程)減去用戶目標(biāo)程序的相對(duì)起始地址(圖序的相對(duì)起始地址(圖a 為為0),然后將減得的值裝入定位寄),然后將減得的值裝入定位寄存器中。存器中。 當(dāng)處理器要訪問主存時(shí),操作系統(tǒng)將程序中的當(dāng)處理器要訪問主存時(shí),操作系統(tǒng)將程序中的相對(duì)地相對(duì)地址址與與定位寄存器定位寄存器中的內(nèi)容相加,得到主存的絕對(duì)地址去訪問數(shù)中的內(nèi)容相加,得到主存的絕對(duì)地址去訪問數(shù)據(jù),如圖據(jù),如圖b中絕對(duì)地址為中絕對(duì)地址為11023。NO:28 第四章第四章 操作系統(tǒng)操作系統(tǒng)4.

35、3 4.3 存儲(chǔ)器管理存儲(chǔ)器管理NO:29 第四章第四章 操作系統(tǒng)操作系統(tǒng)4.3 4.3 存儲(chǔ)器管理存儲(chǔ)器管理 動(dòng)態(tài)重定位時(shí)程序在內(nèi)存中任意浮動(dòng)而不影響其正確的動(dòng)態(tài)重定位時(shí)程序在內(nèi)存中任意浮動(dòng)而不影響其正確的執(zhí)行,容易進(jìn)行存儲(chǔ)器緊縮;但需硬件支持,包括定位寄存執(zhí)行,容易進(jìn)行存儲(chǔ)器緊縮;但需硬件支持,包括定位寄存器、加法器等。器、加法器等。存儲(chǔ)器緊縮的兩種解決方法存儲(chǔ)器緊縮的兩種解決方法: 在某個(gè)分區(qū)釋放后在某個(gè)分區(qū)釋放后立即緊縮立即緊縮,這樣系統(tǒng)中始終存在一個(gè),這樣系統(tǒng)中始終存在一個(gè)連續(xù)的自由分區(qū)而無碎片。這對(duì)于分區(qū)的連續(xù)的自由分區(qū)而無碎片。這對(duì)于分區(qū)的分配分配管理十分管理十分容易容易,但緊縮

36、工作進(jìn)行頻繁,花費(fèi)時(shí)間較多。但緊縮工作進(jìn)行頻繁,花費(fèi)時(shí)間較多。 在請(qǐng)求分配分區(qū)在請(qǐng)求分配分區(qū)找不到找不到足夠大的自由分區(qū)時(shí)再進(jìn)行緊縮。足夠大的自由分區(qū)時(shí)再進(jìn)行緊縮。這樣緊縮的次數(shù)大大減少,但分配管理較復(fù)雜。這樣緊縮的次數(shù)大大減少,但分配管理較復(fù)雜。NO:30 第四章第四章 操作系統(tǒng)操作系統(tǒng)4.3 4.3 存儲(chǔ)器管理存儲(chǔ)器管理(3) 覆蓋技術(shù)覆蓋技術(shù) 當(dāng)用戶作業(yè)的地址空間大于主存可用空間時(shí),各作業(yè)就當(dāng)用戶作業(yè)的地址空間大于主存可用空間時(shí),各作業(yè)就無法運(yùn)行。為了能在較小的空間中運(yùn)行較大的作業(yè),許多機(jī)無法運(yùn)行。為了能在較小的空間中運(yùn)行較大的作業(yè),許多機(jī)器采用了器采用了覆蓋技術(shù)覆蓋技術(shù)。 要進(jìn)行覆蓋的

37、作業(yè)必須滿足要進(jìn)行覆蓋的作業(yè)必須滿足樹狀樹狀的模塊結(jié)構(gòu),如圖的模塊結(jié)構(gòu),如圖a所示,所示,其中其中根部根部為為常駐內(nèi)存常駐內(nèi)存部分,稱為根段,其余部分均為部分,稱為根段,其余部分均為覆蓋部覆蓋部分分,同層模塊為一個(gè)覆蓋段,在,同層模塊為一個(gè)覆蓋段,在同一時(shí)間同一時(shí)間只有只有其中一個(gè)其中一個(gè)模塊模塊被調(diào)用,因此它們可以共享一個(gè)內(nèi)存空間,其大小按本覆蓋被調(diào)用,因此它們可以共享一個(gè)內(nèi)存空間,其大小按本覆蓋段中最大的模塊分配。如圖段中最大的模塊分配。如圖b所示所示NO:31 第四章第四章 操作系統(tǒng)操作系統(tǒng)4.3 4.3 存儲(chǔ)器管理存儲(chǔ)器管理NO:32 第四章第四章 操作系統(tǒng)操作系統(tǒng)4.3 4.3 存儲(chǔ)

38、器管理存儲(chǔ)器管理(4) 交換技術(shù)交換技術(shù) 交換技術(shù)交換技術(shù)同樣是為了解決同樣是為了解決內(nèi)存不足內(nèi)存不足的矛盾,它在分時(shí)、實(shí)的矛盾,它在分時(shí)、實(shí)時(shí)及批處理系統(tǒng)中均有應(yīng)用。它的基本思想是只允許一個(gè)或時(shí)及批處理系統(tǒng)中均有應(yīng)用。它的基本思想是只允許一個(gè)或幾個(gè)用戶作業(yè)保留在主存中。作業(yè)在出讓幾個(gè)用戶作業(yè)保留在主存中。作業(yè)在出讓CPU的同時(shí)還要釋的同時(shí)還要釋放出占有的主存空間,以文件形式保存在外存上。放出占有的主存空間,以文件形式保存在外存上。 覆蓋和交換技術(shù)作為擴(kuò)充內(nèi)存的方法,通常與分區(qū)分配方覆蓋和交換技術(shù)作為擴(kuò)充內(nèi)存的方法,通常與分區(qū)分配方法結(jié)合使用。但仍存在不足,例如覆蓋技術(shù)要求用戶按模塊法結(jié)合使用

39、。但仍存在不足,例如覆蓋技術(shù)要求用戶按模塊化結(jié)構(gòu)編制程序,并要寫出覆蓋文件;交換技術(shù)是以整個(gè)作化結(jié)構(gòu)編制程序,并要寫出覆蓋文件;交換技術(shù)是以整個(gè)作業(yè)為單位進(jìn)行內(nèi)外存交換,當(dāng)作業(yè)較大時(shí)花費(fèi)的代價(jià)較大。業(yè)為單位進(jìn)行內(nèi)外存交換,當(dāng)作業(yè)較大時(shí)花費(fèi)的代價(jià)較大。由此引發(fā)了由此引發(fā)了虛擬存儲(chǔ)技術(shù)虛擬存儲(chǔ)技術(shù)的出現(xiàn)。的出現(xiàn)。NO:33 第四章第四章 操作系統(tǒng)操作系統(tǒng)4.3 4.3 存儲(chǔ)器管理存儲(chǔ)器管理3 虛擬存儲(chǔ)管理虛擬存儲(chǔ)管理 在前述的各種分區(qū)管理技術(shù)中,其共同的特點(diǎn)是作業(yè)在前述的各種分區(qū)管理技術(shù)中,其共同的特點(diǎn)是作業(yè)運(yùn)行時(shí)整個(gè)作業(yè)的地址空間必須運(yùn)行時(shí)整個(gè)作業(yè)的地址空間必須全部裝入全部裝入內(nèi)存的一個(gè)連續(xù)空內(nèi)

40、存的一個(gè)連續(xù)空間中,反之作業(yè)就無法運(yùn)行。這類存儲(chǔ)管理技術(shù)統(tǒng)稱為間中,反之作業(yè)就無法運(yùn)行。這類存儲(chǔ)管理技術(shù)統(tǒng)稱為“實(shí)實(shí)存存”。 “虛存虛存”(虛擬存儲(chǔ)管理)(虛擬存儲(chǔ)管理)技術(shù)是用技術(shù)是用軟件方法軟件方法來擴(kuò)充來擴(kuò)充存儲(chǔ)器,虛擬存儲(chǔ)器的概念是指一種存儲(chǔ)器,虛擬存儲(chǔ)器的概念是指一種實(shí)際上并不存在實(shí)際上并不存在的虛假的虛假存儲(chǔ)器,它能提供給用戶一個(gè)存儲(chǔ)器,它能提供給用戶一個(gè)比實(shí)際內(nèi)存大的多比實(shí)際內(nèi)存大的多的存儲(chǔ)空間,的存儲(chǔ)空間,使用戶在編制程序時(shí)可以不必考慮存儲(chǔ)空間的限制。使用戶在編制程序時(shí)可以不必考慮存儲(chǔ)空間的限制。NO:34 第四章第四章 操作系統(tǒng)操作系統(tǒng)4.3 4.3 存儲(chǔ)器管理存儲(chǔ)器管理基本

41、概念:基本概念: 虛擬地址虛擬地址:程序訪問的邏輯地址。:程序訪問的邏輯地址。 實(shí)在地址實(shí)在地址:處理器可直接訪問的主存地址。:處理器可直接訪問的主存地址。 虛擬地址空間虛擬地址空間:虛擬地址的集合。:虛擬地址的集合。 實(shí)在地址空間實(shí)在地址空間:計(jì)算機(jī)主存。:計(jì)算機(jī)主存。注:注: 程序和數(shù)據(jù)所在的虛擬地址必須放入主存的實(shí)在地程序和數(shù)據(jù)所在的虛擬地址必須放入主存的實(shí)在地址中才能運(yùn)行。因此要建立虛擬地址和實(shí)在地址的對(duì)址中才能運(yùn)行。因此要建立虛擬地址和實(shí)在地址的對(duì)應(yīng)關(guān)系,這種地址轉(zhuǎn)換由應(yīng)關(guān)系,這種地址轉(zhuǎn)換由動(dòng)態(tài)地址映像機(jī)構(gòu)動(dòng)態(tài)地址映像機(jī)構(gòu)來完成。來完成。NO:35 第四章第四章 操作系統(tǒng)操作系統(tǒng)4.

42、3 4.3 存儲(chǔ)器管理存儲(chǔ)器管理虛擬的前提虛擬的前提 大多數(shù)程序運(yùn)行時(shí),在大多數(shù)程序運(yùn)行時(shí),在一段時(shí)間一段時(shí)間內(nèi)僅使用它的程序編碼的內(nèi)僅使用它的程序編碼的一部分一部分,即并不需要在全部時(shí)間內(nèi)將該程序的全部指令和數(shù)據(jù),即并不需要在全部時(shí)間內(nèi)將該程序的全部指令和數(shù)據(jù)都放在主存中,所以,程序的地址空間都放在主存中,所以,程序的地址空間部分裝入部分裝入主存中,它還主存中,它還是能正確運(yùn)行。是能正確運(yùn)行。 那么當(dāng)一個(gè)作業(yè)程序的地址空間比主存可用空間大時(shí),操那么當(dāng)一個(gè)作業(yè)程序的地址空間比主存可用空間大時(shí),操作系統(tǒng)可將這個(gè)程序的地址空間的一部分放入內(nèi)存,作系統(tǒng)可將這個(gè)程序的地址空間的一部分放入內(nèi)存,其余其余

43、部分部分放在放在輔存輔存中。當(dāng)所訪問的信息不在主存時(shí),再由操作系統(tǒng)負(fù)責(zé)中。當(dāng)所訪問的信息不在主存時(shí),再由操作系統(tǒng)負(fù)責(zé)調(diào)入所需要的部分。這樣計(jì)算機(jī)系統(tǒng)好像為用戶提供了一個(gè)其調(diào)入所需要的部分。這樣計(jì)算機(jī)系統(tǒng)好像為用戶提供了一個(gè)其存儲(chǔ)容量比實(shí)際主存大得多的存儲(chǔ)器。存儲(chǔ)容量比實(shí)際主存大得多的存儲(chǔ)器。 NO:36 第四章第四章 操作系統(tǒng)操作系統(tǒng)4.3 4.3 存儲(chǔ)器管理存儲(chǔ)器管理實(shí)際上用戶的虛擬地址空間并不可能是無限大,它受到實(shí)際上用戶的虛擬地址空間并不可能是無限大,它受到以下以下兩個(gè)條件兩個(gè)條件制約:制約: 1. 指令中指令中地址場(chǎng)長(zhǎng)度地址場(chǎng)長(zhǎng)度的限制。的限制。 2. 外存儲(chǔ)器外存儲(chǔ)器容量的限制容量的

44、限制。虛擬存儲(chǔ)管理技術(shù)需要解決的問題:虛擬存儲(chǔ)管理技術(shù)需要解決的問題: (1)什么時(shí)候什么時(shí)候把哪部分程序把哪部分程序裝入裝入內(nèi)存。內(nèi)存。 (2)放在內(nèi)存)放在內(nèi)存什么位置什么位置。 (3)當(dāng)內(nèi)存空間不足時(shí),把哪部分程序)當(dāng)內(nèi)存空間不足時(shí),把哪部分程序淘汰淘汰出內(nèi)存。出內(nèi)存。常用的虛擬存儲(chǔ)技術(shù)有:常用的虛擬存儲(chǔ)技術(shù)有:分頁存儲(chǔ)管理分頁存儲(chǔ)管理、分段存儲(chǔ)管理分段存儲(chǔ)管理、段頁存儲(chǔ)管理段頁存儲(chǔ)管理。NO:37 第四章第四章 操作系統(tǒng)操作系統(tǒng)4.3 4.3 存儲(chǔ)器管理存儲(chǔ)器管理(1) 分頁存儲(chǔ)管理分頁存儲(chǔ)管理 在分區(qū)存儲(chǔ)管理中,不論采用什么辦法都會(huì)出現(xiàn)碎片問題在分區(qū)存儲(chǔ)管理中,不論采用什么辦法都會(huì)出

45、現(xiàn)碎片問題,從而降低了內(nèi)存的利用率。雖然采用壓縮存儲(chǔ)區(qū)的方法可,從而降低了內(nèi)存的利用率。雖然采用壓縮存儲(chǔ)區(qū)的方法可以解決碎片問題,但系統(tǒng)開銷太大,而無實(shí)用價(jià)值,必須尋以解決碎片問題,但系統(tǒng)開銷太大,而無實(shí)用價(jià)值,必須尋求新的技術(shù)來解決這一問題,于是分頁技術(shù)產(chǎn)生了。求新的技術(shù)來解決這一問題,于是分頁技術(shù)產(chǎn)生了。NO:38 第四章第四章 操作系統(tǒng)操作系統(tǒng)4.3 4.3 存儲(chǔ)器管理存儲(chǔ)器管理a) 分頁管理的基本概念分頁管理的基本概念 頁面、頁架(塊)頁面、頁架(塊) 在分頁存儲(chǔ)管理中,把每個(gè)作業(yè)的地址空間分成一些在分頁存儲(chǔ)管理中,把每個(gè)作業(yè)的地址空間分成一些大大小相等小相等的片,稱為的片,稱為“頁頁

46、”。同樣,把內(nèi)存的。同樣,把內(nèi)存的存儲(chǔ)空間存儲(chǔ)空間也分成也分成大小與頁相同的片,稱為大小與頁相同的片,稱為“頁架頁架”或者或者“塊塊”。系統(tǒng)以。系統(tǒng)以頁架頁架為單位為單位把內(nèi)存分配給各作業(yè),每個(gè)作業(yè)占有的內(nèi)存無須連續(xù),把內(nèi)存分配給各作業(yè),每個(gè)作業(yè)占有的內(nèi)存無須連續(xù),而且作業(yè)的所有頁面也不一定同時(shí)裝入內(nèi)存。而且作業(yè)的所有頁面也不一定同時(shí)裝入內(nèi)存。NO:39 第四章第四章 操作系統(tǒng)操作系統(tǒng)4.3 4.3 存儲(chǔ)器管理存儲(chǔ)器管理 假設(shè)系統(tǒng)選擇假設(shè)系統(tǒng)選擇頁頁的的大小大小為為1k字節(jié)字節(jié),則一個(gè),則一個(gè)3k字節(jié)的作字節(jié)的作業(yè)業(yè)將被劃分為將被劃分為3頁頁。此時(shí)主存有。此時(shí)主存有5個(gè)空白塊個(gè)空白塊(塊(塊2

47、、3、8、9、11)。因此,當(dāng)作業(yè)的三塊裝入內(nèi)存時(shí)可以選擇任意)。因此,當(dāng)作業(yè)的三塊裝入內(nèi)存時(shí)可以選擇任意3個(gè)空個(gè)空白塊。圖中假定第白塊。圖中假定第0頁裝入主存的塊頁裝入主存的塊2中,第中,第1頁裝入塊頁裝入塊3中,中,第第2 頁裝入塊頁裝入塊8中(主存中塊中(主存中塊9和塊和塊11空閑)??臻e)。NO:40 第四章第四章 操作系統(tǒng)操作系統(tǒng)4.3 4.3 存儲(chǔ)器管理存儲(chǔ)器管理NO:41 第四章第四章 操作系統(tǒng)操作系統(tǒng)4.3 4.3 存儲(chǔ)器管理存儲(chǔ)器管理 分頁系統(tǒng)中的地址結(jié)構(gòu)分頁系統(tǒng)中的地址結(jié)構(gòu) 在分頁系統(tǒng)中,每個(gè)虛擬地址用一個(gè)數(shù)對(duì)在分頁系統(tǒng)中,每個(gè)虛擬地址用一個(gè)數(shù)對(duì)(p,d)來表示,來表示,其

48、中其中p為為頁號(hào)頁號(hào),d是該虛擬地址在頁面號(hào)為是該虛擬地址在頁面號(hào)為p中的中的相對(duì)地址相對(duì)地址,稱,稱為頁內(nèi)地址。為計(jì)算方便,規(guī)定頁的大小為為頁內(nèi)地址。為計(jì)算方便,規(guī)定頁的大小為2的冪的冪。 對(duì)某特定機(jī)器,其地址結(jié)構(gòu)是一定的。若給定一個(gè)邏對(duì)某特定機(jī)器,其地址結(jié)構(gòu)是一定的。若給定一個(gè)邏輯地址空間中的地址為輯地址空間中的地址為A,頁面的大頁面的大小為小為L(zhǎng),則頁號(hào)則頁號(hào)P和頁和頁內(nèi)地址內(nèi)地址d可按下式求得:可按下式求得: APINTLdA MOD L頁號(hào)頁號(hào) 頁內(nèi)地址頁內(nèi)地址NO:42 第四章第四章 操作系統(tǒng)操作系統(tǒng)4.3 4.3 存儲(chǔ)器管理存儲(chǔ)器管理規(guī)定頁的大小為規(guī)定頁的大小為2的冪的冪 如果每

49、訪問一個(gè)主存單元都要做一次除法運(yùn)算以得到頁號(hào)如果每訪問一個(gè)主存單元都要做一次除法運(yùn)算以得到頁號(hào)p和頁內(nèi)地址和頁內(nèi)地址d,效率太低。,效率太低。 當(dāng)頁大小為當(dāng)頁大小為2的冪后,可用簡(jiǎn)單的右移來代替除法,使算的冪后,可用簡(jiǎn)單的右移來代替除法,使算法簡(jiǎn)化。法簡(jiǎn)化。 例如:頁大小為例如:頁大小為1KB,則邏輯地址,則邏輯地址 0 x23A1的頁號(hào)和頁內(nèi)的頁號(hào)和頁內(nèi)地址為:地址為: 0010 00 | 11 1010 0001 0010 00 | 11 1010 0001 p dp d 頁號(hào)頁號(hào) p = 0 x8p = 0 x8, 頁內(nèi)地址頁內(nèi)地址 d = 0 x3A1d = 0 x3A1NO:43 第

50、四章第四章 操作系統(tǒng)操作系統(tǒng)4.3 4.3 存儲(chǔ)器管理存儲(chǔ)器管理頁表與頁表地址寄存器頁表與頁表地址寄存器 頁表頁表:將頁號(hào)和頁內(nèi)地址轉(zhuǎn)換成內(nèi)存地址,必須要有一個(gè):將頁號(hào)和頁內(nèi)地址轉(zhuǎn)換成內(nèi)存地址,必須要有一個(gè)數(shù)據(jù)結(jié)構(gòu),用來登記頁號(hào)和頁架號(hào)的對(duì)應(yīng)關(guān)系和有關(guān)信息,數(shù)據(jù)結(jié)構(gòu),用來登記頁號(hào)和頁架號(hào)的對(duì)應(yīng)關(guān)系和有關(guān)信息,稱為稱為“頁表頁表” 。頁表中應(yīng)包括:。頁表中應(yīng)包括:頁號(hào)頁號(hào)、頁架號(hào)頁架號(hào)、狀態(tài)狀態(tài)。 頁號(hào)頁號(hào):登記程序地址空間的頁號(hào),每個(gè)作業(yè)頁號(hào)從零開始。:登記程序地址空間的頁號(hào),每個(gè)作業(yè)頁號(hào)從零開始。 頁架號(hào)頁架號(hào):該頁面在內(nèi)存中的頁架號(hào)。:該頁面在內(nèi)存中的頁架號(hào)。 狀態(tài)狀態(tài):表示該頁是否在內(nèi)存

51、中,用:表示該頁是否在內(nèi)存中,用“0”表示該頁不在內(nèi)存,表示該頁不在內(nèi)存,用用“1”表示在內(nèi)存中。表示在內(nèi)存中。NO:44 第四章第四章 操作系統(tǒng)操作系統(tǒng)4.3 4.3 存儲(chǔ)器管理存儲(chǔ)器管理 當(dāng)某進(jìn)程被調(diào)度到處理器上運(yùn)行時(shí),操作系統(tǒng)自動(dòng)將當(dāng)某進(jìn)程被調(diào)度到處理器上運(yùn)行時(shí),操作系統(tǒng)自動(dòng)將該進(jìn)程的頁表起始地址(通常位于該進(jìn)程的該進(jìn)程的頁表起始地址(通常位于該進(jìn)程的PCB中)裝入中)裝入頁頁表地址寄存器表地址寄存器中,當(dāng)中,當(dāng)CPU執(zhí)行一條訪問內(nèi)存指令時(shí),執(zhí)行一條訪問內(nèi)存指令時(shí),地址變地址變換機(jī)構(gòu)換機(jī)構(gòu)把邏輯地址分解成把邏輯地址分解成 p 和和 d 兩部分,兩部分, p為為頁號(hào)頁號(hào),d為為頁頁內(nèi)地址內(nèi)

52、地址。按照。按照p在頁表中找到相應(yīng)的頁架號(hào)和狀態(tài),在頁表中找到相應(yīng)的頁架號(hào)和狀態(tài),若狀態(tài)若狀態(tài)為為“1”,將頁架號(hào)與頁內(nèi)地址合并為內(nèi)存實(shí)在地址。將頁架號(hào)與頁內(nèi)地址合并為內(nèi)存實(shí)在地址。若狀態(tài)若狀態(tài)為為“0”,表明此頁不在內(nèi)存中,系統(tǒng)將產(chǎn)生中斷,停止執(zhí)行表明此頁不在內(nèi)存中,系統(tǒng)將產(chǎn)生中斷,停止執(zhí)行用戶程序,由存儲(chǔ)管理模塊將該頁調(diào)入內(nèi)存。用戶程序,由存儲(chǔ)管理模塊將該頁調(diào)入內(nèi)存。NO:45 第四章第四章 操作系統(tǒng)操作系統(tǒng)4.3 4.3 存儲(chǔ)器管理存儲(chǔ)器管理例:設(shè)頁長(zhǎng)為例:設(shè)頁長(zhǎng)為1 1K K,程序地址字長(zhǎng)為程序地址字長(zhǎng)為1616位,用戶程序空間和頁表位,用戶程序空間和頁表如圖如圖。NO:46 第四章第

53、四章 操作系統(tǒng)操作系統(tǒng)4.3 4.3 存儲(chǔ)器管理存儲(chǔ)器管理計(jì)算時(shí)要注意:計(jì)算時(shí)要注意: 若給出的地址字為若給出的地址字為16進(jìn)制進(jìn)制,則將其轉(zhuǎn)換為二進(jìn)制,然,則將其轉(zhuǎn)換為二進(jìn)制,然后,根據(jù)頁長(zhǎng)及程序地址字的長(zhǎng)度,分別取出程序地址字的后,根據(jù)頁長(zhǎng)及程序地址字的長(zhǎng)度,分別取出程序地址字的高幾位和低幾位就得到頁號(hào)及頁內(nèi)地址。如頁長(zhǎng)為高幾位和低幾位就得到頁號(hào)及頁內(nèi)地址。如頁長(zhǎng)為2K,程程序地址字為序地址字為16位,則高位,則高5位為頁號(hào),低位為頁號(hào),低11位為頁內(nèi)地址。位為頁內(nèi)地址。 若給出的地址字為若給出的地址字為10進(jìn)制進(jìn)制,則用公式:,則用公式: 程序地址字程序地址字/頁長(zhǎng)頁長(zhǎng) 商為頁號(hào),余數(shù)為

54、頁內(nèi)地址。商為頁號(hào),余數(shù)為頁內(nèi)地址。 如程序地址為如程序地址為8457, 頁長(zhǎng)為頁長(zhǎng)為4KB,則則8457/4096可得:可得:商為商為2,余數(shù)為,余數(shù)為256。NO:47 第四章第四章 操作系統(tǒng)操作系統(tǒng)4.3 4.3 存儲(chǔ)器管理存儲(chǔ)器管理 例,假如某系統(tǒng)頁面大小為(例,假如某系統(tǒng)頁面大小為(512)10字節(jié),即相當(dāng)于字節(jié),即相當(dāng)于(1000)8字節(jié),若邏輯地址為字節(jié),若邏輯地址為(1320)8,就可以方便的分,就可以方便的分解得到解得到p=1, d=320. 由由p及頁表起始地址及頁表起始地址b,找到相應(yīng)的頁,找到相應(yīng)的頁,將該頁對(duì)應(yīng)的將該頁對(duì)應(yīng)的頁架號(hào)頁架號(hào)10送入地址變換機(jī)構(gòu)送入地址變換

55、機(jī)構(gòu)p, 與頁內(nèi)地址與頁內(nèi)地址d合并合并成內(nèi)存實(shí)在地址號(hào)成內(nèi)存實(shí)在地址號(hào)10320。NO:48 第四章第四章 操作系統(tǒng)操作系統(tǒng)4.3 4.3 存儲(chǔ)器管理存儲(chǔ)器管理NO:49 第四章第四章 操作系統(tǒng)操作系統(tǒng)4.3 4.3 存儲(chǔ)器管理存儲(chǔ)器管理 上述是上述是直接映象直接映象的頁地址轉(zhuǎn)換,由于的頁地址轉(zhuǎn)換,由于CPU要訪問二次要訪問二次主存才能存取到所需數(shù)據(jù),缺點(diǎn)是主存才能存取到所需數(shù)據(jù),缺點(diǎn)是速度速度慢。慢。 為提高速度,還有為提高速度,還有相關(guān)映象相關(guān)映象頁地址轉(zhuǎn)換以及頁地址轉(zhuǎn)換以及相關(guān)、直相關(guān)、直接相結(jié)合的接相結(jié)合的頁地址轉(zhuǎn)換。頁地址轉(zhuǎn)換。相關(guān)映象頁地址轉(zhuǎn)換:相關(guān)映象頁地址轉(zhuǎn)換:頁表不放在主存

56、中,而是放在高速頁表不放在主存中,而是放在高速半導(dǎo)體存儲(chǔ)器中,稱為快表。(相比一次訪問速度降低半導(dǎo)體存儲(chǔ)器中,稱為快表。(相比一次訪問速度降低10左右),但成本高。左右),但成本高。 靜態(tài)靜態(tài)RAM是靠雙穩(wěn)態(tài)觸發(fā)器來記憶信息的;是靠雙穩(wěn)態(tài)觸發(fā)器來記憶信息的; 動(dòng)態(tài)動(dòng)態(tài)RAM是靠是靠MOS電路中的柵極電容來記憶信息的。由于電電路中的柵極電容來記憶信息的。由于電容上的電荷會(huì)泄漏,需要定時(shí)給與補(bǔ)充,所以動(dòng)態(tài)容上的電荷會(huì)泄漏,需要定時(shí)給與補(bǔ)充,所以動(dòng)態(tài)RAM需要設(shè)需要設(shè)置刷新電路。置刷新電路。NO:50 第四章第四章 操作系統(tǒng)操作系統(tǒng)4.3 4.3 存儲(chǔ)器管理存儲(chǔ)器管理 一個(gè)程序可能會(huì)很大,如一個(gè)程序

57、可能會(huì)很大,如1M,若頁長(zhǎng)為若頁長(zhǎng)為1K,則該程序則該程序有有1000個(gè)頁,則該程序的頁表就需要個(gè)頁,則該程序的頁表就需要1000個(gè)表項(xiàng),當(dāng)程序個(gè)表項(xiàng),當(dāng)程序更大時(shí),頁表會(huì)更大,那么我們應(yīng)該有一個(gè)多大的快速存更大時(shí),頁表會(huì)更大,那么我們應(yīng)該有一個(gè)多大的快速存儲(chǔ)器才能滿足要求呢?這會(huì)遇到兩個(gè)問題:儲(chǔ)器才能滿足要求呢?這會(huì)遇到兩個(gè)問題:可能快速存儲(chǔ)器多大都是不夠的,因?yàn)槌绦蚩赡軙?huì)更大??赡芸焖俅鎯?chǔ)器多大都是不夠的,因?yàn)槌绦蚩赡軙?huì)更大??焖俅鎯?chǔ)器是非常非常昂貴的。快速存儲(chǔ)器是非常非常昂貴的。NO:51 第四章第四章 操作系統(tǒng)操作系統(tǒng)4.3 4.3 存儲(chǔ)器管理存儲(chǔ)器管理相關(guān)、直接相結(jié)合:相關(guān)、直接相結(jié)

58、合:根據(jù)程序局部性特點(diǎn)(時(shí)間、空間),根據(jù)程序局部性特點(diǎn)(時(shí)間、空間),將正在運(yùn)行的,最常用的部分頁表存放在相關(guān)存儲(chǔ)器中。將正在運(yùn)行的,最常用的部分頁表存放在相關(guān)存儲(chǔ)器中。查找時(shí)先在相關(guān)存儲(chǔ)器中查找,命中率可達(dá)查找時(shí)先在相關(guān)存儲(chǔ)器中查找,命中率可達(dá)90。程序局部性原理程序局部性原理 時(shí)間局部性時(shí)間局部性 一條指令被執(zhí)行了,則在不久的將來它可能再被執(zhí)行一條指令被執(zhí)行了,則在不久的將來它可能再被執(zhí)行 空間局部性空間局部性 若某一存儲(chǔ)單元被使用,則在一定時(shí)間內(nèi),與該存儲(chǔ)單若某一存儲(chǔ)單元被使用,則在一定時(shí)間內(nèi),與該存儲(chǔ)單元相鄰的單元可能被使用元相鄰的單元可能被使用NO:52 第四章第四章 操作系統(tǒng)操作

59、系統(tǒng)4.3 4.3 存儲(chǔ)器管理存儲(chǔ)器管理(3)頁面變換算法)頁面變換算法由于分頁管理中分配給每道程序的由于分頁管理中分配給每道程序的頁架數(shù)有限頁架數(shù)有限,因此,因此內(nèi)存中的頁面要隨時(shí)進(jìn)行更換,稱為內(nèi)存中的頁面要隨時(shí)進(jìn)行更換,稱為頁面淘汰頁面淘汰。頁面更換不。頁面更換不當(dāng)會(huì)導(dǎo)致剛淘汰出內(nèi)存的頁面又要調(diào)入內(nèi)存,這樣使處理器當(dāng)會(huì)導(dǎo)致剛淘汰出內(nèi)存的頁面又要調(diào)入內(nèi)存,這樣使處理器大部分時(shí)間都用于頁面調(diào)度上,稱為大部分時(shí)間都用于頁面調(diào)度上,稱為“抖動(dòng)抖動(dòng)”,從而降低了,從而降低了系統(tǒng)運(yùn)行的速度。為了避免產(chǎn)生這種現(xiàn)象,需要選擇一種較系統(tǒng)運(yùn)行的速度。為了避免產(chǎn)生這種現(xiàn)象,需要選擇一種較好的算法進(jìn)行頁面淘汰。下

60、面介紹兩種常用的算法。好的算法進(jìn)行頁面淘汰。下面介紹兩種常用的算法。NO:53 第四章第四章 操作系統(tǒng)操作系統(tǒng)4.3 4.3 存儲(chǔ)器管理存儲(chǔ)器管理 先進(jìn)先出法(先進(jìn)先出法(FIFOFirst Input First Output) 此算法的主要思想時(shí)認(rèn)為此算法的主要思想時(shí)認(rèn)為最先進(jìn)入最先進(jìn)入內(nèi)存的頁面,內(nèi)存的頁面,不再被不再被使用使用的可能性最大,所以最先進(jìn)入內(nèi)存的頁面,最先被調(diào)出內(nèi)的可能性最大,所以最先進(jìn)入內(nèi)存的頁面,最先被調(diào)出內(nèi)存。下面通過一個(gè)簡(jiǎn)單的例子來說明。存。下面通過一個(gè)簡(jiǎn)單的例子來說明。 設(shè)有一用戶程序共分為設(shè)有一用戶程序共分為5頁頁,其執(zhí)行時(shí)頁面變化的規(guī)律稱,其執(zhí)行時(shí)頁面變化的規(guī)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論