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

下載本文檔

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

文檔簡(jiǎn)介

1、第四章 存儲(chǔ)器管理(gunl)第0節(jié) 存儲(chǔ)管理概述(i sh)一、存儲(chǔ)器的層次結(jié)構(gòu)1、在現(xiàn)代(xindi)計(jì)算機(jī)系統(tǒng)中,存儲(chǔ)器是信息處理的來(lái)源與歸宿,占據(jù)重要位置。但是,在現(xiàn)有技術(shù)條件下,任何一種存儲(chǔ)裝置,都無(wú)法從速度、容量、是否需要電源維持等等多方面,同時(shí)滿(mǎn)足用戶(hù)的需求。實(shí)際上它們組成了一個(gè)速度由快到慢,容量由小到大的存儲(chǔ)裝置層次。圖4-1 計(jì)算機(jī)系統(tǒng)存儲(chǔ)器層次示意圖2、各種存儲(chǔ)器寄存器、高速緩存Cache:容量很小、非常快速、昂貴、需要電源維持、CPU可直接訪(fǎng)問(wèn);內(nèi)存RAM:容量在若干KB、MB、GB,中等速度、中等價(jià)格、需要電源維持、CPU可直接訪(fǎng)問(wèn);磁盤(pán)高速緩存:一般設(shè)于主存中;多種類(lèi)

2、型的磁盤(pán)(c pn):容量(rngling)在數(shù)MB或數(shù)GB,低速(d s)、價(jià)廉、不需要電源維持、 CPU不可直接訪(fǎng)問(wèn);由操作系統(tǒng)協(xié)調(diào)這些存儲(chǔ)器的使用。二、存儲(chǔ)管理(主存管理)的目的1、盡可能地方便用戶(hù);提高主存儲(chǔ)器的使用效率,使主存儲(chǔ)器在速度、規(guī)模和成本之間獲得較好的權(quán)衡。(注意CPU和主存儲(chǔ)器,這兩類(lèi)資源管理的區(qū)別)2、存儲(chǔ)管理的主要功能:地址重定位主存空間的分配與回收主存空間的保護(hù)和共享主存空間的擴(kuò)充三、邏輯地址與物理地址1、邏輯地址(相對(duì)地址,虛地址):用戶(hù)源程序經(jīng)過(guò)編譯/匯編、鏈接后,程序內(nèi)每條指令、每個(gè)數(shù)據(jù)等信息,都會(huì)生成自己的地址。一個(gè)用戶(hù)程序的所有邏輯地址組成這個(gè)程序的邏輯地

3、址空間(也稱(chēng)地址空間)。這個(gè)空間是以0為基址、線(xiàn)性或多維編址的。2、物理地址(絕對(duì)地址,實(shí)地址):是一個(gè)實(shí)際內(nèi)存(字節(jié))單元的編址。計(jì)算機(jī)內(nèi)所有內(nèi)存單元的物理地址組成系統(tǒng)的物理地址空間,它是從0開(kāi)始的、是一維的;將用戶(hù)(yngh)程序(chngx)被裝進(jìn)內(nèi)存,一個(gè)程序所占有(zhnyu)的所有內(nèi)存單元的物理地址組成該程序的物理地址空間(也稱(chēng)存儲(chǔ)空間)。四、地址映射(變換、重定位)當(dāng)程序被裝進(jìn)內(nèi)存時(shí),通常每個(gè)信息的邏輯地址和它的物理地址是不一致的,需要把(程序中的)邏輯地址轉(zhuǎn)換為對(duì)應(yīng)的物理地址-地址映射;例如指令 LOAD L,2500 /*將2500號(hào)單元內(nèi)的數(shù)據(jù)送入寄存器L*/ -P123圖

4、4-3 作業(yè)裝進(jìn)內(nèi)存時(shí)的情況地址映射分靜態(tài)和動(dòng)態(tài)兩種方式。1、靜態(tài)地址重定位是程序裝入時(shí)集中一次進(jìn)行的地址變換計(jì)算。物理地址 = 重定位的首地址 + 邏輯地址優(yōu)點(diǎn):簡(jiǎn)單,不需要硬件支持;缺點(diǎn):一個(gè)作業(yè)必須(bx)占據(jù)連續(xù)(linx)的存儲(chǔ)空間;裝入內(nèi)存(ni cn)的作業(yè)一般不再移動(dòng);不能實(shí)現(xiàn)虛擬存儲(chǔ)。2、動(dòng)態(tài)地址重定位:在程序執(zhí)行的過(guò)程中,每當(dāng)CPU訪(fǎng)問(wèn)一個(gè)內(nèi)存地址之前對(duì)要訪(fǎng)問(wèn)的地址進(jìn)行地址變換計(jì)算。圖4-12 動(dòng)態(tài)地址重定位示意圖優(yōu)點(diǎn):一個(gè)作業(yè)可以使用非連續(xù)存儲(chǔ)空間;能實(shí)現(xiàn)虛擬存儲(chǔ);有利于程序段的共享。缺點(diǎn):需要硬件支持。五、存儲(chǔ)分配與回收在程序運(yùn)行開(kāi)始時(shí)、運(yùn)行過(guò)程中,OS根據(jù)一定的存儲(chǔ)管

