計(jì)算機(jī)操作系統(tǒng)第四章-存儲(chǔ)器管理_第1頁(yè)
計(jì)算機(jī)操作系統(tǒng)第四章-存儲(chǔ)器管理_第2頁(yè)
計(jì)算機(jī)操作系統(tǒng)第四章-存儲(chǔ)器管理_第3頁(yè)
計(jì)算機(jī)操作系統(tǒng)第四章-存儲(chǔ)器管理_第4頁(yè)
計(jì)算機(jī)操作系統(tǒng)第四章-存儲(chǔ)器管理_第5頁(yè)
已閱讀5頁(yè),還剩27頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

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

2、調(diào)這些存儲(chǔ)器的使用。二、存儲(chǔ)管理的目的1、盡可能地方便用戶;提高主存儲(chǔ)器的使用效率,使主存儲(chǔ)器在成本、速度和規(guī)模之間獲得較好的權(quán)衡。(注意cpu和主存儲(chǔ)器,這兩類資源管理的區(qū)別)2、存儲(chǔ)管理的主要功能: 地址重定位 主存空間的分配與回收 主存空間的保護(hù)和共享 主存空間的擴(kuò)充三、邏輯地址與物理地址1、邏輯地址(相對(duì)地址,虛地址):用戶源程序經(jīng)過(guò)編譯/匯編、鏈接后,程序內(nèi)每條指令、每個(gè)數(shù)據(jù)等信息,都會(huì)生成自己的地址。l 一個(gè)用戶程序的所有邏輯地址組成這個(gè)程序的邏輯地址空間(也稱地址空間)。這個(gè)空間是以0為基址、線性或多維編址的。2、物理地址(絕對(duì)地址,實(shí)地址):是一個(gè)實(shí)際內(nèi)存單元(字節(jié))的地址。l

3、 計(jì)算機(jī)內(nèi)所有內(nèi)存單元的物理地址組成系統(tǒng)的物理地址空間,它是從0開(kāi)始的、是一維的;l 將用戶程序被裝進(jìn)內(nèi)存,一個(gè)程序所占有的所有內(nèi)存單元的物理地址組成該程序的物理地址空間(也稱存儲(chǔ)空間)。四、地址映射(變換、重定位)當(dāng)程序被裝進(jìn)內(nèi)存時(shí),通常每個(gè)信息的邏輯地址和它的物理地址是不一致的,需要把邏輯地址轉(zhuǎn)換為對(duì)應(yīng)的物理地址-地址映射;地址映射分靜態(tài)和動(dòng)態(tài)兩種方式。1、靜態(tài)地址重定位是程序裝入時(shí)集中一次進(jìn)行的地址變換計(jì)算。物理地址 = 重定位的首地址 + 邏輯地址 優(yōu)點(diǎn):簡(jiǎn)單,不需要硬件支持; 缺點(diǎn):一個(gè)作業(yè)必須占據(jù)連續(xù)的存儲(chǔ)空間;裝入內(nèi)存的作業(yè)一般不再移動(dòng);不能實(shí)現(xiàn)虛擬存儲(chǔ)。2、動(dòng)態(tài)地址重定位:在程

4、序執(zhí)行的過(guò)程中,每當(dāng)Cpu訪問(wèn)一個(gè)內(nèi)存地址之前對(duì)要訪問(wèn)的地址進(jìn)行地址變換計(jì)算。 優(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ǔ)管理方法,在內(nèi)存中為程序及其數(shù)據(jù)找到合適的位置,將它們裝入內(nèi)存; 程序運(yùn)行結(jié)束后,OS收回程序釋放的內(nèi)存資源,并進(jìn)行適當(dāng)?shù)恼?,以便再分配給其他的程序使用。六、存儲(chǔ)保護(hù)為多道并發(fā)程序共享內(nèi)存提供保障,使在內(nèi)存中的各道程序“各行其道”,只能訪問(wèn)屬于自己的區(qū)域(自己的物理地址空間),避免各道程序間相互干擾,特別是當(dāng)一道程序發(fā)生錯(cuò)誤時(shí),不致于影響其他程序的運(yùn)行。

