




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第3章 存儲器管理本章內(nèi)容:3.1 3.1 存儲器管理概述存儲器管理概述3.2 3.2 單一連續(xù)分配管理方式單一連續(xù)分配管理方式3.3 3.3 分區(qū)存儲管理方式分區(qū)存儲管理方式3.4 3.4 覆蓋技術(shù)與對換技術(shù)覆蓋技術(shù)與對換技術(shù)3.1 存儲管理概論存儲管理概論存儲器存儲器是計算機系統(tǒng)的是計算機系統(tǒng)的重要資源之一重要資源之一,存儲管理,存儲管理直接影響系統(tǒng)性能。因為任何程序和數(shù)據(jù)以及各種直接影響系統(tǒng)性能。因為任何程序和數(shù)據(jù)以及各種控制用的數(shù)據(jù)構(gòu)造都必須占用一定的存儲空間控制用的數(shù)據(jù)構(gòu)造都必須占用一定的存儲空間存儲器存儲器由由內(nèi)存內(nèi)存和和外存外存組成。組成。內(nèi)存內(nèi)存:也稱主存,是:也稱主存,是CP
2、UCPU能直接存取指令和數(shù)據(jù)的能直接存取指令和數(shù)據(jù)的存儲器。存儲器。存儲器分類存儲器分類硬盤硬盤緩存的引入用于解決主存訪問速度與CPU處理速度不相匹配的一種部件由集成于CPU芯片中的專門的高速存取電路實現(xiàn)。或用于解決輔存訪問速度與CPU處理速度不相匹配的一種部件由主存的一部分實現(xiàn)。需要解決緩存內(nèi)容與原內(nèi)容不一致的問題CPU內(nèi)存內(nèi)存I/O系統(tǒng)系統(tǒng) 外設(shè)外設(shè) 內(nèi)存在計算機系統(tǒng)中的地位內(nèi)存在計算機系統(tǒng)中的地位內(nèi)存內(nèi)存的在系統(tǒng)中的地位的在系統(tǒng)中的地位3.1.1 存儲體系存儲體系 高速緩存器高速緩存器 內(nèi)內(nèi) 存存外外 存存 存儲器容量存儲器容量 減少減少每位存儲器每位存儲器 本錢增加本錢增加存儲器存取存
3、儲器存取 速度加快速度加快存儲器存取存儲器存取 時間減少時間減少程序和數(shù)據(jù)程序和數(shù)據(jù)可以被可以被CPU直接存取直接存取程序和數(shù)據(jù)必程序和數(shù)據(jù)必須先移到內(nèi)存,須先移到內(nèi)存,才能被才能被CPU訪問訪問 三級存儲器構(gòu)造三級存儲器構(gòu)造 存儲器管理存儲器管理 存儲管理 是操作系統(tǒng)的重要組成部分,負責管理計算機系統(tǒng)的重要資源主存儲器 主要內(nèi)容包括: 主存儲空間的分配和去配 地址轉(zhuǎn)換和存儲保護 主存儲空間共享 主存儲空間擴大 存儲管理主要針對主存儲器中用戶區(qū)域進展管理,同時,也包括對輔存儲器的管理。操作系統(tǒng)核心用戶區(qū)域3.1.2 存儲器管理的主要功能內(nèi)存的分配和回收靜態(tài)、動態(tài)內(nèi)存的分配和回收靜態(tài)、動態(tài)地址變
4、換地址變換邏輯地址邏輯地址物理地址物理地址轉(zhuǎn)換方式:轉(zhuǎn)換方式:靜態(tài)重定位,程序作業(yè)裝入靜態(tài)重定位,程序作業(yè)裝入時實現(xiàn)地址轉(zhuǎn)換的一次完成時實現(xiàn)地址轉(zhuǎn)換的一次完成動態(tài)重定位,必須借助硬件實動態(tài)重定位,必須借助硬件實現(xiàn),現(xiàn),CPUCPU訪問程序指令和數(shù)據(jù)之訪問程序指令和數(shù)據(jù)之前實現(xiàn)地址轉(zhuǎn)換前實現(xiàn)地址轉(zhuǎn)換內(nèi)存的共享內(nèi)存的共享l 主存儲器資源的共享主存儲器資源的共享l 某一主存區(qū)域的共享某一主存區(qū)域的共享內(nèi)存的保護內(nèi)存的保護防止操作系統(tǒng)和各用戶程序在主存儲防止操作系統(tǒng)和各用戶程序在主存儲器中各存儲區(qū)域訪問時互相干擾器中各存儲區(qū)域訪問時互相干擾l 保護操作系統(tǒng)占有的主存區(qū)保護操作系統(tǒng)占有的主存區(qū)l 保護各
5、程序的私有主存區(qū)保護各程序的私有主存區(qū)l 保護可供多個程序訪問的主存共享保護可供多個程序訪問的主存共享區(qū)區(qū)內(nèi)存的擴大內(nèi)存的擴大3.1.3 地址變換 為使程序正確執(zhí)行。一個程序裝入內(nèi)存,要進展為使程序正確執(zhí)行。一個程序裝入內(nèi)存,要進展邏輯地址邏輯地址到到物理地址物理地址的重定位,實現(xiàn)從的重定位,實現(xiàn)從邏輯地址邏輯地址到到物理地址物理地址的變換,重定的變換,重定位可分為位可分為靜態(tài)重定位靜態(tài)重定位和和動態(tài)重定位動態(tài)重定位。1.邏輯地址 邏輯地址相對地址,虛地址:用戶的程序經(jīng)過匯編或編譯后形成目的代碼,目的代碼通常采用相對地址的形式。其首地址為0,其余指令中的地址都相對于首地址來編址。不能用邏輯地址
6、在內(nèi)存中讀取信息。2.物理地址 物理地址絕對地址,實地址:內(nèi)存中存儲單元的地址。物理地址可直接尋址。3.地址變換地址變換:將虛擬空間中已鏈接和劃分好的內(nèi)容裝入內(nèi)存,并將虛擬地址映射為內(nèi)存地址的問題。稱之為地址重定位或地址映射。實現(xiàn)地址映射的方式對可執(zhí)行程序: 靜態(tài)重定位靜態(tài)重定位動態(tài)重定位動態(tài)重定位靜態(tài)重定位靜態(tài)重定位在可執(zhí)行文件中,列出各個需要重定位的地址單元和相對地址值。當用戶程序被裝入內(nèi)存時,一次性實現(xiàn)邏輯地址到物理地址的轉(zhuǎn)換,以后不再轉(zhuǎn)換一般在裝入內(nèi)存時由軟件完成。即:裝入時根據(jù)所定位的內(nèi)存地址去修改每個重定位地址項,添加相應(yīng)偏移量。 評價: 優(yōu)點:不需硬件支持,可以裝入有限多道程序
7、缺點:一個程序通常需要占用連續(xù)的內(nèi)存空間,程序裝入內(nèi)存后不能挪動。不易實現(xiàn)共享。jmp150100150.RelocationTable0jm2000 說明:重定位表中列出所有修改的位置。如:重定位表的150表示相對地址150處的內(nèi)容為相對地址即100為從0起頭的相對位置。在裝入時,要根據(jù)重定位后的起頭位置2000修改相對地址。重定位修改:重定位表中的重定位修改:重定位表中的150-絕對地址絕對地址2150=2000+150內(nèi)容修改:內(nèi)容內(nèi)容修改:內(nèi)容100變成變成2100=100+2000。動態(tài)重定位動態(tài)重定位動態(tài)重定位是在程序執(zhí)行時由系統(tǒng)硬件完成從邏輯地址到物理地
8、址的轉(zhuǎn)換的。動態(tài)重定位是由硬件地執(zhí)行時完成的,程序中不執(zhí)行的程序就不做地址映射的工作,這樣節(jié)省了CPU的時間。重定位存放器的內(nèi)容由操作系統(tǒng)用特權(quán)指令來設(shè)置,比較靈敏。實現(xiàn)動態(tài)地址映射必須有硬件的支持,并有一定的執(zhí)行時間延遲?,F(xiàn)代計算機系統(tǒng)中都采用動態(tài)地址映射技術(shù)。動態(tài)重定位優(yōu)缺點動態(tài)重定位優(yōu)缺點 優(yōu)點: OS可以將一個程序分散存放于不連續(xù)的內(nèi)存空間,可以挪動程序,有利用實現(xiàn)共享。 可以支持程序執(zhí)行中產(chǎn)生的地址引用,如指針變量而不僅是生成可執(zhí)行文件時的地址引用。 缺點 需要硬件支持通常是CPU,OS實現(xiàn)較復(fù)雜。它是虛擬存儲的根底。3.1.4 各種存儲管理方式 對內(nèi)存的存儲管理方式,根據(jù)是否把作業(yè)
9、全部裝入,全部裝入后是否分配到一個連續(xù)的存儲區(qū)域,可以分為如下幾種管理方式: 最早出現(xiàn)的一種存儲管理方式。在主存中僅駐留一道程序,整個用戶區(qū)為一用戶獨占。當用戶作業(yè)空間大于用戶區(qū)時,該作業(yè)不能裝入。這種分配方式僅能用于單用戶、單任務(wù)的操作系統(tǒng)中,不能用于多用戶系統(tǒng)和單用戶多任務(wù)系統(tǒng)中。 3.2 單一連續(xù)分配管理方式單一連續(xù)分配管理方式3.2.1 根本原理 在單用戶連續(xù)存儲管理方式下,內(nèi)存中僅駐留一道程序,整個用戶區(qū)被一用戶獨占。1、1、當用戶作業(yè)空間大于用戶區(qū)時,該作業(yè)不能裝入。2、當用戶作業(yè)空間小于用戶區(qū)時,剩余的一部分空間實際上被浪費掉了。 在這種管理方式下,存儲器利用率極低,僅能用于單用
10、戶單任務(wù)的操作系統(tǒng),不能用于多用戶系統(tǒng)和單用戶多任務(wù)系統(tǒng)中。作業(yè)操作系統(tǒng)未用32 KB64 KB160 KB分配給用戶作業(yè)的空間單一連續(xù)分配單一連續(xù)分配 浪費單一連續(xù)分配僅適用于單道程序設(shè)計環(huán)境,處理機、主存都不能得到充分的利用。特點: 1管理簡單。它把主存分為兩個區(qū),用戶區(qū)一次只能裝入一個完好的作業(yè),且占用一個連續(xù)的存儲空間。它需要很少的軟硬件支持,且便于用戶理解和使用。 2在主存中的作業(yè)不必考慮挪動的問題,并且主存的回收不需要任何操作。 3資源利用率低。不管用戶區(qū)有多大,它一次只能裝入一個作業(yè),這樣造成了存儲空間的浪費,使系統(tǒng)整體資源利用率不高。 4這種分配方式不支持虛擬存儲器的實現(xiàn)。3.
11、2.2 內(nèi)存空間的分配 在單一連續(xù)分配存儲管理方式下,任何時刻內(nèi)存中最多只有一個作業(yè),合適于單道運行的計算機系統(tǒng)。采用這種存儲管理方式時,內(nèi)存分為兩個分區(qū),如圖3-5所示。1、系統(tǒng)區(qū)。系統(tǒng)區(qū)是僅提供給操作系統(tǒng)使用的內(nèi)存區(qū),通常駐留在內(nèi)存的低地址部分。2、用戶區(qū)。用戶區(qū)是指除系統(tǒng)區(qū)以外的內(nèi)存空間,提供給用戶使用。單一連續(xù)分配過程 等待裝入內(nèi)存的作業(yè)排成一個作業(yè)隊列,當內(nèi)存中無作業(yè)或一個作業(yè)執(zhí)行完畢,允許作業(yè)隊列中的一個作業(yè)裝人內(nèi)存。 分配過程是:首先,從作業(yè)隊列中取出隊首作業(yè),判斷作業(yè)的大小是否大于用戶區(qū)的大小,假設(shè)大于那么作業(yè)不能裝入;否那么,可以把作業(yè)裝入用戶區(qū)。它一次只能裝人一個作業(yè)。3.
12、2.3 地址變換與存儲保護1.地址變換 單一連續(xù)分配存儲管理方式下,內(nèi)存空間采用靜態(tài)分配方式。作業(yè)一旦進入內(nèi)存,就要等到它執(zhí)行完畢后才能釋放內(nèi)存。因此,在作業(yè)被裝入內(nèi)存時,一次性完成地址轉(zhuǎn)換。界限存放器和基地址存放器1、界限存放器用來存放內(nèi)存用戶區(qū)的長度。2、基地址存放器用來存放用戶區(qū)的起始地址。 一般情況下這兩個存放器的內(nèi)容是不變的,只有當操作系統(tǒng)占有的存儲區(qū)域改變時才會改變。其轉(zhuǎn)換過程如圖3-6所示。地址轉(zhuǎn)換過程1、處理器在執(zhí)行用戶程序指令時,檢查不等式:邏輯地址界限地址。2、假如成立,產(chǎn)生一個“地址越界中斷事件,暫停程序執(zhí)行,由操作系統(tǒng)處理,以達存儲保護目的。3、否那么,就與基地址存放器
13、中的基址相加,得到物理地址,對應(yīng)于內(nèi)存中的一個存儲單元。2.存儲保護 單用戶連續(xù)存儲管理方式下,處理器在執(zhí)行指令時,通過比較邏輯地址和界限存放器的值,來控制產(chǎn)生“地址越界中斷信號,以到達存儲保護的目的。主要原因在于:1、內(nèi)存由用戶獨占,不可能存在受其他用戶程序干擾的問題;2、可能出現(xiàn)的破壞行為也只是由用戶程序自己去破壞操作系統(tǒng),其后果并不嚴重,只是影響該用戶程序的運行;3、用戶程序也很容易通過系統(tǒng)的再啟動而重新裝入內(nèi)存。3.3 分區(qū)存儲管理方式分區(qū)存儲管理方式 單用戶存儲管理方式每次只能允許一個作業(yè)在內(nèi)存運行,當內(nèi)存較大且作業(yè)較小時,單用戶存儲管理方式對內(nèi)存空間的浪費太大。 讓內(nèi)存同時裝入多個
14、作業(yè),可以把內(nèi)存劃分成假設(shè)干個連續(xù)區(qū)域,稱為分區(qū),每個用戶占有一個。 分區(qū)存儲管理是為了適應(yīng)多道程序設(shè)計技術(shù)而產(chǎn)生的最簡單的存儲管理方式,分區(qū)的方式可以歸納成固定分區(qū)和可變分區(qū)兩類。3.3.1 固定分區(qū)存儲管理方式 固定分區(qū)是指系統(tǒng)預(yù)先把內(nèi)存中的用戶區(qū)劃分成假設(shè)干個固定大小的連續(xù)區(qū)域。每一個區(qū)域稱為一個分區(qū),每個分區(qū)可以裝入一個作業(yè),一個作業(yè)也只能裝入一個分區(qū)中,這樣就可以裝入多個作業(yè),使它們并發(fā)執(zhí)行。分區(qū)的劃分方式有以下兩種:1分區(qū)大小相等缺點:當程序太小時,會造成內(nèi)存空間的浪費;當程序太大時,可能因為分區(qū)的大小缺乏以裝入該程序而使之無法運行。2 分區(qū)大小不等在內(nèi)存中劃分出多個較小的分區(qū),適
15、量的中等分區(qū)及少量的大分區(qū)。1、對于小程序,可分配小分區(qū)2、大、中程序到來時,可分配大分區(qū),如圖3-7所示。2.分區(qū)分配表 在固定分區(qū)存儲管理方式下,為了記錄各個分區(qū)的使用情況,方便內(nèi)存空間的分配與回收操作,為分區(qū)建立一張分配表。分區(qū)分配表一般采用順序存儲方式,即用數(shù)組存儲。其中各表項包括分區(qū)序號、分區(qū)大小、起始地址和使用狀態(tài),如圖3-8所示。區(qū)號 大小 起址標志 1 16KB20K已分配 2 32KB36K已分配 3 64KB68K已分配 4 124KB 132K未分配 a 固定分區(qū)分配表0k: 20k: 第1分區(qū)16kb 36k: 第2分區(qū)32kb 已分配 68k: 第3分區(qū)64kb 已分
16、配132k: 第4分區(qū)124kb 未分配 256k:b內(nèi)存分配圖 操作系統(tǒng)作業(yè)A(16k)作業(yè)B(26k)作業(yè)C(56k)3.地址變換 由于固定分區(qū)方式是預(yù)先把內(nèi)存劃分成假設(shè)干個區(qū),每個分區(qū)只能放一個作業(yè),因此作業(yè)在執(zhí)行過程中不會改變分區(qū)的個數(shù)和大小。所以,地址轉(zhuǎn)換采用靜態(tài)重定位方式,即在作業(yè)被裝人內(nèi)存時,一次性地完成地址變換。下限存放器和上限存放器 在固定分區(qū)存儲管理方式下,處理器設(shè)置兩個存放器:下限存放器和上限存放器。1、下限存放器用來存放分區(qū)的低地址,即起始地址;2、上限存放器用來存放分區(qū)的高地址,即末地址。 一般情況下這兩個存放器的內(nèi)容是隨著處理作業(yè)的不同而改變的,它們從分區(qū)分配表中獲
17、取該分區(qū)的起始地址和末地址起始地址+分區(qū)大小-1。地址變換過程如圖3-9所示。地址轉(zhuǎn)換過程是: CPU獲得的邏輯地址首先與下限存放器的值相加,產(chǎn)生物理地址;然后與上限存放器的值比較。1、假設(shè)大于上限存放器的值,產(chǎn)生“地址越界中斷信號,由相應(yīng)的中斷處理程序處理;2、假設(shè)不大于上限存放器的值,那么該物理地址就是合法地址,它對應(yīng)于內(nèi)存中的一個存儲單元。案例分析【例3-1】在某系統(tǒng)中采用固定分區(qū)分配管理方式,內(nèi)存分區(qū)單位字節(jié)情況如圖3-10a所示。現(xiàn)有大小為1KB、9KB、33 KB、121KB的多個作業(yè)要求進人內(nèi)存,試畫出它們進入內(nèi)存后的空間分配情況,并說明內(nèi)存浪費有多大?【解】采用固定分區(qū)存儲管理
18、方式,作業(yè)進人系統(tǒng)后的分配情況如圖3-10b所示,內(nèi)存浪費 512KB-20KB-1KB+9KB+33KB+121KB =328KB.3.3.2 可變分區(qū)存儲管理方式 在固定分區(qū)存儲管理方式中,對于內(nèi)存的分區(qū)大小是固定的。這樣很容易造成小作業(yè)空間分配對內(nèi)存空間的浪費。 為了讓分區(qū)的大小與作業(yè)的大小相一致,可以采取可變分區(qū)存儲管理方式。1.根本原理 可變分區(qū)是指系統(tǒng)不預(yù)先劃分固定區(qū)域,而是在作業(yè)裝入時根據(jù)作業(yè)的實際需要動態(tài)地劃分內(nèi)存空間。 抑制固定分區(qū)方式中的內(nèi)存空間的浪費,有利于多道程序設(shè)計,實現(xiàn)了多個作業(yè)對內(nèi)存的共享,進一步進步了內(nèi)存資源利用率。 系統(tǒng)在作業(yè)裝人內(nèi)存執(zhí)行之前并不建立分區(qū),當要
19、裝入一個作業(yè)時,根據(jù)作業(yè)需要的內(nèi)存量查看內(nèi)存中是否有足夠的空間:1、假設(shè)有,那么按需要量分割一個分區(qū)分配給該作業(yè);2、假設(shè)無,那么令該作業(yè)等待內(nèi)存空間。存在的問題 隨著作業(yè)的裝入、撤離,內(nèi)存空間被分成許多個分區(qū),有的分區(qū)被作業(yè)占用,而有的分區(qū)是空閑的。當一個新的作業(yè)要求裝入時,必須找一個足夠大的空閑區(qū),把作業(yè)裝入該區(qū)。 假如找到的空閑區(qū)大于作業(yè)需要量,那么作業(yè)裝入后又把原來的空閑區(qū)分成兩部分,一部分被作業(yè)占用了;而另一部分又分成為一個較小的空閑區(qū)。 當一個作業(yè)運行完畢撤離時,它歸還的區(qū)域假如與其他空閑區(qū)相鄰,那么可合成一個較大的空閑區(qū),如圖3-112.采用的數(shù)據(jù)構(gòu)造 在可變分區(qū)存儲管理方式中,
20、內(nèi)存中分區(qū)的數(shù)目和大小隨作業(yè)的執(zhí)行而不斷改變。為了實現(xiàn)分區(qū)分配,系統(tǒng)中必須配置相應(yīng)的數(shù)據(jù)構(gòu)造,用來記錄內(nèi)存的使用情況,包括空閑分區(qū)的情況和使用分區(qū)的情況,為作業(yè)分配內(nèi)存空間提供根據(jù)。為此,設(shè)置了兩個表,即已分分區(qū)表和空閑分區(qū)表,如表3-1和表3-2所示。1、已分分區(qū)表。記錄當前已經(jīng)分配給用戶作業(yè)的內(nèi)存分區(qū),包括分區(qū)序號、分區(qū)大小、起始地址和狀態(tài)。2、空閑分區(qū)表。記錄當前內(nèi)存中空閑分區(qū)的情況,包括空閑分區(qū)序號、分區(qū)大小、起始地址和狀態(tài)??臻e分區(qū)表也可以組織成鏈表的形式,叫空閑分區(qū)鏈。3.分區(qū)分配算法首次適應(yīng)算法循環(huán)首次適應(yīng)算法最正確適應(yīng)算法最差適應(yīng)算法首次適應(yīng)算法首次適應(yīng)算法的空閑鏈是對空閑分區(qū)
21、按照地址從低到高的順序排列起來。為進程選擇分區(qū)時總是按地址從低到高搜索,只要找到可以包容該進程的空閑區(qū),就把該空閑區(qū)切割出進程大小,分配給該進程,余下的空閑分區(qū)仍留在空閑鏈中。假設(shè)從鏈首直至鏈尾都不能找到一個能滿足要求的分區(qū),那么此次內(nèi)存分配失敗返回。其缺點是低址部分不斷被劃分,會留下許多難以利用的、很小的空閑分區(qū)即碎片,而每次查找又都是從低址部分開場,這無疑會增加查找可用空閑分區(qū)鏈時的開銷。 首次適應(yīng)算法循環(huán)首次適應(yīng)算法循環(huán)首次適應(yīng)算法的空閑鏈是對空閑分區(qū)按照地址從低到高的順序排列起來同上。每次分區(qū)時,總是從上次查找完畢的地方開場,只要找到一個足夠大的空閑區(qū),就把該空閑區(qū)切割出進程大小,分配
22、給該進程,余下的空閑分區(qū)仍留在空閑鏈中。該算法能使內(nèi)存中的空閑分區(qū)分布得更均勻,從而減少了查找空閑分區(qū)時的開銷,但這樣會缺乏大的空閑分區(qū)。循環(huán)首次適應(yīng)算法最正確適應(yīng)算法 最正確適應(yīng)算法的空閑鏈是按空閑區(qū)從小到大順序排列。為進程選擇分區(qū)時總是尋找其大小最接近進程所要求的存儲區(qū)域。所謂“最正確是指每次為進程分配內(nèi)存時,總是把能滿足要求、又是最小的空閑分區(qū)分配給進程,防止“大材小用。 因為每次分配后所切割下來的剩余部分總是最小的,這樣將加速碎片的形成。最正確適應(yīng)算法最差適應(yīng)算法 最差適應(yīng)算法的空閑鏈是按空閑區(qū)從大到小順序排列。與最正確適應(yīng)法相反,它為進程選擇存儲區(qū)時,總是尋找最大的空白區(qū)。最差適應(yīng)算
23、法可以延緩小空閑區(qū)的形成,但是無法保存大空閑區(qū)。這給以后到大的進程分配內(nèi)存空間帶來了困難。 內(nèi)存緊縮compaction技術(shù) 最差適應(yīng)算法4.分區(qū)的回收 當一個作業(yè)運行完畢后,在已分分區(qū)表中找到該作業(yè),根據(jù)該作業(yè)所占內(nèi)存的始址和大小,去修改空閑分區(qū)表相應(yīng)的記錄。其修改情況分為四種,如圖3-12所示 斜線部分為被作業(yè)占有的內(nèi)存區(qū)域。1回收的分區(qū)前后沒有相鄰的空閑分區(qū)在空閑分區(qū)表中要增加一條記錄,該記錄的始址和大小,即為回收分區(qū)的始址和大小,如圖3-12a所示。2回收分區(qū)的前面有相鄰的空閑區(qū)在空閑分區(qū)表中找到這個空閑分區(qū)查找的方法是比較空閑分區(qū)的始址+空閑分區(qū)的大小與回收分區(qū)的始址是否相等,修改這
24、個空閑分區(qū)的大小,即加上回收分區(qū)的大小,始址不變,如圖3-12b所示。3回收分區(qū)的后面有相鄰的空閑分區(qū)在空閑分區(qū)表中找到這個空閑分區(qū)查找的方法是回收分區(qū)的始址+回收分區(qū)的大小與空閑分區(qū)的始址比較是否相等,修改這個空閑分區(qū)的始址和大小。始址為回收分區(qū)的始址,大小為回收分區(qū)的大小與空閑分區(qū)的大小之和,如圖3-12c所示。4回收分區(qū)的前后都有相鄰的空閑分區(qū)在空閑分區(qū)表中找到這兩個空閑分區(qū),修改前面相鄰的空閑區(qū)的大小,其始址不變。大小改為相鄰兩個空閑分區(qū)和回收分區(qū)的大小之和,然后從空閑分區(qū)表中刪除后一個相鄰空閑分區(qū)的記錄,如圖3-12d所示。5.地址變換與存儲保護1地址變換因為空閑分區(qū)的個數(shù)和大小,以
25、及作業(yè)的個數(shù)和大小都不能預(yù)先確定,所以,可變分區(qū)存儲管理方式一般采用動態(tài)重定位方式裝入作業(yè)。它需要設(shè)置硬件地址轉(zhuǎn)變機構(gòu):兩個專用存放器即基址存放器和限長存放器以及一些加法、比較電路。地址轉(zhuǎn)換過程如下:1、當作業(yè)占用處理器時,進程調(diào)度把該作業(yè)所占分區(qū)的起始地址送入基址存放器,把作業(yè)所占分區(qū)的最大地址送入限長存放器。2、作業(yè)執(zhí)行過程中,處理器每執(zhí)行一條指令,都要由硬件的地址轉(zhuǎn)換機構(gòu)把邏輯地址轉(zhuǎn)換成物理地址。3、當取出一條指令后,把該指令中的邏輯地址與基址存放器內(nèi)容相加得到物理地址,該物理地址必須滿足物理地址限長存放器的值。此時允許指令訪問內(nèi)存單元的地址,否那么產(chǎn)生“地址越界中斷,不允許訪問?;反?/p>
26、放器和限長存放器總是存放占用處理器的作業(yè)所占分區(qū)的始址和末址。一個作業(yè)讓出處理器時,應(yīng)先把這兩個存放器的內(nèi)容保存到該作業(yè)所對應(yīng)進程的PCB中,然后再把新作業(yè)所占分區(qū)的始址和末址存入這兩個專用存放器中,如圖3-14所示。2存儲保護系統(tǒng)設(shè)置了一對存放器,稱為“基址存放和“限長存放器,用它記錄當前在CPU中運行作業(yè)在內(nèi)存中所占分區(qū)的始址和末址。當處理器執(zhí)行該作業(yè)的指令時必須核對表達式“始址絕對地址末址是否成立。假設(shè)成立,就執(zhí)行該指令,否那么就產(chǎn)生“地址越界中斷信號,停頓執(zhí)行該指令。運行的作業(yè)在讓出處理器時,調(diào)度程序選擇另一個可運行的作業(yè),同時修改當前運行作業(yè)的分區(qū)號和基址存放器、限長存放器的內(nèi)容,以
27、保證處理器能控制作業(yè)在所在的分區(qū)內(nèi)正常運行。3.3.3 緊湊技術(shù) 隨著作業(yè)的裝入、撤離,內(nèi)存空間被分成許多個分區(qū),也造成較多的內(nèi)存“碎片。而在連續(xù)分配內(nèi)存的方式中,必須把一個系統(tǒng)程序或用戶程序裝入到一個連續(xù)的內(nèi)存空間。假如在系統(tǒng)中有假設(shè)干個小的分區(qū),其總?cè)萘看笥谝b入的程序,但由于它們不鄰接,該程序也不能裝入內(nèi)存。碎片問題解決將內(nèi)存中的所有作業(yè)進展挪動,使它們相鄰接。這樣,原來分散的多個內(nèi)存碎片便拼接成了一個大的空閑分區(qū),從而可以把作業(yè)裝入運行。這種通過挪動,把多個分散的小分區(qū)拼接成大分區(qū)的方法稱為“緊湊或“拼接也稱為“合并、“挪動,如圖3-15所示。案例分析【例3-4】 某系統(tǒng)內(nèi)存的分配情況
28、如圖3-16a所示,系統(tǒng)采用可變式分區(qū)存儲管理策略?,F(xiàn)有大小為100KB的作業(yè)懇求加載運行。假設(shè)用首次適應(yīng)算法來處理這個作業(yè),能否滿足該作業(yè)的懇求?假設(shè)作業(yè)1、作業(yè)2、作業(yè)3沒有和外圍設(shè)備交換信息,可以采用什么方法解決?【解】用首次適應(yīng)算法給100KB的作業(yè)分配空間,內(nèi)存的空閑區(qū)大小分別為20KB、50KB、40KB,作業(yè)不能分配。 由于作業(yè)1、作業(yè)2、作業(yè)3沒有和外圍設(shè)備交換信息,可以采用緊湊技術(shù),如圖3-16b所示。挪動之后,空閑區(qū)大小為110KB,可以分配作業(yè),如圖3-16c所示。3.4 覆蓋技術(shù)與對換技術(shù)覆蓋技術(shù)與對換技術(shù) 單用戶連續(xù)存儲方式和分區(qū)存儲方式對作業(yè)大小都有嚴格的限制。 當作業(yè)要求運行時,系統(tǒng)將作業(yè)的全部信息一次裝入內(nèi)存并一直駐留內(nèi)存直至運行完畢。 當作業(yè)的大小大于內(nèi)存可用空間時,該作業(yè)就無法運行。 覆蓋與交換是解決大作業(yè)與小內(nèi)存矛盾的兩種存儲管理技術(shù),它們本質(zhì)上對內(nèi)存進展了邏輯擴大。3.4.1 覆蓋技術(shù)覆蓋技術(shù) 通常一個作業(yè)由假設(shè)干個功能上互相獨立的程序段組成,作業(yè)在一次運行時,只用到其中的幾段
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 后臺服務(wù)合同范本
- 廠房抵押欠款合同范本
- 合作安裝合同范本
- 額抵押借款合同范本
- 化糞池抽糞合同范例
- 賣吊牌合同范本
- ktv vi設(shè)計合同范本
- 合伙設(shè)立公司合同范本
- 保安用工協(xié)議合同范本
- 專利轉(zhuǎn)讓押金合同范本
- 數(shù)字信號處理(課件)
- 社會主義核心價值觀-團課課件
- 城市社會學(2015)課件
- 年產(chǎn)2萬噸馬來酸二乙酯技改建設(shè)項目環(huán)評報告書
- 中國古代文論教程完整版課件
- 中班美工區(qū)角活動教案10篇
- SJG 103-2021 無障礙設(shè)計標準-高清現(xiàn)行
- 皇冠假日酒店智能化系統(tǒng)安裝工程施工合同范本
- 路面工程重點、關(guān)鍵、和難點工程的施工方案(技術(shù)標)
- 合肥市城市大腦·數(shù)字底座白皮書2020
- 機電預(yù)留預(yù)埋工程施工組織設(shè)計方案
評論
0/150
提交評論