5、理方法,在內(nèi)存中為程序及其數(shù)據(jù)找到合適的位置,將它們裝入內(nèi)存; 程序運(yùn)行結(jié)束后,OS收回程序釋放的內(nèi)存資源,并進(jìn)行適當(dāng)?shù)恼?,以便再分配給其他的程序使用。六、存儲(chǔ)保護(hù)為多道并發(fā)程序共享內(nèi)存提供(tgng)保障,使在內(nèi)存(ni cn)中的各道程序“各行其道( xn q do)”,只能訪(fǎng)問(wèn)屬于自己的區(qū)域(自己的物理地址空間),避免各道程序間相互干擾。特別是當(dāng)一道程序發(fā)生錯(cuò)誤時(shí),不致于影響其他程序的運(yùn)行。通常由硬件完成保護(hù)功能,由軟件輔助實(shí)現(xiàn)。存儲(chǔ)保護(hù)可以實(shí)現(xiàn):保護(hù)系統(tǒng)程序區(qū)不被用戶(hù)侵犯(有意或無(wú)意的);不允許用戶(hù)程序讀寫(xiě)不屬于自己地址空間的數(shù)據(jù)(系統(tǒng)區(qū)地址空間、其他用戶(hù)程序的地址空間),出現(xiàn)地址越

6、界;地址越界存儲(chǔ)保護(hù)的過(guò)程:每個(gè)進(jìn)程都有自己獨(dú)立的進(jìn)程空間。如果一個(gè)進(jìn)程在運(yùn)行時(shí)所產(chǎn)生的要訪(fǎng)問(wèn)的地址落在其地址空間之外,稱(chēng)為發(fā)生了地址越界。每當(dāng)程序要訪(fǎng)問(wèn)某個(gè)內(nèi)存單元時(shí),由硬件檢查是否允許,如果允許則執(zhí)行,否則產(chǎn)生地址越界中斷,由操作系統(tǒng)進(jìn)行相應(yīng)處理。程序只能在自己的訪(fǎng)問(wèn)權(quán)限范圍內(nèi)讀/寫(xiě)內(nèi)存。七、存儲(chǔ)共享內(nèi)存共享:多道環(huán)境中,兩個(gè)或多個(gè)并發(fā)進(jìn)程共用內(nèi)存中相同區(qū)域。目的:節(jié)省內(nèi)存空間,提高內(nèi)存利用率,實(shí)現(xiàn)進(jìn)程通信(數(shù)據(jù)共享)。共享內(nèi)容:代碼共享(要求代碼為純代碼);數(shù)據(jù)共享。八、存儲(chǔ)(cn ch)“擴(kuò)充(kuchng)”為了(wi le)給大作業(yè)提供方便,由OS把內(nèi)存和外存統(tǒng)一管理起來(lái),實(shí)現(xiàn)自動(dòng)

7、覆蓋。當(dāng)一個(gè)大作業(yè)在執(zhí)行時(shí),有一部分邏輯地址空間的內(nèi)容在內(nèi)存,另一部分在外存。當(dāng)要訪(fǎng)問(wèn)的信息不在內(nèi)存時(shí),由OS(而不是程序員安排的I/O指令)自動(dòng)把它們從外存調(diào)入內(nèi)存。從效果上看,這樣的OS好象為這個(gè)用戶(hù)作業(yè)提供了一個(gè)容量比實(shí)際內(nèi)存大的存儲(chǔ)器,從而實(shí)現(xiàn)了存儲(chǔ)“擴(kuò)充”。擴(kuò)充后的存儲(chǔ)器稱(chēng)為虛擬存儲(chǔ)器。九、存儲(chǔ)管理方法1、連續(xù)分配方式 (1) 單一連續(xù)存儲(chǔ)區(qū)管理(單道環(huán)境下) (2) 分區(qū)式存儲(chǔ)管理2、離散分配方式 (1) 分頁(yè)式存儲(chǔ)管理 (2) 分段式存儲(chǔ)管理 (3) 段頁(yè)式存儲(chǔ)管理3、實(shí)現(xiàn)虛擬存儲(chǔ)的分配方式 主要是一些請(qǐng)求式的分配方式,如請(qǐng)求分頁(yè)式存儲(chǔ)管理、請(qǐng)求分段式存儲(chǔ)管理等。對(duì)于以上每一種存