5、通常由硬件完成保護(hù)功能,由軟件輔助實(shí)現(xiàn)。存儲(chǔ)保護(hù)可以實(shí)現(xiàn): 保護(hù)系統(tǒng)程序區(qū)不被用戶侵犯(有意或無(wú)意的); 不允許用戶程序讀寫(xiě)不屬于自己地址空間的數(shù)據(jù)(系統(tǒng)區(qū)地址空間、其他用戶程序的地址空間)。存儲(chǔ)保護(hù)的過(guò)程:每個(gè)進(jìn)程都有自己獨(dú)立的進(jìn)程空間。如果一個(gè)進(jìn)程在運(yùn)行時(shí)所產(chǎn)生的要訪問(wèn)的地址在其地址空間之外,稱為發(fā)生了地址越界。每當(dāng)程序要訪問(wèn)某個(gè)內(nèi)存單元時(shí),由硬件檢查是否允許,如果允許則執(zhí)行,否則產(chǎn)生地址越界中斷,由操作系統(tǒng)進(jìn)行相應(yīng)處理。七、存儲(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)容:代碼共享(要求代碼為

6、純代碼);數(shù)據(jù)共享。八、存儲(chǔ)“擴(kuò)充”為了給大作業(yè)提供方便,由OS把內(nèi)存和外存統(tǒng)一管理起來(lái),實(shí)現(xiàn)自動(dòng)覆蓋。當(dāng)一個(gè)大作業(yè)在執(zhí)行時(shí),有一部分邏輯地址空間的內(nèi)容在內(nèi)存,另一部分在外存。當(dāng)要訪問(wèn)的信息不在內(nèi)存時(shí),由os(而不是程序員安排的I/O指令)自動(dòng)把它們從外存調(diào)入內(nèi)存。從效果上看,這樣的os好象為這個(gè)用戶作業(yè)提供了一個(gè)容量比實(shí)際內(nèi)存大的存儲(chǔ)器,從而實(shí)現(xiàn)了存儲(chǔ)“擴(kuò)充”。擴(kuò)充后的存儲(chǔ)器稱為虛擬存儲(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ǔ)的

7、分配方式 主要是一些請(qǐng)求式的分配方式,如請(qǐng)求分頁(yè)式存儲(chǔ)管理、請(qǐng)求分段式存儲(chǔ)管理等。對(duì)于以上每一種存儲(chǔ)管理方法我們應(yīng)該掌握: 基本原理(思想方法) 存儲(chǔ)管理使用的數(shù)據(jù)結(jié)構(gòu) 邏輯地址的格式 地址變換的方式 存儲(chǔ)的分配和回收過(guò)程 特點(diǎn)(優(yōu)、缺點(diǎn))第一節(jié) 程序的裝入(和鏈接)一、程序的裝入就是OS的裝入程序(Loader)將用戶程序的裝入模塊裝入內(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í),不僅要

8、求程序員熟悉內(nèi)存的使用情況,而且一旦程序或數(shù)據(jù)被修改后,可能要改變程序中的所有地址。因此,通常是寧可在程序中采用符號(hào)地址,然后在編譯或匯編時(shí),再將這些符號(hào)地址轉(zhuǎn)換為絕對(duì)地址。2、可重定位裝入方式編譯時(shí)產(chǎn)生相對(duì)地址的目標(biāo)代碼。程序被裝入內(nèi)存時(shí),進(jìn)行地址變換,然后在訪問(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)行訪問(wèn)時(shí),才對(duì)它的地址進(jìn)行轉(zhuǎn)換。因此,裝入內(nèi)存后的所有地址都仍是相對(duì)地址。第二節(jié) 連續(xù)分配存儲(chǔ)管理方式一、單一連續(xù)分配1、

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

10、的空間,稱為分區(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è)的邏輯地址空間是線性的,物理地址空間是連續(xù)的;主要采用靜態(tài)地址重定位方式進(jìn)行地址變換。1、基本原理系統(tǒng)生成時(shí),把可分配的主存儲(chǔ)器空間分割成若干個(gè)區(qū)域,每個(gè)區(qū)域稱為一個(gè)分區(qū)(每個(gè)分區(qū)的內(nèi)部是連續(xù)的)。每個(gè)分區(qū)的大小可以相同也可以不同,但分區(qū)大小固定不變,每個(gè)分區(qū)能裝一個(gè)且只能裝一個(gè)作業(yè)。P27-282、管理使用的數(shù)據(jù)結(jié)構(gòu)分區(qū)說(shuō)明表:記錄系統(tǒng)中的現(xiàn)有內(nèi)存分區(qū)及其使用狀態(tài)。3、存儲(chǔ)分配與回收過(guò)程當(dāng)有一個(gè)用戶作業(yè)要裝入時(shí),由OS

