版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、操作系統(tǒng)第四章-存儲器管理操作系統(tǒng)第四章-存儲器管理4.1 存儲器管理的若干概念 存儲器 地址變換 虛擬存儲器 4.1 存儲器管理的若干概念一存儲器1存儲器 存儲器主存 (內(nèi)部存儲器,磁芯存 儲器)輔存 (外存)磁盤、磁鼓、 磁帶、 軟盤一存儲器存儲器主存 (內(nèi)部存儲器,磁芯存 輔存 (外存) 主存 系統(tǒng)區(qū) (OS標準子程序) 用戶區(qū) (用戶程序、數(shù)據(jù))2主存儲器的物理組織,多級存儲器高速緩存 主存外存 主存 系統(tǒng)區(qū) (OS標準子程序) 用戶區(qū) (用戶程序 3存儲器管理的功能: (1) 主存空間分配和保護:主存儲器中允許同時容納各種軟件和多個用戶程序時,必須解決主存空間如何分配以及各存儲區(qū)內(nèi)的
2、信息如何保護等問題。對不同的存儲管理方式,采用的主存空間分配策略是不同的。為了保護區(qū)域內(nèi)信息不被破壞,必須實現(xiàn)存儲保護。存儲保護的工作必須由硬件和軟件配合來實現(xiàn)。 (2)主存空間的重定位 配合硬件做好地址轉(zhuǎn)換工作,把一組邏輯地址空間轉(zhuǎn)換成絕對地址空間,以保證處理器的正確執(zhí)行。 3存儲器管理的功能: (3)主存空間的共享 在多道程序設(shè)計的系統(tǒng)中,同時進入主存儲器執(zhí)行的作業(yè)可能要調(diào)用同的程序。例如,調(diào)用編譯程序進行編譯,把這個編譯程序存放在某個區(qū)域中,各作業(yè)要調(diào)用時就訪問這個區(qū)域,因此這個區(qū)域就是共享的。同樣也可實現(xiàn)公共數(shù)據(jù)的公享。 (4) 主存空間的擴充 提供虛擬存儲器,使用戶編制程序時不必考慮
3、主存儲器的實際容量,使計算機系統(tǒng)似乎有一個比實際主存儲器容量大得多的主存空間。 (3)主存空間的共享 二地址變換1.存儲空間 地址空間一個目標程序所限定的地址范圍 邏輯地址(相對地址)當對源程序進行編譯時,編譯后一個目標程序所限定的地址范圍稱為該作業(yè)的邏輯地址空間。 物理地址(絕對地址)主存中一系列存儲 物理單元。 地址空間是邏輯地址的集合。存儲空間是物理地址的集合。一個是虛的概念,一個是實的物體。 二地址變換2.重定位 當一個地址裝入與其地址空間不一致的存儲空間中,就得要地址變換。也就是說將虛地址映射為內(nèi)存地址,把這種作法叫做地址重定位 (1)靜態(tài)地址重定位 在裝入一個作業(yè)時,把作業(yè)中的指令
4、地址全部轉(zhuǎn)換為絕對地址(地址轉(zhuǎn)換工作是在作業(yè)執(zhí)行前集中一次完成的)在作業(yè)執(zhí)行過程中就無須再進行地址轉(zhuǎn)換工作。2.重定位 靜態(tài)地址重定位優(yōu)點它的主要優(yōu)點是,無需增加硬件地址變換機構(gòu),因而可在一般計算機上實現(xiàn)。靜態(tài)地址重定位缺點主要缺點有:要求給每個作業(yè)分配一個連續(xù)的存儲空間,且在作業(yè)的整個執(zhí)行期間不能再移動,因而也就不能實現(xiàn)重新分配主存。用戶必須事先確定所需的存儲量,若所需的存儲量超過可用存儲空間時,用戶必須考慮覆蓋結(jié)構(gòu)。用戶之間難以共享主存中的同一程序副本。靜態(tài)地址重定位優(yōu)點 2動態(tài)地址重定位: 動態(tài)地址重地位是在程序執(zhí)行過程中,在cpu訪問內(nèi)存之前,將要訪問的程序或數(shù)據(jù)地址轉(zhuǎn)換成內(nèi)存地址.
5、動態(tài)重定位依靠硬件地址變換機構(gòu)完成。 Load A500 123455001000 Load A500 12345+虛擬空間 內(nèi)存空間 VR BR. 2動態(tài)地址重定位: Load 地址重定位機構(gòu)需要一個或多個基地址寄存器BR和一個或多個程序虛地址寄存器VR。指令或數(shù)據(jù)的內(nèi)存地址MA與虛地址的關(guān)系為:MA=(BR)+(VR) 其中,(x)表示寄存器x中的內(nèi)容 地址重定位機構(gòu)需要一個或多個基地址寄存器BR和一最簡單的辦法是利用一個重定位寄存器。該寄存器的值由調(diào)度程序根據(jù)作業(yè)分配到的存儲空間的起始地址來設(shè)定。在具有這種地址變換機構(gòu)的計算機系統(tǒng)中,當作業(yè)執(zhí)行時,不是根據(jù)CPU
6、給出的邏輯地址去訪問主存,而是將邏輯地址與重定位寄存器中的內(nèi)容相加后得到的地址作為訪問主存的地址。 最簡單的辦法是利用一個重定位寄存器。該寄存器的值由調(diào)度程序動態(tài)重定位的主要優(yōu)點有: 用戶作業(yè)不要求分配連續(xù)的存儲空間。用戶作業(yè)在執(zhí)行過程中,可以動態(tài)申請存儲空間和在主存中移動。有利于程序段的共享。動態(tài)重定位的主要缺點有: 需要附加的硬件支持。實現(xiàn)存儲管理的軟件算法比較復(fù)雜。動態(tài)重定位的主要優(yōu)點有: 三.虛擬存儲器 什么是虛擬存儲器? 虛擬存儲器是一種存儲管理技術(shù),用以完成用小的內(nèi)存實現(xiàn)在大的虛擬空間中程序的運行工作。 為了給大作業(yè)用戶提供方便,使它們擺脫對主存和輔存的分配和管理問題,由操作系統(tǒng)把
7、多級存儲器統(tǒng)一管理起來,實現(xiàn)自動覆蓋。既一個大作業(yè)在執(zhí)行時, 其一部分地址空間在主存,另一部分在輔存,當訪問的信息不在主存時.因此,從效果來看,這樣的系統(tǒng),好象用戶提供了存儲容量比實際主存大得多的存儲器,人們稱這個為虛擬存儲器。之所以稱它為虛擬存儲器,因為這樣的存儲器實際上并不存在而只是系統(tǒng)增加自動覆蓋功能,給用戶造成的一種幻覺,仿佛它有一個很大的主存供它使用。這是虛擬存儲器的最初概念。 三.虛擬存儲器 這種想法的核心,實質(zhì)上也就是把作業(yè)的地址空間和實際主存的存儲空間似為兩個不同的概念.一個計算機系統(tǒng)算題人員提供了一個多大的地址空間,它就所在這個地址空間編制程序,而完全用不著考慮實際主存的大小
8、.換句話說, 虛擬存儲器就是一個地址空間.一個虛存儲器的最大容量是由計算機的地址結(jié)構(gòu)確定的.若CPU給出的有效地址長度為18位,可以尋址范圍為:0-256k;若地址的長度為為20位,則尋址范圍為:1024k. 實際虛擬存儲器其一是要相當容量的輔存,足以存放所有并列作業(yè)的地址空間.其二是要有一定的主存,因為處理機上運行的作業(yè),必須有一定的信息在主存中.其三是地址變換機構(gòu). 這種想法的核心,實質(zhì)上也就是把作業(yè)的地址空間和實際 4.2 分區(qū)存儲管理 4.2.1 分區(qū)管理基本原理 1.固定分區(qū)法 固定分區(qū)把主存分成若干個固定大小的存儲區(qū)。區(qū)號分區(qū)長度起始地址狀態(tài)18K20K已分配232K28K已分配3
9、64K60K已分配4132K124K已分配OS20K28K60K124K256K進程A(6K)進程B(25K)進程C(36K) 4.2 分區(qū)存儲管理區(qū)號分區(qū)長度起 2.動態(tài)分區(qū)法 因為固定分區(qū)主存利用率不高,使用起來不靈活,所以出現(xiàn)了可變分區(qū)的管理技術(shù)。 動態(tài)分區(qū)原則:存儲空間的劃分是在裝作業(yè)時進行的。從可用的自由存儲空間內(nèi),劃出一個大小正好等于作業(yè)大小的存儲區(qū),并分配給這一作業(yè)。 進程 A(8K)進程 D(124K)進程 B(16K)進程 C(64K)OS進程A進程B進程C進程DOS進程A進程B進程COS進程A進程BOS進程A 2.動態(tài)分區(qū)法進程 A(8KOSA(8K)24K空閑區(qū)B(16K
10、)C完成(64K)空閑區(qū)D(124K)OSA(8K)8K空閑區(qū)B(16K)E(50K)D(124K)14K空閑區(qū)F(16K)OSA(8K)8K空閑區(qū)空閑區(qū)16KE(50K)D(124K)空閑合并124+14=138K進程E(50K)進程F(16K)進入內(nèi)存進程B(16K)進程D(124K)完成內(nèi)存分配變化過程OSA(8K)24K空閑區(qū)B(16K)C完成(64K)D(1 4.2.2分區(qū)的分配與回收固定式分區(qū)和可變式分區(qū)的存儲管理算法有如下三種: 最佳適應(yīng)算法(Best Fit) (1)含義最佳適應(yīng)算法就是為一作業(yè)選擇分區(qū)時總是尋找其大小最接近于作業(yè)所要求的存儲空間。換句話說,把作業(yè)放入這樣的分區(qū)
11、后剩下的部分最小。(2)優(yōu)點這種算法的優(yōu)點是:如果存儲空間中具有正好是所要求大小的空閑區(qū),則必然被選中;如果不存在這樣的空閑區(qū),也只對比要求稍大的空閑區(qū)劃分,而絕不會去劃分一個更大的空閑區(qū)。(3)實現(xiàn)方法為了加快查找速度,應(yīng)將空閑區(qū)按其大小遞增的順序排列,組織成一空閑區(qū)鏈。 4.2.2分區(qū)的分配與回收最壞適應(yīng)算法(Worst Fit)(1)含義 它在為作業(yè)選擇存儲空間時,總是尋找最大的空閑區(qū)。(2)實現(xiàn)方法 空閑區(qū)應(yīng)按其大小遞減的順序排列。分配時只看鏈頭空閑區(qū)是否滿足要求,決定是否分配。最壞適應(yīng)算法(Worst Fit)首次適應(yīng)算法(First Fit) (1)含義 最佳適應(yīng)和最壞適應(yīng)算法各有
12、利弊。首次適應(yīng)算法是對它們進行折衷考慮后設(shè)計出來的。(2)實現(xiàn)方法 將空閑區(qū)按其在存儲空間中的起始地址遞增的順序排列。為作業(yè)分配存儲空間時,從空閑區(qū)鏈的始端開始查找,選則第一個滿足要求的空閑區(qū)。首次適應(yīng)算法(First Fit) 操作系統(tǒng)第四章-存儲器管理(1)分區(qū)分配的主要步驟有: 從未分配表中找到一個足以容納該作業(yè)的可用空閑區(qū);如這個空閑區(qū)比所要求的大,則將它分成兩部分:一部分成為已分配的分區(qū),剩下部分仍為空閑區(qū); 修改兩張表的有關(guān)信息,并回送一個所分配分區(qū)的序號或該區(qū)的首址。(1)分區(qū)分配的主要步驟有:要求Xk大小分區(qū)取分區(qū)說明表第一項狀態(tài)位置正在使用取下一表項無法分配該分區(qū)空閑?分區(qū)長
13、度Xk?表結(jié)束?返回分區(qū)號否否否是是是固定分區(qū)分配算法要求Xk大小分區(qū)取分區(qū)說明表第一項狀態(tài)位置正在使用取下一表項最佳分配算法例子 最佳分配算法例子系統(tǒng)回收一個分區(qū)的主要步驟有:檢查回收分區(qū)是否與空閑區(qū)鄰接,如鄰接則加以合并,使之成為一個連續(xù)的大空閑區(qū)。修改兩張說明表。系統(tǒng)回收一個分區(qū)的主要步驟有:可重定位分區(qū)存儲管理 含義 采用動態(tài)分配的可變分區(qū)管理,即分配時可以將主存重的空閑區(qū)拼接后再分配。 由于可變式分區(qū)存儲管理是根據(jù)作業(yè)的需求量劃分分區(qū)的,因此消除了固定式分區(qū)分配造成的內(nèi)零頭。但是,由于作業(yè)的多次請求和釋放,主存中經(jīng)常可能出現(xiàn)大量的不能充分利用的小空閑區(qū)。 可重定位分區(qū)存儲管理 含義操
14、作系統(tǒng)第四章-存儲器管理 采用拼接技術(shù),把零頭集中起來形成一個大的空閑區(qū)。實現(xiàn)方法是移動某些已分配區(qū)中的信息,移動夠分配為止或者使所有的作業(yè)位于存儲器的一端,把空閑區(qū)全部留在另一端, 采用拼接技術(shù),把零頭集中起來形成一個大空閑區(qū)拼接的時機選擇 進行拼接的時機可選則為 (1)當有作業(yè)完成釋放分區(qū)時,就立即拼接。這樣的拼接是比較頻繁的,要花費較多的處理機時間。 (2)當某一作業(yè)請求分配存儲空間時,若當時主存沒有足夠大的空閑區(qū),但所有空閑區(qū)的總和可以滿足該作業(yè)的要求,此時進行拼接。這樣的拼接可節(jié)省處理機時間。空閑區(qū)拼接的時機選擇 分配算法流程 45 頁式管理 4.5.1頁式管理的基本原理 在分區(qū)存儲
15、管理中,都要求把一個作業(yè)的地址空間裝入到連續(xù)的存儲空間內(nèi),不是存在內(nèi)零頭,就是存在外零頭或為解決外零頭花費時間進行“拼接”。如果我們能取消作業(yè)對連續(xù)性的要求,必然會進一步提高主存的利用率,又無需為移動信息付出代價。分頁管理就是在這個指導(dǎo)思想下設(shè)計出來的。 45 頁式管理 1. 分頁技術(shù)的實現(xiàn)原理 等分主存: 把主存的存儲空間劃分成大小相等的片,稱為存儲塊,或稱為頁架(Page Frame) 用戶邏輯地址空間的分頁:把用戶的邏輯地址空間(虛地址空間)劃分成若干個與存儲塊大小相等的片,稱之為頁面或頁(Page)。并給各頁從零開始依次編以連續(xù)的頁號0,1,2,。 邏輯地址的表示:用戶的邏輯地址一般是
16、從基地址“0”開始連續(xù)編址,即是相對地址。在分頁系統(tǒng)中,每個虛擬地址(相對地址)用一個數(shù)對(p,d)來表示。其中p是頁號,d是該虛擬地址在頁面號為p的頁中的相對地址,稱為頁內(nèi)地址(位移量)。 主存分配原則:系統(tǒng)以存儲塊為單位把主存分給作業(yè)或進程,并且分給一個作業(yè)的各存儲塊不一定是相鄰和連續(xù)的。 1. 分頁技術(shù)的實現(xiàn)原理頁表在分頁系統(tǒng)中,作業(yè)的一頁可以分配到主存空間中任何一個可用的存儲塊。但是,系統(tǒng)怎么知道作業(yè)的哪一頁分配到哪一存儲塊內(nèi)?為此,系統(tǒng)建立了一張頁面映象表,簡稱頁表。用一張頁表來描述每頁的頁號與所在塊的塊號的映射。頁表為了便于管理和保護,系統(tǒng)為每個裝入主存的作業(yè)建立一張相應(yīng)的頁表,它
17、的起始地址及大小保存在該作業(yè)的PCB中。一旦這個作業(yè)被調(diào)度執(zhí)行,把它的頁表始址及大小裝入特定的頁表寄存器中。頁號塊號存取控制021328為了便于管理和保護,系統(tǒng)為每個裝入主存的作業(yè)建立一張相應(yīng)的頁 4.5.2 簡單分頁管理 在作業(yè)或進程開始執(zhí)行之前,把該作業(yè)或進程的程序段和數(shù)據(jù)全部裝入主存的各個空閑塊中,并通過頁表和硬件地址變換機構(gòu)實現(xiàn)虛擬地址到主存物理地址的地址映射。1主存的分配與回收 所需的表格為了實現(xiàn)分頁存儲管理,在軟件方面應(yīng)建立如下表格,并由操作系統(tǒng)實施管理。 (1)頁表(PMT)。每個作業(yè)一張表,用于該作業(yè)的地址變換,該作業(yè)有多少頁面就有多少表目。 (2)存儲分塊表(MBT)。整個系
18、統(tǒng)一張表。該表中每一表目對應(yīng)一個存儲塊,記錄了該塊的狀態(tài):已分配或空閑。 4.5.2 簡單分頁管理2.分配算法 當進程或作業(yè)要求分配主存塊時,首先檢查是否有足夠的空閑塊,如果沒有,則本次無法分配。如果有則首先分配設(shè)置頁表,將分到的主存快號添入頁表中。2.分配算法 3.地址變換 地址變換過程(1)當調(diào)度一個作業(yè)執(zhí)行時,首先將頁表始址及大小裝入頁表寄存器。(2)作業(yè)執(zhí)行過程中CPU產(chǎn)生的每一個邏輯地址,由硬件地址變換機構(gòu)自動將其分成兩部分:一部分為頁號,另一部分是頁內(nèi)位移量。(3)這個頁號先與頁表寄存器中的當前頁表大小進行比較。如果頁號太大,表示訪問越界,系統(tǒng)產(chǎn)生相應(yīng)的中斷。如果頁訪問是合法的,則
19、由頁表始址和頁號計算出所對應(yīng)的物理塊號;(4)取出其存取控制字段,作存取控制驗證,若合法則將物理塊號與邏輯地址中的位移量拼接,形成最終訪問的物理地址。否則,產(chǎn)生相應(yīng)訪問非法中斷。3.地址變換地址變換例子例如,設(shè)一個3頁長的進程具有頁號0、1、2,分到的主存快號為2、3、8。假設(shè)頁的大小為1K,指令LOAD 1,2500的虛地址為100。下面我們以該例子來說明地址變換過程。地址變換例子 (1)指令地址100轉(zhuǎn)換 由虛地址100可知,指令LOAD 1,2500在第0頁的100單元中。由于第0頁在主存的第二塊中,因此,該指令在主存的地址為2048+100=2148。(2)指令地址2500轉(zhuǎn)換 當CP
20、U執(zhí)行到第2148單元的指令時,地址變換機構(gòu)首先將2500轉(zhuǎn)換為頁號與頁內(nèi)地址兩部分,即P=2,W=452。由頁表,可知第二頁所對應(yīng)的主存快為8。將塊號8與頁內(nèi)地址452相連,得到待訪問的主存物理地址為8644。 (1)指令地址100轉(zhuǎn)換操作系統(tǒng)第四章-存儲器管理4. 超高速緩存 聯(lián)想存儲器 為了提高地址變換速度,且不增加太多的硬件投資,通過在地址變換機構(gòu)中增設(shè)一組數(shù)量不多的寄存器,把它作為超高速緩沖寄存器來使用,存放當前訪問的那些頁的頁號和塊號。 地址轉(zhuǎn)換過程(1)當運行進程要訪問邏輯地址v時,硬件自動將邏輯地址v截成頁號p和頁內(nèi)地址d。(2)地址轉(zhuǎn)換機構(gòu)首先以頁號p和高速緩沖器中各表目相比
21、較。(3)若該頁不在高速緩沖器中,則訪問存儲器中的頁表。如果相符,則它送出相應(yīng)的塊號與頁內(nèi)地址一起形成物理地址,并按此地址訪主存。 4. 超高速緩存 超高速緩存(找到) 超 超高速緩存(未找到) 超高速緩存(未找到) 4.5.3 請求分頁管理 請求分頁存儲管理是在簡單分頁管理基礎(chǔ)上發(fā)展起來的。請求頁式管理在作業(yè)或進程開始執(zhí)行之前,只把當前需要的一部分頁面裝入主存,其它部分在作業(yè)執(zhí)行過程中需要時,再從輔存上調(diào)入主存 4.5.3 請求分頁管理 1.頁表的擴充 頁表增加信息通常頁表表目應(yīng)增加如下信息:(1)中斷位:表示該頁是否在主存。中斷位為0表示該頁在主存;為1表示不在主存。(2)修改位:該位為0
22、時,表示該頁面中的數(shù)據(jù)未被修改過。該位為1時,表示該頁面中的信息已被修改過。(3)訪問位:表示該頁面在最近期間是否被訪問過。該位為0時,表示該頁面未被訪問過。為1時,表示該頁面最近被訪問過。該位主要用于頁面置換策略中。(4)輔存地址:指出該頁面在輔存上的存放地址。擴充后的頁表如圖所示: 頁號塊號存取控制改變位引用位中斷位 輔存地址 1.頁表的擴充 頁號塊號存取控制改變位引用位中斷位2.地址變換請求分頁的地址變換初始過程十分類似于簡單分頁系統(tǒng)的地址變換,其全部工作:存儲空間的分配,頁面的置換等都是在指令執(zhí)行過程中完成的,更準確地說,是在CPU訪問內(nèi)存的過程中完成的。2.地址變換3.缺頁中斷處理
23、當中斷位為1時,表示該頁不在主存,則必須確定它在輔存中的存放地址。并把它從輔存中調(diào)入主存。缺頁中斷的處理過程如圖:3.缺頁中斷處理4. 提取頁面策略這是一個何時把頁面裝入主存的問題。 兩種策略(1)請求式提取:僅當需要時才提取頁面的策略;(2)預(yù)先調(diào)頁:把事先提取頁面的策略。任何預(yù)先調(diào)頁策略都是以預(yù)測為基礎(chǔ)的。如果能裝入合適的不久要訪問的頁面,則可減少缺頁中斷。在很長一段時間內(nèi)(甚至本次運行)都不被存取,這樣的預(yù)先調(diào)頁是失敗的。因為預(yù)先調(diào)頁的成功率約為50,因此,大多數(shù)系統(tǒng)采用純請求式提取頁面策略。4. 提取頁面策略 4.5.4請求頁式管理中的置換算法 (頁式淘汰算法) 1.先進先出(FIFO
24、)算法 FIFO:總是淘汰最先進入主存儲器的那一頁。 FIFO算法容易實現(xiàn),但是它所依據(jù)的理由不是普遍成立的。哪些在內(nèi)存中駐留很久的頁,往往是被經(jīng)常訪問的頁,結(jié)果這些常用的頁都被淘汰調(diào),而可能又需要立即調(diào)回內(nèi)存。 采用FIFO算法還會產(chǎn)生一種奇怪現(xiàn)象,直觀上,分配給的作業(yè)的實頁越多,進程執(zhí)行時發(fā)生的缺頁中斷率就越小,但對FIFO算法這個結(jié)論并不是絕對的。在某些情況下,當分配的頁面多反而導(dǎo)致更多的缺頁中斷,這種現(xiàn)象稱為FIFO異?,F(xiàn)象或稱Belady現(xiàn)象。 創(chuàng)建進程式時往往只向內(nèi)存裝入了第0頁。 4.5.4請求頁式管理中的置換算法 當需要淘汰某一頁時,選擇在最近一段時間里最久沒有被使用過的頁淘汰
25、。 A.近似算法(LFU):當需要淘汰時,應(yīng)淘汰被訪問次數(shù)最少的頁。一種簡單的方法是為每一頁設(shè)置一個計數(shù)器,每當訪問一頁時,就把該頁對應(yīng)的計數(shù)器加一,隔一個周期T,把左右計數(shù)器清0。當發(fā)生缺頁中斷時,選擇計數(shù)值最小的頁,可把它淘汰,同時把所有計數(shù)器清0。1.最近最久未使用頁面置換算法(LRU) 當需要淘汰某一頁時,選擇在最近一段時間里最久沒有被使用 B.最近沒有使用的頁面淘汰算法NUR 需要淘汰某一頁時,從那些最近一個時期內(nèi)未被訪問的頁中任選一頁淘汰。 實現(xiàn)方法:在頁內(nèi)增設(shè)一個訪問位,當這一頁被訪問時,硬件把它置成“1”,而沒有被訪問過的頁,訪問位為“0”。因此,在產(chǎn)生缺頁中斷時,可從那些訪問
26、位為0的頁中選一頁進行淘汰。 B.最近沒有使用的頁面淘汰算法NUR抖動和工作集 1. 局部性概念 局部性含義 (1)時間局部性:是指某個位置最近被訪問了,那么往往很快又要被再次訪問。 (2)空間局部性:是指一旦某個位置被訪問了,那么它附近的位置也將被訪問。 2. 抖動(或稱顛簸) 抖動: 如果一個進程花費多于執(zhí)行時間的時間來完成頁面替換工作,我們稱該進程是顛簸的。抖動和工作集 4.5.5 存儲保護 一種是地址越界保護,另一種存取控制保護。 地址越界保護可由地址變換機構(gòu)中的控制寄存器的值頁表長度和所要訪問的虛地址通過比較完成。 存取控制保護是通過頁表控制對內(nèi)存信息的操作方式提供保護。它的實現(xiàn)則是
27、在頁表增加相應(yīng)的保護位即可。 4.5.5 存儲保護 頁式管理的優(yōu)缺點 優(yōu)點 (1) 由于它不要求作業(yè)或進程的程序段和數(shù)據(jù)在主存中連續(xù)存放,從而有效的解決了碎片問題。(2) 請求分頁管理提供了虛擬存儲器。提高了主存的利用率,更加有利于多道程序的運行和方便用戶,特別是大作業(yè)用戶。 缺點 (1)要求有相應(yīng)的硬件支持。(2)為處理缺頁中斷,增加了處理機時間的開銷。(3)為防止系統(tǒng)抖動所采取的各種措施會增加系統(tǒng)的復(fù)雜性。(4)每個作業(yè)或進程的最后一頁內(nèi)總有一部分空間得不到利用。 頁式管理的優(yōu)缺點 優(yōu)點 4.6 段式與段頁式管理1.作業(yè)的邏輯地址空間:分段情況下要求每個作業(yè)的地址空間按照程序的自然邏輯關(guān)系
28、分成若干段,每個段有自己的段名。子程序數(shù)組子程序主程序數(shù)組主程序作業(yè)A02K00.5k 03000200 4.6 段式與段頁式管理子程序子程序主程序主程序作 2. 段式存儲管理的地址結(jié)構(gòu)段號段內(nèi)地址a:虛擬地址段號始址長度存取方式內(nèi)外訪問位b:段表段表每個作業(yè)一個,這個段表實施段保護,提供虛存。存取方式讀/寫、只讀、執(zhí)行。 2. 段式存儲管理的地址結(jié)構(gòu)段號段內(nèi)地址a:段號其他頁表長度起始地址051024171029291036段表長度 起始地址段表地址寄存器頁號其他頁面11221932148510頁號其他頁面12933.段地址變換 段號其他頁表長度起始地址051024171029291036
29、4.段的共享與保護 段的共享是比較容易實現(xiàn)的,只要用戶使用相同的段名,在新的段表中填入已在主存中的段的起始地址,并置以適當?shù)淖x寫控制權(quán),就可做到共享一個邏輯上完整的段的信息。 4.段的共享與保護段號標志始址. 0執(zhí)行 218 1讀/寫 365 2只讀 542 共享 主存 共享 數(shù)據(jù)段號標志始址. 0 執(zhí)行 218 1只讀 542 2讀/寫 103段的共享段號標志始址 0執(zhí)行 218 1讀/寫 365 分段存儲管理系統(tǒng)的保護可采用如下幾種措施: (1)在段表中設(shè)置一個段長值,以指明該段的長度。當存儲訪問時,段地址的位移量與段長相比較,如超過段長,便發(fā)出越界中斷信號。 (2) 建立存取控制,在段表
30、的每個表目中,還增加存取方式項。 (3) 采用存儲保護鍵。 在一個段式存儲管理系統(tǒng)中,通過在段表中施加段長、存取控制、設(shè)置存儲保護鍵等,可提供一個多級的存儲保護體系。分段存儲管理系統(tǒng)的保護可采用如下幾種措施:分段與分頁的區(qū)別與聯(lián)系 分段與分頁的區(qū)別 (1)分頁的作業(yè)地址空間是單一的線性地址空間,而分段作業(yè)的地址空間是二維的。 (2)頁是信息的物理單位,大小固定。段是信息的邏輯單位,其長度不定。 (3)分頁管理是單段式虛擬存儲系統(tǒng),而分段存儲管理實現(xiàn)多段式虛擬存儲系統(tǒng)。分段與分頁的區(qū)別與聯(lián)系 段式管理的主要優(yōu)點 (1)便于程序模塊化處理和便于處理變換的數(shù)據(jù)結(jié)構(gòu)。(2)便于動態(tài)連接。(3)便于共享
31、分段。(4)可以實現(xiàn)虛擬存儲器,使作業(yè)的地址空間不受主存容量的限制。 段式管理的主要缺點 (1)和分頁管理一樣,處理機要為地址變換花費時間;要為表格提供附加的存儲空間;這使操作系統(tǒng)復(fù)雜化。(2)為滿足分段的動態(tài)增長和減少外零頭,要采用拼接手段。(3)分段的最大尺寸受到主存可用空間的限制。操作系統(tǒng)第四章-存儲器管理 4.6.4 段頁式管理的基本思想 分段結(jié)構(gòu)具有邏輯上清晰的優(yōu)點,但它的一個致命弱點是每個段必須占據(jù)主存儲器的連續(xù)區(qū)域,于是,要裝入一個分段時可能要移動已在主存儲器中的信息,為了克服這個缺點,可兼用分段和分頁的方法,構(gòu)成段頁式存儲管理。 每個作業(yè)仍按邏輯分段,但對每一段不是按單一的連續(xù)
32、整體存放到存儲器中,而是把每個段再分成若干個頁面,每一段不必占據(jù)連續(xù)的主存空間,可把它按頁存放在不連續(xù)的主存塊中。 4.6.4 段頁式管理的基本思想 4.6.5 段頁式管理的實現(xiàn)原理 1虛地址的構(gòu)成 一個進程中所包含的具有獨立邏輯功能的程序和數(shù)據(jù)仍被劃分為段,并有各自的段號S。把段劃成若干個頁,和頁式系統(tǒng)一樣。段號頁號頁內(nèi)地址 4.6.5 段頁式管理的實現(xiàn)原理段號頁號頁內(nèi)地址 2 段表和頁表 在段頁式系統(tǒng)中,每個分段又被分成若干個固定大小的頁面,那么每個段又必須建立一張頁表把段中的虛頁變換成內(nèi)存中的實際頁面。顯然,與頁式管理時相同,頁表中也要有相應(yīng)的實現(xiàn)缺頁中斷處理和頁面保護等功能表項。 每個
33、段有一個頁表,段表中應(yīng)有專項指出該段所對應(yīng)頁表的頁表始址和頁表長度。 2 段表和頁表段表、頁表、段表地址寄存器。為了進行地址轉(zhuǎn)換,系統(tǒng)為每個作業(yè)建立一個段表,并且要為該作業(yè)段表中的每一個段建立一個頁表。系統(tǒng)中有一個段表地址寄存器來指出作業(yè)的段表起始地址和段表長度。段表、頁表、段表地址寄存器。為了進行地址轉(zhuǎn)換,系統(tǒng)為每個作業(yè) 3.動態(tài)地址變換過程 關(guān)鍵問題仍是如何將二維虛地址映射成一維實地址,為了實現(xiàn)動態(tài)地址變換。 段頁式系統(tǒng)必須為每個作業(yè)建立一張段表,段表表目中的地址部分指出該段的頁表在主存的始址。 為每個段建立一張頁表,每個表目指示該頁所在主存的頁面號。 每個作業(yè)有一個段表地址寄存器,指示它的段表所在位置和段表長度。 設(shè)置快速聯(lián)想寄存器,存放當前最常用的段號S,頁號P和對應(yīng)的內(nèi)存頁面與其它控制用欄目。 3.動態(tài)地址變換過程 查找方法:如果所訪問的段或頁在快速聯(lián)想寄存器中,則系統(tǒng)不再訪問內(nèi)存中的段表、頁表。把快速聯(lián)想寄存器中的值與頁內(nèi)相對地址D拼接起來得到內(nèi)存地址。若快速聯(lián)想寄存器中沒有,才去通過段表、頁表進行內(nèi)存地址查找。 查找方法:如果所訪問的段或頁在快速聯(lián)想寄存器中,則系統(tǒng)不慢速地址轉(zhuǎn)換過程 慢速地址轉(zhuǎn)換過程 若運行進程訪問虛地址v=(s,p,d),在沒有聯(lián)想寄存器的情況下,地址變換過程如下: (
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 環(huán)保課件教學(xué)課件
- 橋梁架設(shè)合同模板
- 定制木材購買合同模板
- 鄧州個人售房合同模板
- 干制蔬菜收購合同模板
- 《軸對稱現(xiàn)象》軸對稱
- 非標設(shè)備加工合同模板
- 高中公寓陪讀合同模板
- 木炭廠收購木材合同模板
- 2024年檔案知識競賽試題及答案
- 《電氣裝置安裝工程 盤、柜及二次回路接線施工及驗收規(guī)范》
- 部編版二年級上冊語文《葡萄溝》精美
- 煤化工的應(yīng)用及現(xiàn)狀
- RRU設(shè)計原理與實現(xiàn)
- 2024校園安全事故案例
- 2023-2024學(xué)年上海市普陀區(qū)九年級上學(xué)期期中考試物理試卷含詳解
- (新版)高考志愿填報師資格考試題庫(濃縮500題)
- 青島綠化規(guī)劃方案
- 《老年人溝通技巧》課程標準(含課程思政)
- 屋頂光伏發(fā)電建設(shè)方案
- 小學(xué)四年級上冊數(shù)學(xué)簡便計算100題及答案
評論
0/150
提交評論