8、儲(chǔ)管理方法我們應(yīng)該掌握: 基本原理(思想方法) 存儲(chǔ)管理使用(shyng)的數(shù)據(jù)結(jié)構(gòu) 邏輯地址(dzh)的格式 地址變換的方式(fngsh) 存儲(chǔ)的分配和回收過(guò)程 特點(diǎn)(優(yōu)、缺點(diǎn))第1節(jié) 程序的裝入(和鏈接)一、程序的裝入就是OS的裝入程序(Loader)將用戶(hù)程序的裝入模塊裝入內(nèi)存。1、絕對(duì)裝入方式編譯時(shí)產(chǎn)生絕對(duì)地址的目標(biāo)代碼。程序被裝入內(nèi)存后,邏輯地址與實(shí)際裝入的內(nèi)存地址完全相同,故執(zhí)行過(guò)程中,不需對(duì)指令和數(shù)據(jù)進(jìn)行地址變換。程序中所使用的絕對(duì)地址,可在編譯或匯編時(shí)給出,也可由程序員直接賦予。 但在由程序員直接給出絕對(duì)地址時(shí),不僅要求程序員熟悉內(nèi)存的使用情況,而且一旦程序或數(shù)據(jù)被修改后,可能

9、要改變程序中的所有地址。因此,通常是寧可在程序中采用符號(hào)地址,然后在編譯或匯編時(shí),再將這些符號(hào)地址轉(zhuǎn)換為絕對(duì)地址。2、可重定位(dngwi)裝入方式編譯時(shí)產(chǎn)生相對(duì)地址的目標(biāo)代碼(di m)。程序被裝入內(nèi)存(ni cn)時(shí),進(jìn)行地址變換,然后在訪(fǎng)問(wèn)時(shí)直接取指令和數(shù)據(jù)。3、動(dòng)態(tài)運(yùn)行時(shí)裝入方式 編譯時(shí)產(chǎn)生相對(duì)地址的目標(biāo)代碼。程序被裝入內(nèi)存后,并不立即把裝入模塊中的相對(duì)地址轉(zhuǎn)換為絕對(duì)地址,而是把這種地址轉(zhuǎn)換推遲到程序真正要執(zhí)行時(shí)才進(jìn)行。當(dāng)要對(duì)一條指令或一個(gè)數(shù)據(jù)進(jìn)行訪(fǎng)問(wèn)時(shí),才對(duì)它的地址進(jìn)行轉(zhuǎn)換。因此,裝入內(nèi)存后的所有地址都仍是相對(duì)地址。第2節(jié) 連續(xù)分配存儲(chǔ)管理方式一、單一連續(xù)分配1、基本原理把內(nèi)存分為系

10、統(tǒng)區(qū)和用戶(hù)區(qū)兩部分,系統(tǒng)區(qū)提供給OS使用(通常是內(nèi)存的低址部分);用戶(hù)區(qū)(指除系統(tǒng)區(qū)以外的全部?jī)?nèi)存空間)提供給用戶(hù)使用。用戶(hù)區(qū)是一個(gè)連續(xù)的存儲(chǔ)區(qū),每次裝入一道用戶(hù)作業(yè),整個(gè)系統(tǒng)的用戶(hù)空間被一道用戶(hù)作業(yè)獨(dú)占。2、存儲(chǔ)(cn ch)分配和回收過(guò)程(guchng) 如下圖所示的主存分配與回收法。并且由裝入程序進(jìn)行靜態(tài)地址重定位,檢查其絕對(duì)地址是否超越,即可達(dá)到保護(hù)系統(tǒng)(xtng)的目的。工作流程:3、特點(diǎn):存儲(chǔ)管理簡(jiǎn)單,只適用于單道環(huán)境內(nèi)存(ni cn)利用率很低程序的運(yùn)行(ynxng)受主存容量限制基本不需要管理(gunl)的數(shù)據(jù)結(jié)構(gòu)二、固定分區(qū)分配固定分區(qū)式存儲(chǔ)管理是滿(mǎn)足多道程序的最簡(jiǎn)單的存儲(chǔ)管

11、理方案。它的基本思想是:將內(nèi)存的用戶(hù)區(qū)劃分成若干個(gè)固定的空間,稱(chēng)為分區(qū)。當(dāng)程序到達(dá)時(shí),由系統(tǒng)給它分配一個(gè)適當(dāng)大小的分區(qū),將程序和數(shù)據(jù)連續(xù)存入,使進(jìn)程得以并發(fā)執(zhí)行。每個(gè)分區(qū)只能存儲(chǔ)一個(gè)程序,而且程序也只能在它所駐留的分區(qū)中運(yùn)行;作業(yè)的邏輯地址空間是線(xiàn)性的,物理地址空間是連續(xù)的;主要采用靜態(tài)地址重定位方式進(jìn)行地址變換。1、基本原理系統(tǒng)生成時(shí),把可分配的主存儲(chǔ)器空間分割成若干個(gè)區(qū)域,每個(gè)區(qū)域稱(chēng)為一個(gè)分區(qū)(每個(gè)分區(qū)的內(nèi)部是連續(xù)的)。每個(gè)分區(qū)的大小可以相同也可以不同,但分區(qū)大小、地址固定不變,每個(gè)分區(qū)能裝一個(gè)且只能裝一個(gè)作業(yè)。2、管理使用的數(shù)據(jù)結(jié)構(gòu)分區(qū)說(shuō)明表:記錄系統(tǒng)中的現(xiàn)有內(nèi)存分區(qū)及其使用狀態(tài)。3、存