11、檢索分區(qū)說(shuō)明表,從中找一個(gè)大小能滿足要求的、空閑的分區(qū),將用戶作業(yè)裝入,并在分區(qū)說(shuō)明表中將該分區(qū)的狀態(tài)置為“已分配”;若沒(méi)有找到大小足夠的分區(qū),則拒絕為該程序分配內(nèi)存。當(dāng)一個(gè)用戶作業(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è)能滿足作業(yè)要求的空閑分區(qū),從中劃出一個(gè)大小正好滿足要裝入作業(yè)要求的存儲(chǔ)區(qū),分配給這一作業(yè),剩下的部分被作為一個(gè)新的空閑分區(qū)

12、記錄在空閑分區(qū)表中。2、存儲(chǔ)管理的數(shù)據(jù)結(jié)構(gòu)(二選一)(1) 空閑區(qū)表-記錄目前系統(tǒng)中每個(gè)空閑區(qū)的起始地址和長(zhǎng)度;(2) 空閑分區(qū)鏈-將目前系統(tǒng)中的空閑分區(qū)按一定的順序鏈接起來(lái)。在每個(gè)分區(qū)的頭、尾設(shè)置指向前后分區(qū)的指針,并記錄本分區(qū)的一些分配控制信息。系統(tǒng)設(shè)立一個(gè)鏈?zhǔn)字羔槪赶虻谝粋€(gè)空閑塊。3、存儲(chǔ)分配與回收過(guò)程(1) 分配(2) 回收-會(huì)出現(xiàn)四種情況 回收區(qū)與它前面的一個(gè)空閑區(qū)相鄰(a) 回收區(qū)與它后面的一個(gè)空閑區(qū)相鄰(b) 回收區(qū)與它前、后的兩個(gè)空閑區(qū)相鄰(c) 回收區(qū)前后都沒(méi)有相鄰的空閑區(qū)當(dāng)某一塊歸還后,要根據(jù)不同的情況,前后空間合并,再分別處理存儲(chǔ)管理的數(shù)據(jù)結(jié)構(gòu)。4、存儲(chǔ)分配的算法-空閑

13、分區(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)算法):類似首次適應(yīng)法的數(shù)據(jù)組織。每次分區(qū)時(shí),總是從上次查找結(jié)束的地方開(kāi)始掃描,找到一個(gè)足夠大的空白區(qū)分配,并循環(huán)查找。(3) 最佳適應(yīng)算法:按空閑區(qū)容量大小從小到大來(lái)組織組織空閑分區(qū)表或空閑分區(qū)鏈。每次分區(qū)時(shí),總是從表頭或鏈?zhǔn)组_(kāi)始掃描。所以,接到內(nèi)存申請(qǐng)時(shí),會(huì)在空閑區(qū)中找到一個(gè)滿足要求的最小空閑區(qū)進(jìn)行分配。(4) 最壞適應(yīng)算法:與最佳適應(yīng)法相反,它在作業(yè)選擇存儲(chǔ)塊時(shí),總是尋找一

14、個(gè)滿足要求的最大的空閑分區(qū)。討論以上算法的優(yōu)缺點(diǎn).6、動(dòng)態(tài)分區(qū)方式中的“碎片”問(wèn)題經(jīng)過(guò)一段時(shí)間的分配回收后,內(nèi)存中會(huì)出現(xiàn)很多很小的空閑塊。它們每一塊都較小,不足以滿足一般作業(yè)的分配要求;但其容量總和卻有著相當(dāng)?shù)囊?guī)模。這些空閑塊被稱為碎片。碎片的存在造成了存儲(chǔ)資源的浪費(fèi)。解決辦法:碎片整理,通過(guò)在內(nèi)存移動(dòng)程序,將所有小的空閑區(qū)域合并為大的空閑區(qū)域。問(wèn)題:系統(tǒng)開(kāi)銷大(?)。四、可重定位分區(qū)1、動(dòng)態(tài)重定位引入的原因在動(dòng)態(tài)分區(qū)分配中,“碎片”整理,是定時(shí)進(jìn)行或在存儲(chǔ)回收時(shí)進(jìn)行的,所有用戶程序的存儲(chǔ)分區(qū)都要進(jìn)行改動(dòng),并重新進(jìn)行靜態(tài)地址重定位。這樣的“碎片”整理工作將花費(fèi)較多的系統(tǒng)開(kāi)銷。2、動(dòng)態(tài)重定位分區(qū)