12、儲(chǔ)(cn ch)分配與回收過(guò)程當(dāng)有一個(gè)(y )用戶(hù)作業(yè)請(qǐng)求裝入時(shí),由OS檢索分區(qū)說(shuō)明表,從中找一個(gè)大小能滿(mǎn)足要求的、空閑(kngxin)的分區(qū),將用戶(hù)作業(yè)裝入,并在分區(qū)說(shuō)明表中將該分區(qū)的狀態(tài)置為“已分配”;若沒(méi)有找到大小足夠的分區(qū),則拒絕為該程序分配內(nèi)存。當(dāng)一個(gè)用戶(hù)作業(yè)完成后,由OS將其占有的分區(qū)收回,將該分區(qū)的狀態(tài)改為“未分配”。4、特點(diǎn)可以支持多道程序運(yùn)行程序的運(yùn)行受主存容量和分區(qū)大小限制內(nèi)存利用率仍很低三、動(dòng)態(tài)分區(qū)分配1、基本思想系統(tǒng)在啟動(dòng)時(shí),除了OS常駐內(nèi)存部分占用的內(nèi)存空間外,系統(tǒng)中只有一個(gè)空閑分區(qū);當(dāng)有作業(yè)要裝入內(nèi)存時(shí),檢索空閑分區(qū)表,找一個(gè)能滿(mǎn)足作業(yè)要求的空閑分區(qū),從中劃出一個(gè)大

13、小正好滿(mǎn)足要裝入作業(yè)要求的存儲(chǔ)區(qū),分配給這一作業(yè),剩下的部分被作為一個(gè)新的空閑分區(qū)記錄在空閑分區(qū)表中。2、存儲(chǔ)管理的數(shù)據(jù)結(jié)構(gòu)(sh j ji u)(二選一)(1) 空閑區(qū)表-記錄目前系統(tǒng)中每個(gè)空閑區(qū)的起始地址(dzh)和長(zhǎng)度;(2) 空閑分區(qū)鏈-將目前系統(tǒng)中的空閑分區(qū)按一定的順序鏈接起來(lái)。在每個(gè)分區(qū)的頭、尾設(shè)置指向前后分區(qū)的指針(zhzhn),并記錄本分區(qū)的一些分配控制信息。系統(tǒng)設(shè)立一個(gè)鏈?zhǔn)字羔槪赶虻谝粋€(gè)空閑塊。圖4-7 空閑(kngxin)分區(qū)鏈3、存儲(chǔ)分配與回收(hushu)過(guò)程(1) 分配(fnpi)-每當(dāng)有一個(gè)作業(yè)申請(qǐng)內(nèi)存空間時(shí):圖4-8 內(nèi)存分配流程(2) 回收-會(huì)出現(xiàn)四種情況圖4

14、-9 內(nèi)存回收(hushu)時(shí)的情況回收區(qū)與它前面的一個(gè)(y )空閑區(qū)相鄰(a)回收區(qū)與它后面(hu mian)的一個(gè)空閑區(qū)相鄰(b)回收區(qū)與它前、后的兩個(gè)空閑區(qū)相鄰(c)回收區(qū)前后都沒(méi)有相鄰的空閑區(qū)當(dāng)某一塊歸還后,要根據(jù)不同的情況,前后空間合并,再分別處理存儲(chǔ)管理的數(shù)據(jù)結(jié)構(gòu)。4、存儲(chǔ)分配的算法-當(dāng)滿(mǎn)足條件的空閑分區(qū)多于一個(gè)時(shí),選哪一個(gè)?取決于空閑分區(qū)表或空閑分區(qū)鏈中分區(qū)排列順序的組織方法(1) 首次適應(yīng)算法:按空閑區(qū)首地址從低到高來(lái)組織空閑分區(qū)表或空閑分區(qū)鏈;每次分區(qū)時(shí),總是從表頭或鏈?zhǔn)组_(kāi)始掃描,找到第一個(gè)足夠大的空白區(qū)分配。(2) 循環(huán)首次適應(yīng)算法(下次適應(yīng)算法):類(lèi)似首次適應(yīng)法的數(shù)據(jù)組織

15、。每次分區(qū)時(shí),總是從上次查找結(jié)束的地方開(kāi)始掃描,找到一個(gè)足夠大的空白區(qū)分配,并循環(huán)查找。(3) 最佳適應(yīng)(shyng)算法:按空閑區(qū)容量(rngling)大小從小到大來(lái)組織組織空閑分區(qū)表或空閑分區(qū)鏈。每次分區(qū)時(shí),總是從表頭或鏈?zhǔn)组_(kāi)始掃描。所以,接到內(nèi)存(ni cn)申請(qǐng)時(shí),會(huì)在空閑區(qū)中找到一個(gè)滿(mǎn)足要求的最小空閑區(qū)進(jìn)行分配。(4) 最壞適應(yīng)算法:與最佳適應(yīng)法相反,它在作業(yè)選擇存儲(chǔ)塊時(shí),總是尋找一個(gè)滿(mǎn)足要求的最大的空閑分區(qū)。討論以上算法的優(yōu)缺點(diǎn).6、動(dòng)態(tài)分區(qū)方式中的“碎片”問(wèn)題經(jīng)過(guò)一段時(shí)間的分配回收后,內(nèi)存中會(huì)出現(xiàn)很多很小的空閑塊。它們每一塊都較小,不足以滿(mǎn)足一般作業(yè)的分配要求;但其容量總和卻有著