15、分配處理流程可重定位分區(qū)分配,與動(dòng)態(tài)分區(qū)方法基本相同,但它的碎片拼接是在存儲(chǔ)分配時(shí)進(jìn)行的,以滿足新作業(yè)需求為目的,并采用動(dòng)態(tài)地址重定位。五、對(duì)換(交換)技術(shù)“對(duì)換”引入的原因:P58所謂“對(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ǔ)。P59對(duì)換

16、空間的管理:在具有對(duì)換功能的OS中,通常把外存分為文件區(qū)和對(duì)換區(qū)。前者用于存放文件,后者用于存放從內(nèi)存換出的進(jìn)程。P60-61進(jìn)程的換出:系統(tǒng)首先選擇處于阻塞狀態(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)程為止。以上談到的是整體交換,部分交

17、換在虛擬存儲(chǔ)中介紹。六、動(dòng)態(tài)分區(qū)式存儲(chǔ)管理特點(diǎn)的討論1、作業(yè)連續(xù)存放(作業(yè)的邏輯地址空間和物理地址空間都是一維的)2、有限的虛擬存儲(chǔ)分區(qū)式管理不能實(shí)現(xiàn)那種用戶進(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ì)寄存器:基址寄存器:存放起始地址,限長(zhǎng)寄存器:存放長(zhǎng)度(或上界寄存器/下界寄存器)4、主要優(yōu)缺點(diǎn): 實(shí)現(xiàn)了多進(jìn)程對(duì)內(nèi)存的共享,支持多道程序設(shè)計(jì); 要求較少的硬件支持,管理方法簡(jiǎn)單,容易實(shí)現(xiàn)。 內(nèi)存利用率仍不高(碎片

18、問(wèn)題); 用戶作業(yè)的大小受分區(qū)大小的限制; 不能實(shí)現(xiàn)信息的共享。第三節(jié) 基本(靜態(tài))分頁(yè)存儲(chǔ)管理方式一、基本原理將系統(tǒng)的物理地址空間劃分成大小相同的片,稱為塊;將作業(yè)的邏輯地址空間劃分成和塊大小一樣的片,稱為頁(yè)(最后不足一頁(yè)的也算一頁(yè));給作業(yè)進(jìn)行存儲(chǔ)分配時(shí),將作業(yè)的一頁(yè)存入存儲(chǔ)器的一塊中。邏輯上相鄰的頁(yè),物理上可以不相鄰。塊的大小與頁(yè)的大小一致,與系統(tǒng)內(nèi)存的大小以及內(nèi)、外存間數(shù)據(jù)的傳輸速度相關(guān),通常是2nB。二、邏輯地址的格式作業(yè)的邏輯地址空間是一維的,每個(gè)邏輯地址由頁(yè)號(hào)和頁(yè)內(nèi)地址組成,見(jiàn)下圖左;對(duì)某特定機(jī)器,其地址結(jié)構(gòu)是一定的,頁(yè)的大小固定為L(zhǎng)。若給定一個(gè)邏輯地址A,則頁(yè)號(hào)P和頁(yè)內(nèi)地址d可

19、按下式求得,見(jiàn)下圖右。三、存儲(chǔ)管理的數(shù)據(jù)結(jié)構(gòu)1、頁(yè)表:每個(gè)進(jìn)程一張,在初次為進(jìn)程分配內(nèi)存時(shí)建立進(jìn)程的頁(yè)表。一個(gè)進(jìn)程分為多少頁(yè),它的頁(yè)表就有多少行(表目)。每一行中記錄著進(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è)表一般是常駐內(nèi)存、連續(xù)存放的,頁(yè)表的首地址和長(zhǎng)度存在進(jìn)程的PCB中。系統(tǒng)為執(zhí)行態(tài)的用戶進(jìn)程提供了一個(gè)頁(yè)表寄存器,用來(lái)存放這個(gè)進(jìn)程的頁(yè)表首地址和長(zhǎng)度。采用動(dòng)態(tài)地址重定位。1、基本的地址變換過(guò)程:例: 0