16、相當(dāng)?shù)囊?guī)模。這些空閑塊被稱(chēng)為碎片。碎片的存在造成了存儲(chǔ)資源的浪費(fèi)。解決辦法:碎片整理-緊湊,通過(guò)在內(nèi)存移動(dòng)程序,將所有小的空閑區(qū)域合并為大的空閑區(qū)域。問(wèn)題:系統(tǒng)開(kāi)銷(xiāo)大(?)。圖4-11 碎片(su pin)整理四、動(dòng)態(tài)(dngti)可重定位(dngwi)分區(qū)分配1、動(dòng)態(tài)重定位引入的原因在動(dòng)態(tài)分區(qū)分配中,“碎片”整理,是定時(shí)進(jìn)行或在存儲(chǔ)回收時(shí)進(jìn)行的,所有用戶(hù)程序的存儲(chǔ)分區(qū)都要進(jìn)行改動(dòng),并重新進(jìn)行靜態(tài)地址重定位。這樣的“碎片”整理工作將花費(fèi)較多的系統(tǒng)開(kāi)銷(xiāo)。2、動(dòng)態(tài)重定位分區(qū)分配處理流程可重定位分區(qū)分配,與動(dòng)態(tài)分區(qū)方法基本相同,但它的碎片整理是在存儲(chǔ)分配時(shí)進(jìn)行的,以滿(mǎn)足新作業(yè)需求為目的,并采用動(dòng)態(tài)地

17、址重定位。圖4-13 動(dòng)態(tài)(dngti)可重定位分區(qū)(fn q)分配示意圖五、對(duì)換(du hun)(交換)技術(shù)“對(duì)換”引入的原因: -P135所謂“對(duì)換”,是指系統(tǒng)允許在一個(gè)作業(yè)已經(jīng)進(jìn)入內(nèi)存執(zhí)行的過(guò)程中,仍能把它調(diào)出內(nèi)存、再調(diào)入內(nèi)存。把內(nèi)存中暫時(shí)不能運(yùn)行的進(jìn)程或者暫時(shí)不用的程序和數(shù)據(jù),調(diào)出到外存上,以便騰出足夠的內(nèi)存空間,再把已具備運(yùn)行條件的進(jìn)程或進(jìn)程所需要的程序和數(shù)據(jù),調(diào)入內(nèi)存。對(duì)換是提高內(nèi)存利用率的有效措施??梢詫⒄麄€(gè)進(jìn)程換入、換出,也可以將進(jìn)程的一部分(頁(yè)、段)換入、換出。前者主要用于緩解目前系統(tǒng)中內(nèi)存的不足,后者主要用于實(shí)現(xiàn)虛擬存儲(chǔ)。 -P136對(duì)換空間的管理:在具有對(duì)換功能的OS中,

18、通常把外存分為文件區(qū)和對(duì)換區(qū)。前者用于存放文件,后者用于存放從內(nèi)存換出的進(jìn)程。P136-137進(jìn)程(jnchng)(整體(zhngt)的換出:系統(tǒng)(xtng)首先選擇處于阻塞狀態(tài)且優(yōu)先級(jí)最低的進(jìn)程作為換出進(jìn)程,然后啟動(dòng)磁盤(pán),將該進(jìn)程的程序和數(shù)據(jù)傳送到磁盤(pán)的對(duì)換區(qū)上。若傳送過(guò)程未出現(xiàn)錯(cuò)誤,便可回收該進(jìn)程所占用的內(nèi)存空間,并對(duì)該進(jìn)程的PCB做相應(yīng)的修改。當(dāng)目前沒(méi)有阻塞進(jìn)程時(shí),也可將優(yōu)先級(jí)低的就緒進(jìn)程換出。進(jìn)程(整體)的換入: 系統(tǒng)定時(shí)查看所有進(jìn)程的狀態(tài),從中找出“就緒”狀態(tài)但已換出的進(jìn)程,將其中換出時(shí)間(換出到磁盤(pán)上)最久的進(jìn)程作為換入進(jìn)程,將之換入,直至已無(wú)可換入的進(jìn)程或無(wú)可換出的進(jìn)程為止。以上

19、談到的是整體交換,部分交換在虛擬存儲(chǔ)中介紹。六、動(dòng)態(tài)分區(qū)式存儲(chǔ)管理特點(diǎn)的討論1、作業(yè)連續(xù)存放(作業(yè)的邏輯地址空間和物理地址空間都是一維的)2、有限的虛擬存儲(chǔ)分區(qū)式管理不能實(shí)現(xiàn)那種用戶(hù)進(jìn)程所需空間只受內(nèi)外存容量之和限制的虛擬存儲(chǔ),只能使用覆蓋和交換等存儲(chǔ)擴(kuò)充技術(shù),實(shí)現(xiàn)進(jìn)程掛起,這是一種有限的虛擬存儲(chǔ)-并發(fā)進(jìn)程的總?cè)萘靠梢源笥趦?nèi)存容量,但每一個(gè)進(jìn)程的容量小于內(nèi)存。3、存儲(chǔ)保護(hù):使用界限寄存器。一般由硬件提供一對(duì)寄存器:基址(j zh)寄存器:存放起始地址,限長(zhǎng)寄存器:存放長(zhǎng)度(或上界寄存器/下界寄存器)4、主要(zhyo)優(yōu)缺點(diǎn):實(shí)現(xiàn)了多進(jìn)程對(duì)內(nèi)存(ni cn)的共享,支持多道程序設(shè)計(jì);要求較少的

20、硬件支持,管理方法簡(jiǎn)單,容易實(shí)現(xiàn)。內(nèi)存利用率仍不高(碎片問(wèn)題);用戶(hù)作業(yè)的大小受分區(qū)大小的限制;不能實(shí)現(xiàn)信息的共享。第3節(jié) 基本分頁(yè)存儲(chǔ)管理方式基本原理將系統(tǒng)的物理地址空間劃分成大小相同的片,稱(chēng)為塊;將作業(yè)的邏輯地址空間劃分成和塊大小一樣的片,稱(chēng)為頁(yè)(最后不足一頁(yè)的也算一頁(yè));給作業(yè)進(jìn)行存儲(chǔ)分配時(shí),將作業(yè)的一頁(yè)存入存儲(chǔ)器的一塊中。邏輯上相鄰的頁(yè),物理上可以不相鄰。塊的大小與頁(yè)的大小一致,與系統(tǒng)內(nèi)存的大小以及內(nèi)、外存間數(shù)據(jù)的傳輸速度相關(guān),通常是2nB。二、邏輯(lu j)地址的格式作業(yè)的邏輯地址(dzh)空間是從0開(kāi)始(kish)、一維的,每個(gè)邏輯地址由頁(yè)號(hào)和頁(yè)內(nèi)地址組成,見(jiàn)下圖左;對(duì)某特定機(jī)器

21、,其地址結(jié)構(gòu)是一定的,頁(yè)的大小固定為L(zhǎng)(應(yīng)該是2的冪,通常為1KB8KB)。若給定一個(gè)邏輯地址A,則頁(yè)號(hào)P和頁(yè)內(nèi)地址d可按下式解析而求得,見(jiàn)下圖右。三、存儲(chǔ)管理的數(shù)據(jù)結(jié)構(gòu)1、頁(yè)表:每個(gè)進(jìn)程(jnchng)一張,在初次為進(jìn)程分配內(nèi)存時(shí)建立進(jìn)程的頁(yè)表。一個(gè)進(jìn)程分為(fn wi)多少頁(yè),它的頁(yè)表就有多少行(表目)。每一行中記錄(jl)著進(jìn)程的一頁(yè)對(duì)應(yīng)存放的塊。另外,頁(yè)表的每一個(gè)表目還包括一個(gè)存取控制字段。頁(yè)表用于進(jìn)行地址變換。2、存儲(chǔ)分塊表:整個(gè)系統(tǒng)一張,每一項(xiàng)對(duì)應(yīng)一個(gè)內(nèi)存存儲(chǔ)塊,記錄該存儲(chǔ)塊的使用狀態(tài):已分配或空閑。通常用位示圖來(lái)表示存儲(chǔ)分塊表。四、地址變換進(jìn)程的頁(yè)表一般(ybn)是常駐內(nèi)存、連續(xù)

22、存放的,頁(yè)表的首地址和長(zhǎng)度存在進(jìn)程的PCB中。系統(tǒng)(xtng)為執(zhí)行(zhxng)態(tài)的用戶(hù)進(jìn)程提供了一個(gè)頁(yè)表寄存器,用來(lái)存放這個(gè)進(jìn)程的頁(yè)表首地址和長(zhǎng)度。采用動(dòng)態(tài)地址重定位。1、基本的地址變換過(guò)程:例: 0100:LOAD 2452,A(1) 指令的邏輯地址0100,它存在0頁(yè),第100號(hào)單元中;查頁(yè)表:0頁(yè) 10塊 算出指令的物理地址:10100 到內(nèi)存單元10100中取指令 LOAD 2452,A;(2) 目的操作數(shù)的邏輯地址2452,它排在2頁(yè)第452號(hào)單元中;查頁(yè)表: 2頁(yè) 8塊 算出操作數(shù)的物理地址:08452 將A送入08452號(hào)內(nèi)存單元。2、引入快表:由于(yuy)頁(yè)表也存放在主存