20、100: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、引入快表:由于頁(yè)表也存放在主存中,這樣,每讀寫(xiě)一個(gè)內(nèi)存單元,首先必須讀內(nèi)存一次,訪問(wèn)頁(yè)表,之后根據(jù)形成的實(shí)際地址再訪問(wèn)內(nèi)存,這樣使訪問(wèn)主存的次數(shù)加倍,因而使總的處理速度明顯下降。為了解決這個(gè)問(wèn)題人們采用一組寄存器,存放最近訪問(wèn)過(guò)的頁(yè)的頁(yè)表表項(xiàng)-

21、引入“快表”每次地址變換時(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è)建立頁(yè)表,將頁(yè)表的首地址和長(zhǎng)度N存入進(jìn)程的PCB中 分配N個(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,修改位示圖。

22、六、兩級(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è)表邏輯地址的格式為:2、多級(jí)頁(yè)表字長(zhǎng)32位的計(jì)算機(jī),進(jìn)程頁(yè)表多大?用戶邏輯地址空間最大 232=4GB設(shè):頁(yè)面大小為 212=4KB則:一個(gè)進(jìn)程最多 220 頁(yè)設(shè):頁(yè)表的每個(gè)表項(xiàng)占4B則:進(jìn)程頁(yè)表最長(zhǎng)為4B×220=210×212B = 1024 頁(yè)外頁(yè)表最長(zhǎng) 1024&

23、#215;4B=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è)表。七、基本(靜態(tài))頁(yè)式存儲(chǔ)管理的特點(diǎn)1、作業(yè)的邏輯地址空間是一維的2、是一種離散分配的存儲(chǔ)管理方法,用戶作業(yè)不要求連續(xù)的存儲(chǔ)空間,碎片的規(guī)模小于1頁(yè),而且數(shù)量很少3、要求進(jìn)程在執(zhí)行前全部裝入內(nèi)存,所以進(jìn)程的大小仍受內(nèi)存空間的限制4、“頁(yè)”是存儲(chǔ)的單位,在邏輯上沒(méi)有意義,很難實(shí)現(xiàn)信息共享和存儲(chǔ)保護(hù)第四節(jié) 基本(靜態(tài))分段

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

25、,而不同段之間的存放的空間可以是不連續(xù)的。三、邏輯地址格式分段式存儲(chǔ)管理中,用戶作業(yè)的邏輯地址空間是二維的(可能不連續(xù)),一個(gè)單元的邏輯地址格式為:段號(hào)段內(nèi)地址每一個(gè)段號(hào)和一個(gè)邏輯段的名稱對(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)度就有幾行。段表中最重要的信息是它的前三項(xiàng),依靠它進(jìn)行地址重定位。五、地址變換進(jìn)程的段表一般是常駐內(nèi)存、連續(xù)存放的,段表的首地址和長(zhǎng)度存在進(jìn)程的PCB中。系統(tǒng)為執(zhí)行態(tài)的用戶進(jìn)程提供了段表寄存器,用來(lái)存放這個(gè)進(jìn)程的段表首地址和長(zhǎng)度。六、存儲(chǔ)分配與回收在段式存儲(chǔ)管理中,內(nèi)存的空

26、閑空間,采用類似動(dòng)態(tài)分區(qū)式存儲(chǔ)管理的方式組織、分配和回收。只是在這里,存放的對(duì)象是進(jìn)程的一個(gè)邏輯段,而不是整個(gè)進(jìn)程。1、存儲(chǔ)分配首先,程序開(kāi)始的若干邏輯段,按照類似動(dòng)態(tài)分區(qū)分配的方法被逐一放入內(nèi)存。2、存儲(chǔ)回收當(dāng)作業(yè)執(zhí)行完畢時(shí),系統(tǒng)將段表中各行記錄的分區(qū),采用類似動(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)管理的需要而不是用戶的需要。段則是信息的邏輯單位,它含有一組其意義相對(duì)完整的信息。分段的目的是為了能更好地滿足用戶的需要。2、頁(yè)的大小固定且由系統(tǒng)決定,由系統(tǒng)把邏輯地址劃分

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論