23、中,這樣,每讀寫(xiě)一個(gè)內(nèi)存單元,首先必須讀內(nèi)存一次,訪(fǎng)問(wèn)頁(yè)表,之后根據(jù)形成的實(shí)際地址再訪(fǎng)問(wèn)內(nèi)存,這樣使訪(fǎng)問(wèn)主存的次數(shù)加倍,因而(yn r)使總的處理速度明顯下降。為了(wi le)解決這個(gè)問(wèn)題人們采用一組寄存器,存放最近訪(fǎng)問(wèn)過(guò)的頁(yè)的頁(yè)表表項(xiàng)-引入“快表”每次地址變換時(shí),首先查找快表,若找到所需頁(yè)的表項(xiàng),則快速形成物理地址。否則,再去頁(yè)表中查找后形成物理地址,同時(shí)把該頁(yè)的表項(xiàng)寫(xiě)入快表。如果設(shè)計(jì)得當(dāng),快表的命中率可以很高。五、存儲(chǔ)的分配和回收1、存儲(chǔ)分配計(jì)算一個(gè)作業(yè)所需要的總塊數(shù)N查位示圖,看看是否還有N+1個(gè)空閑塊,如果不夠,就拒絕分配如果有足夠的空閑塊,則首先申請(qǐng)一塊(y kui),為作業(yè)建立(

24、jinl)頁(yè)表,將頁(yè)表的首地址(dzh)和長(zhǎng)度N存入進(jìn)程的PCB中分配N(xiāo)個(gè)空閑塊給該作業(yè),依次裝入作業(yè)的N個(gè)頁(yè),將頁(yè)號(hào)和對(duì)應(yīng)的塊號(hào)填入頁(yè)表修改位示圖2、存儲(chǔ)回收進(jìn)程執(zhí)行結(jié)束,系統(tǒng)對(duì)照頁(yè)表,依次收回分給它的N個(gè)塊,修改位示圖;撤消它的頁(yè)表,收回頁(yè)表所占?jí)K,修改位示圖。六、兩級(jí)和多級(jí)頁(yè)表現(xiàn)代的大多數(shù)計(jì)算機(jī)系統(tǒng),都支持非常大的邏輯地址空間(232264)。頁(yè)表就變得非常大,超過(guò)了1頁(yè)可以容納的范圍??刹捎脙蓚€(gè)方法來(lái)解決這一問(wèn)題: 采用離散分配方式來(lái)解決難以找到一塊連續(xù)的大內(nèi)存空間的問(wèn)題; 只將當(dāng)前需要的部分頁(yè)表項(xiàng)調(diào)入內(nèi)存,其余的頁(yè)表項(xiàng)仍駐留在磁盤(pán)上,需要時(shí)再調(diào)入。1、兩級(jí)頁(yè)表邏輯(lu j)地址的格

25、式為:2、多級(jí)頁(yè)表字長(zhǎng)(z chn)32位的計(jì)算機(jī),進(jìn)程頁(yè)表多大?用戶(hù)(yngh)邏輯地址空間最大 232=4GB設(shè):頁(yè)面(y min)大小為 212=4KB則:一個(gè)(y )進(jìn)程最多 220 頁(yè)設(shè):頁(yè)表的每個(gè)表項(xiàng)占4B則:進(jìn)程(jnchng)頁(yè)表最長(zhǎng)為4B220=210212B = 1024 頁(yè)外頁(yè)表最長(zhǎng) 10244B=4KB,正好一頁(yè)。當(dāng)計(jì)算機(jī)的字長(zhǎng)增加到64位時(shí),如果仍以4KB為一頁(yè),一個(gè)作業(yè)可以有252頁(yè)。頁(yè)表與外頁(yè)表的長(zhǎng)度將是。此時(shí),必須采用多級(jí)頁(yè)表,將外層頁(yè)表再進(jìn)行分頁(yè),再將各分頁(yè)離散地裝入到不相鄰接的物理塊中,再利用第2級(jí)的外層頁(yè)表來(lái)映射它們之間的關(guān)系。 此即多級(jí)頁(yè)表。七、反智頁(yè)表

26、簡(jiǎn)述 -P144八、基本(靜態(tài))頁(yè)式存儲(chǔ)管理的特點(diǎn)1、作業(yè)的邏輯地址空間是一維的;2、是一種離散式分配的存儲(chǔ)管理方法,用戶(hù)作業(yè)不要求連續(xù)的存儲(chǔ)空間,碎片的規(guī)模小于1頁(yè),而且數(shù)量很少,存儲(chǔ)利用率高;3、要求進(jìn)程在執(zhí)行前全部裝入內(nèi)存,所以進(jìn)程的大小仍受內(nèi)存空間的限制;4、“頁(yè)”是存儲(chǔ)的單位,在邏輯上沒(méi)有意義,很難實(shí)現(xiàn)有效的信息共享、存儲(chǔ)保護(hù)、動(dòng)態(tài)增長(zhǎng)、動(dòng)態(tài)鏈接等。第4節(jié) 基本分段存儲(chǔ)管理方式一、分段式存儲(chǔ)管理的引入在分頁(yè)式存儲(chǔ)管理中:進(jìn)程(jnchng)的邏輯地址空間是連續(xù)的。一個(gè)進(jìn)程(程序(chngx)與數(shù)據(jù))是一個(gè)(y )整體;“頁(yè)”是一個(gè)存儲(chǔ)的單位,在邏輯上沒(méi)有意義,不便進(jìn)行程序段或數(shù)據(jù)段的

27、共享;進(jìn)程所需的存儲(chǔ)塊是一次性、靜態(tài)分配的,程序和數(shù)據(jù)都不能動(dòng)態(tài)增長(zhǎng)。引入分段存儲(chǔ)管理方式,主要是為了滿(mǎn)足用戶(hù)和程序員的下述一系列需要: -P145-146(1) 方便編程 (2) 信息共享(3) 信息保護(hù) (4) 動(dòng)態(tài)增長(zhǎng) (5) 動(dòng)態(tài)鏈接二、基本原理一個(gè)用戶(hù)作業(yè)的程序和數(shù)據(jù)按其邏輯結(jié)構(gòu)可以分為若干段,每一段在邏輯上都是完整的,每段內(nèi)有從0開(kāi)始的、連續(xù)的邏輯地址空間。在存儲(chǔ)分配時(shí),系統(tǒng)為每一段分配一個(gè)連續(xù)的存儲(chǔ)區(qū),而不同段之間的存放的空間可以是不連續(xù)的。三、邏輯(lu j)地址格式分段式存儲(chǔ)管理中,用戶(hù)作業(yè)的邏輯地址(dzh)空間是二維的(可能(knng)不連續(xù)),一個(gè)單元的邏輯地址格式為:

28、每一個(gè)段號(hào)和一個(gè)邏輯段的名稱(chēng)對(duì)應(yīng)。四、存儲(chǔ)管理的數(shù)據(jù)結(jié)構(gòu)段表:每個(gè)進(jìn)程設(shè)置一個(gè),屬于進(jìn)程的現(xiàn)場(chǎng)信息。段表的格式:段表中的每一行對(duì)應(yīng)一個(gè)邏輯段。作業(yè)有幾邏輯段,段表的長(zhǎng)度就有幾行。段表中最重要(zhngyo)的信息是它的前三項(xiàng),依靠它進(jìn)行地址重定位。五、地址變換進(jìn)程的段表一般是常駐內(nèi)存、連續(xù)存放的,段表的首地址和長(zhǎng)度(chngd)存在進(jìn)程的PCB中。系統(tǒng)(xtng)為執(zhí)行(zhxng)態(tài)的用戶(hù)進(jìn)程提供了段表寄存器,用來(lái)存放這個(gè)進(jìn)程的段表首地址和長(zhǎng)度。六、存儲(chǔ)分配與回收在段式存儲(chǔ)管理中,內(nèi)存的空閑空間,采用類(lèi)似動(dòng)態(tài)分區(qū)式存儲(chǔ)管理的方式組織、分配和回收。只是在這里,存放在分區(qū)中的對(duì)象是進(jìn)程的一個(gè)邏輯

29、段,而不是整個(gè)進(jìn)程。1、存儲(chǔ)分配首先,程序開(kāi)始的若干邏輯段,按照類(lèi)似動(dòng)態(tài)分區(qū)分配的方法被逐一放入內(nèi)存。伴隨著存儲(chǔ)訪(fǎng)問(wèn)(地址變換),存儲(chǔ)分配逐步完成。2、存儲(chǔ)(cn ch)回收當(dāng)作業(yè)執(zhí)行完畢時(shí),系統(tǒng)將段表中各行記錄(jl)的分區(qū),采用類(lèi)似(li s)動(dòng)態(tài)分區(qū)分配的回收方法進(jìn)行逐一回收,然后撤消段表,回收段表占用的分區(qū)。七、分頁(yè)和分段的主要區(qū)別1、頁(yè)是信息的物理(存儲(chǔ))單位,分頁(yè)是為實(shí)現(xiàn)離散分配方式,以消減內(nèi)存的零頭,提高內(nèi)存的利用率?;蛘哒f(shuō),分頁(yè)僅僅是由于系統(tǒng)管理的需要而不是用戶(hù)的需要。段則是信息的邏輯單位,它含有一組其意義相對(duì)完整的信息。分段的目的是為了能更好地滿(mǎn)足用戶(hù)的需要。2、頁(yè)的大小固定且由系統(tǒng)決定,由系統(tǒng)把邏輯地址劃分為頁(yè)號(hào)和頁(yè)內(nèi)地址兩部分,是由機(jī)器硬件實(shí)現(xiàn)的,因而在系統(tǒng)中只能有一種大小的頁(yè)面;而段的長(zhǎng)度卻不固定,決定于用戶(hù)所編寫(xiě)的程序的邏輯,通常由編譯程序在對(duì)源程序進(jìn)行編譯時(shí),根據(jù)信息的性質(zhì)來(lái)劃分。3、分頁(yè)的作業(yè)地址空間是一維的,即單一的線(xiàn)性的邏輯地址空間,程序員只需利用一個(gè)記憶符,即可表示一個(gè)地址;而分段的作業(yè)地址空間則是二維的,程序員在標(biāo)識(shí)一個(gè)地址時(shí),既需給出段名,又需給出段內(nèi)地址。八、信息(xnx)共享的實(shí)現(xiàn)當(dāng)多個(gè)進(jìn)程都要執(zhí)行某

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論