




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第四章存儲器管理4.1存儲管理的概念4.2分區(qū)式存儲管理4.3分頁式存儲管理4.4
分段式存儲管理4.5
段頁式存儲管理14.1存儲管理的概念存儲管理的對象:主存儲器以及作為主存擴展和延伸的輔助存儲器(外存儲器)。存儲管理的目標是:為用戶提供方便、安全和充分大的存儲空間。一、存儲管理的功能
1、存儲空間的分配與回收2、地址重定位3、主存的共享與保護4、主存的擴充2(一)主存的分配與回收要完成內(nèi)存的分配和回收工作,做到合理有效地利用內(nèi)存,要求設(shè)計者選擇和確定以下幾種策略。1、放置策略——用戶程序要調(diào)入內(nèi)存時,確定將其放置在何處的策賂。也就是選擇空閑區(qū)的原則。2、調(diào)入策略——用戶程序在何時調(diào)入內(nèi)存的策略。目前常用的有請求調(diào)入和預(yù)調(diào)入兩種。3、淘汰策略——當要將某個用戶程序調(diào)入內(nèi)存而又無空閑內(nèi)存空間時,既要確定哪些用戶程序可以從內(nèi)存中移走。分配結(jié)構(gòu)——記錄內(nèi)存的分配情況3(二)地址重定位為了保證作業(yè)的正確執(zhí)行,必須根據(jù)分配給用戶作業(yè)的主存區(qū)域?qū)ψ鳂I(yè)中的指令和數(shù)據(jù)的存放地址進行地址重定位
。1、地址重定位:將程序使用的邏輯地址轉(zhuǎn)換為主存空間的物理地址的工作。
(地址轉(zhuǎn)換、地址映射)42、物理地址(空間)和邏輯地址(空間)物理地址空間:物理地址的集合。由主存物理單元組成,是一維線性空間,其大小取決于實際的主存容量。
(存儲空間、主存空間)邏輯地址空間:用戶所使用的編程空間(目標程序的邏輯地址的集合)。可以是一維的,也可以是二維的。
(地址空間、程序空間)物理地址:主存中存儲單元的編號。
(絕對地址、實地址)邏輯地址:用戶目標程序中所使用的相對地址。
(相對地址、虛地址)5
符號地址
(變量)源程序符號(名)空間連接裝配
編譯
邏輯地址0n目標程序邏輯地址(程序)空間
物理地址可執(zhí)行程序物理地址(主存)空間B
B+n
3、地址重定位方式:1)靜態(tài)重定位;2)動態(tài)重定位。61)靜態(tài)重定位
在一個作業(yè)裝入主存時,根據(jù)其所獲得的空間區(qū)域,由連接裝配程序?qū)⒃摮绦虻倪壿嫷刂忿D(zhuǎn)換為相應(yīng)的物理地址。地址一旦確定就不再改變。+
032
3465
3465+1320832124100108132224邏輯地址空間主存
例如:邏輯關(guān)系:物理地址=起始地址+邏輯地址7缺點:要求給每個作業(yè)分配一個連續(xù)的存儲區(qū)域,且在其整個執(zhí)行期間必須限定在這個區(qū)域內(nèi)。也就是說,在作業(yè)執(zhí)行期間程序不能“浮動”。這對提高主存的利用率是不利的。用戶必須事先確定所需的存儲量,若所需的存儲量超過可用存儲空間時,用戶必須考慮覆蓋結(jié)構(gòu)。用戶之間難以共享主存中的同一程序。若要共享同一程序,則每個用戶應(yīng)各自使用一個分開的副本。優(yōu)點:簡單,無需硬件支持,因而可在一般計算機上實現(xiàn)。82)動態(tài)重定位在作業(yè)執(zhí)行過程中,每當執(zhí)行一條指令時都由硬件地址轉(zhuǎn)換機構(gòu)將指令中的邏輯地址轉(zhuǎn)換成物理地址。(在作業(yè)執(zhí)行時動態(tài)完成)動態(tài)重定位時,處理機每執(zhí)行一條指令都會把指令中的邏輯地址與重定位寄存器中的數(shù)值相加得到物理地址,然后按物理地址訪問主存儲器。重定位寄存器的值是根據(jù)作業(yè)分配到的存儲空間起始地址來設(shè)定的。采用動態(tài)重定位技術(shù)后,程序中所有指令和數(shù)據(jù)的實際地址是在程序運行過程中最后訪問指令和數(shù)據(jù)的時刻確定的。因此,在作業(yè)運行過程中臨時申請分配附加的存儲區(qū)域或釋放巳占用的部分存儲空間是允許的。9動態(tài)重定位的實現(xiàn)動態(tài)重定位示意圖
10優(yōu)點:主存的使用更加靈活有效。一個用戶的作業(yè)不一定要分配在一個連續(xù)的存儲區(qū),因而可以使用較小的分配單位。而且在作業(yè)開始之前也不一定把它的地址空間中的信息全部裝入主存,而可以在作業(yè)執(zhí)行期間根據(jù)請求動態(tài)地進行。缺點:需要附加硬件支持;實現(xiàn)存儲器管理的軟件比較復(fù)雜。幾個作業(yè)共享一程序段的單個副本比較容易。有可能向用戶提供一個比主存的存儲空間大用多的地址空間。11(三)存儲的共享與保護在多道程序設(shè)計的環(huán)境中,要保證各道程序只能在自己的存儲區(qū)中活動,不對別的程序產(chǎn)生干擾和破壞,必須對存儲信息采用各種保護措施。常用的保護手段:上、下界寄存器法和存儲(保護)鍵法。1.上、下界寄存器法:由硬件為系統(tǒng)中的每個作業(yè)或進程設(shè)置一對上、下界寄存器。當某一作業(yè)的程序裝入內(nèi)存后,系統(tǒng)就將該程序所占存儲空間的首地址和末地址分別裝入相應(yīng)的一對上、下界寄存器中。在程序的運行過程中若要對內(nèi)存進行存訪操作時,必須先進行存訪地址合法性的檢測。非法存訪,將產(chǎn)生越界中斷。12上、下界寄存器保護法的另一個變種是基址----限長寄存器保護法。其為每個作業(yè)(或進程)設(shè)置一個基地址寄存器BA和一個限長寄存器LA。程序執(zhí)行過程中,每執(zhí)行一次存訪操作之前必須做存訪地址合法性的檢查。120K154K154K120K120K154K120K34K上界寄存器≤物理地址<下界寄存器
0≤邏輯地址<限長寄存器
132.存儲(保護)鍵保護法。為每一個被保護的存儲塊分配一個單獨的保護鍵,在當前程序狀態(tài)字(PSW)中設(shè)置相應(yīng)的保護鍵開關(guān)字段,對不同的進程賦予不同的開關(guān)代碼以與被保護的存儲塊中的保護鍵匹配,若不匹配則產(chǎn)生越界中斷。例如:在IBM/360系統(tǒng)中
0
塊i
1
0
0
1
塊i+1
0
1
0
111001
開關(guān)字段(鑰)0—共享(只讀)
共享位
1—匹配(可讀可寫)
保護鍵
0—系統(tǒng)
1~15
—用戶
當前程序狀態(tài)字(PSW)14(四)主存的擴充借助于主存擴充技術(shù)為用戶提供比主存空間大的地址空間,從而實現(xiàn)擴充主存容量的目的。主存擴充技術(shù)覆蓋技術(shù)對(交)換技術(shù)虛擬存儲技術(shù)154.2分區(qū)存儲管理一、概述分區(qū)式存儲管理基本思想:把主存空間靜態(tài)地或動態(tài)地劃分為若干個大小不等的區(qū)域,每個作業(yè)分配一片連續(xù)的存儲空間,程序一次性整體裝入。二、分區(qū)式存儲管理的方式:固定分區(qū)(靜態(tài)分區(qū))存儲管理可變分區(qū)(動態(tài)分區(qū))存儲管理16(一)固定分區(qū)(靜態(tài)分區(qū))
1.基本原理:把主存儲器中可分配的用戶區(qū)域預(yù)先(靜態(tài))劃分為若干個大小不等的連續(xù)的區(qū)域(分區(qū)),每個分區(qū)中裝入一個作業(yè)。分區(qū)的劃分由計算機操作員或者由操作系統(tǒng)作出。并給出分區(qū)說明表。2.主存空間的分配與回收分配結(jié)構(gòu):分區(qū)說明表(MBT)區(qū)號分區(qū)長度起始地址狀態(tài)17例:該系統(tǒng)的內(nèi)存容量為256KB,操作系統(tǒng)占用低地址的40KB,其余空間劃分成5個固定大小的分區(qū)。112K18在固定分區(qū)方法中,當某個用戶程序要裝入運行時,向系統(tǒng)提出分配內(nèi)存的請求,并給出要求存儲空間的大小。系統(tǒng)根據(jù)用戶的請求查詢分區(qū)說明表,從中找出一個滿足要求的,并且是空閑的分區(qū)給申請者,然后修改相應(yīng)的表目的狀態(tài)位,即把狀態(tài)位置為“正在使用”,最后向用戶返回分區(qū)號或分區(qū)首地址。3.地址轉(zhuǎn)換與存儲保護地址轉(zhuǎn)換:靜態(tài)重定位。存儲保護:上下界寄存器法。下界地址≤物理地址≤上界地址4.特點:簡單、空間浪費較大。19(二)可變分區(qū)(動態(tài)分區(qū))1.基本原理:是指在系統(tǒng)運行的過程中,當作業(yè)要求裝入主存儲器時,根據(jù)作業(yè)需要的主存容量(動態(tài)地)劃分出一個分區(qū)分配給該作業(yè),使分區(qū)的大小剛好與作業(yè)的大小相等。2.主存空間的分配與回收分配結(jié)構(gòu):(1)空閑區(qū)說明表(FBT)。區(qū)號分區(qū)長度起始地址狀態(tài)40K
40K16K78K
24K
100K
78K┇(2)自由鏈(空閑區(qū)隊列)20OS作業(yè)1,32K作業(yè)3,64K作業(yè)4,100K20KB052KB66KB130KB230KB256KB-1主存分布52KB230KB14KB^26KB首指針自由鏈(空閑區(qū)隊列)21主存分配與回收過程:(設(shè)系統(tǒng)主存容量為256K,OS占用20K)
進程A(64K)進程B(16K)進程C(8K)進程D(24K)進程A
OS進程A
OS進程A進程B進程C
OS進程C進程B
OS
進程D進程B
進程C
進程A
OS進程D進程C22常用的分區(qū)分配算法(放置策略)放置策略:自由鏈(空閑區(qū)隊列)的排序原則??臻e區(qū)的組織方法有兩種:按空閑區(qū)大小的遞增和遞減的次序組織空閑區(qū)隊列。按空閑區(qū)首址的增加或減少的次序組織空閑區(qū)隊列。(1)最佳適應(yīng)算法(BFA)
為一個作業(yè)選擇分區(qū)時總是尋找大小最接近于作業(yè)所要求的存儲區(qū)域。換句話說,把作業(yè)放入這樣的分區(qū)后剩下的部分最小。存儲空間中所有的空白區(qū)按其大小遞增的順序鏈接起來。23優(yōu)點:首先選擇正好是所要求大小的空白區(qū);其次選擇比要求稍大的空白區(qū)劃分,而不會去劃分一個更大的空白區(qū)。因此,其后遇到大的作業(yè)到來時,作業(yè)要求的存儲區(qū)域就比較容易得到滿足。缺點:在每次分配時,容易產(chǎn)生較小的空白區(qū),由于其太小而無法使用,從而形成“碎片”。因此,經(jīng)過一段時期后,存儲空間中可能留下許多這樣的“碎片”
。在回收一個分區(qū)時,為了把它插入到空白區(qū)鏈中合適的位置上也頗為費時。改進:可設(shè)置一參數(shù)G,用它來確定最小分區(qū)的大小。當選擇一個分區(qū)時,如果選中的空白區(qū)與要求的大小之差小于G,則不再對它劃分,而把整個這個空白區(qū)分配給申請的作業(yè)。24(2)最壞適應(yīng)算法(WFA)
在為作業(yè)選擇存儲區(qū)域時,總是尋找最大的空閑區(qū)??臻e區(qū)以大小遞減的順序鏈接起來。
優(yōu)點:
在劃分后剩下的空閑區(qū)較大,因而對以后的分配很可能仍然是有用的。缺點:由于最大的空閑區(qū)總是首先被分配而進行劃分,當有大的作業(yè)時,其存儲空間的申請往往得不到滿足。25(3)首次(最先)適應(yīng)算法(FFA)
在為作業(yè)分配存儲區(qū)域時,從空閑區(qū)鏈的始端開始查找,選擇第一個滿足請求的空閑區(qū).而不管它究竟有多大。每個空閑區(qū)按其在存儲空間中地址遞增的順序鏈在一起。即每個后繼空閑區(qū)的起始地址總是比前者的大。特點:傾向于優(yōu)先利用存儲空間中低址部分的空白區(qū)。26缺點:這種算法可能會利用一個大的空閑區(qū)適應(yīng)小作業(yè)的請求。由于所有的請求都是從空白區(qū)鏈的始端開始查找,因而這些小的甚至無用的空閑區(qū)集中在這個鏈的前端,相應(yīng)地,一些較大的空閑區(qū)在鏈的后端才能發(fā)現(xiàn)。這種情況使找到合適空閑區(qū)的速度降低。優(yōu)點:算法簡單,查找速度快。留在高地址部分的大的空閑區(qū)被劃分的機會較少,因而在大作業(yè)到來時也比較容易得到滿足。27
動態(tài)分區(qū)分配的過程中選擇的空閑區(qū)被分成兩部分:一部分與請求的大小相等,分配給作業(yè);剩下的部分作為空閑區(qū)仍留在空閑區(qū)鏈中。28(c)最壞適應(yīng)法中的空閑區(qū)隊列(a)首次適應(yīng)法中的空閑區(qū)隊列(b)最佳適應(yīng)法中的空閑區(qū)隊列標志0標志0標志0標志0標志0標志0標志0標志0標志0標志0標志0標志029
作業(yè)
A18KB
os30KB在使用20KB在使用5KB在使用46KB020KB100KB160KB210KB256KB-1首次適應(yīng)算法
作業(yè)
A18KB
os30KB在使用20KB在使用5KB在使用46KB020KB100KB160KB210KB256KB-1最佳適應(yīng)算法
作業(yè)
A18KB
os30KB在使用20KB在使用5KB在使用46KB020KB100KB160KB210KB256KB-1最壞適應(yīng)算法3031回收一個主存塊——空閑區(qū)的拼接具體工作:檢查釋放區(qū)是否與系統(tǒng)中的空閑區(qū)相鄰,若相鄰則把釋放區(qū)合并到相鄰的空閑區(qū)中,否則把釋放區(qū)作為一個空閑區(qū)插入到自由主存隊列的適當位置。釋放區(qū)與空閑區(qū)相鄰有四種情況:占用區(qū)TIHTI占用區(qū)占用區(qū)IH占用區(qū)I釋放區(qū)與空閑區(qū)相鄰情況其中:I:釋放區(qū)H:前空閑區(qū)T:后空閑區(qū)32(1)釋放區(qū)與前空閑區(qū)相鄰:如圖所示。對這種情況是將釋放區(qū)與前空閑區(qū)合并為一個空閑區(qū),其首址仍為前空閑區(qū)首址,大小為釋放區(qū)大小與空閑區(qū)大小之和。H占用區(qū)I判斷相鄰空閑區(qū):addr(I)=addr(H)+size(H)則前鄰為空閑區(qū):釋放區(qū)與空閑區(qū)的拼接:
addr=addr(H)
size=size(H)+size(I)
(修改H的登記項)33判斷相鄰空閑區(qū):
addr(T)=addr(I)+size(I)則后鄰為空閑區(qū):釋放區(qū)與空閑區(qū)的拼接:
addr=addr(I)
size=size(T)+size(I)
(修改T的登記項)
(2)釋放區(qū)與后空閑區(qū)相鄰:如圖所示。對這種情況是把釋放區(qū)合并到后空閑區(qū),首地址為釋放區(qū)首地址,大小為二者大小之和。占用區(qū)TI34HTI判斷相鄰空閑區(qū):addr(I)=addr(H)+size(H),則前鄰為空閑區(qū)addr(T)=addr(I)+size(I),則后鄰為空閑區(qū)釋放區(qū)與空閑區(qū)的拼接:
addr=addr(H)
size=size(H)+size(I)
+size(T)
(修改H的登記項,并刪除T的登記項)
(3)釋放區(qū)與前后兩個空閑區(qū)相鄰:如圖所示。在這種情況下將這三個區(qū)合為一個空閑區(qū),其首地址為前空閑區(qū)首地址,大小為這三個區(qū)大小之和。35
(4)釋放區(qū)不與任何空閑區(qū)相鄰:如圖所示。這種情況下把釋放區(qū)作為一個空閑區(qū),將其插入到自由鏈的適當位置。占用區(qū)占用區(qū)I釋放區(qū)作為一個新的空閑區(qū):
addr=addr(I)size=size(I)(增加一個新的登記項)36三、碎片問題及拼接技術(shù)
碎片:主存中不連續(xù)的極小的空閑區(qū)。解決方法:采用“拼接技術(shù)”(移動技術(shù)或緊湊技術(shù))使分散的空閑區(qū)集中起來,以容納新的作業(yè)。緊湊的示意
37優(yōu)缺點:(1)集中分散的空閑區(qū),提高了主存空間的利用率;(2)移動會增加系統(tǒng)的開銷,花費大量的CPU時間;(盡量減少移動)(3)移動是有條件的。(正等待外圍設(shè)備進行信息傳輸?shù)倪M程不能移動)(4)當系統(tǒng)進行拼接時,它必須停止所有其它的工作;(5)拼接需要重新定位已裝入主存的作業(yè)。
384.3分頁式存儲管理
一、基本原理將主存空間按固定大小等分為若干個大小相等的塊(頁面),并給以從“0”開始的順序的編號——塊號(頁框號)(頁架號)。將作業(yè)的地址空間等分為若干個與塊相等的頁,并給以從“0”開始的順序的編號——頁號(頁面號)。
存儲分配時,將作業(yè)信息按頁存放到塊中(存儲分配時,以塊為單位),一個作業(yè)所占用的若干個主存塊可以是不相鄰的(塊號可以是不連續(xù)的)。39
┆主存空間
00000HFFFFFH
2#
0#
1#地址空間
0
3K-1┆40(一)邏輯地址結(jié)構(gòu)在分頁存貯管理中,程序的邏輯地址包含兩部分內(nèi)容:頁號和頁內(nèi)地址(頁內(nèi)偏移量)。(設(shè):頁長=1KB=210B)
頁內(nèi)地址的位數(shù)由頁長決定,邏輯地址字中除去頁內(nèi)地址所占的低位部分外,其余高位部分為頁號。例如一個系統(tǒng)的邏輯地址字為16位,頁長為1KB,則頁長占10位,占邏輯地址字的第0—9位,余下的第10—15位為頁號。頁號P頁內(nèi)地址d091015
二、頁式地址轉(zhuǎn)換41則:頁長(L)=212B=4KB最大分頁數(shù)=220頁=1M頁頁號P頁內(nèi)地址d0111231若邏輯地址的長度為32位,其中0~11為頁內(nèi)地址,12~31位為頁號
42
對某特定機器,其地址結(jié)構(gòu)是一定的。若給定一個邏輯地址空間中的地址為A,頁面的大小為L,則頁號P和頁內(nèi)地址d可按下式求得:在系統(tǒng)進行存訪操作時,由硬件地址轉(zhuǎn)換機構(gòu)自動地取出頁號和頁內(nèi)地址,然后進行頁地址變換。43系統(tǒng)為每個進程建立一個頁表,頁表的起始地址和它的長度存放在進程的進程控制塊(PCB)中。占用處理機的現(xiàn)行進程的頁表必須駐留在內(nèi)存,其首地址和長度由地址映射機構(gòu)的頁表起址和頁表長度寄存器指示。(二)頁表頁表:指出邏輯地址中的頁號與該頁所在主存的塊號的對應(yīng)關(guān)系。
頁號
塊號4421程序地址空間頁號塊號頁號作業(yè)1作業(yè)2作業(yè)3作業(yè)3作業(yè)1作業(yè)1作業(yè)2作業(yè)2作業(yè)1頁表結(jié)構(gòu)頁表內(nèi)存21222623272945(三)頁地址轉(zhuǎn)換過程例:設(shè)頁面大小為1KB,機器的地址長度為16位。作業(yè)2的進程在CPU上運行,執(zhí)行指令Movr1,[2500]頁表始址寄存器頁號p頁內(nèi)位移d0000100111000100091015
2500=(100111000100)2Movr1,[2500]12301KB2KB3KB-1地址空間
(1110111000100)2=7620P=2d=452①Movr1,[2500]12302KB4KB7KB256KB-1主存頁號塊號頁表
0
1
2
2
4
7塊號p’頁內(nèi)位移d0001110111000100091015③123②+物理地址=
p’
*L+d46(四)快表在每次地址變換時要訪問內(nèi)存頁表,然后產(chǎn)生內(nèi)存地址,這樣執(zhí)行一條訪問內(nèi)存的指令至少要訪問兩次內(nèi)存,運行速度降低一倍。解決這個問題的一種方法是把頁表放在一組快速存儲器中,而不是內(nèi)存中。轉(zhuǎn)換過程:①將當前指令中的邏輯地址(2500)分解為頁號P(2)和頁內(nèi)地址d(452)。②根據(jù)頁號P(2)查頁表,取得相應(yīng)的塊號P’(7)。③將塊號P’(7)與頁內(nèi)地址d(452)拼接為物理地址(7620)。47聯(lián)想方式:是用聯(lián)想線路連接各寄存器,查詢時不再用查詢內(nèi)存表格的方法一個表目一個表目地查詢,而是通過電子線路同時查詢所有的快表寄存器。在具有高速聯(lián)想存儲器的地址變換過程中,首先檢查這個高速存儲器,確定需要的頁表目是否在其中。如果沒有發(fā)現(xiàn),再訪問主存儲器中的頁表。在訪問內(nèi)存中頁表的同時,把從頁表中讀出的頁表目存入一個寄存器單元中,以替代一個老的、認為不再需要的頁表目??毂恚簩斍皥?zhí)行進程中最常用的頁表目(頁號與對應(yīng)的塊號)存入高速聯(lián)想存儲器構(gòu)成一張快表,以減少訪問主存的次數(shù),提高存取的速度。慢表:內(nèi)存中存放的頁表。48頁表始址寄存器分頁機構(gòu)聯(lián)想寄存器塊號頁表(在主存中)物理地址apdbdbapb首先選擇這條路a+p僅在聯(lián)想映像不匹配時進行+49(五)兩級頁表及多級頁表結(jié)構(gòu)
現(xiàn)代的大多數(shù)計算機系統(tǒng),都支持非常大的邏輯地址空間(232~264)。在這樣的環(huán)境下,頁表就變得非常大,要占用相當大的內(nèi)存空間。例如,對于一個具有32位邏輯地址空間的分頁系統(tǒng),規(guī)定頁面大小為4KB即212B,則在每個進程頁表中的頁表項可達220個,1M個之多。又因為每個頁表項占用4個字節(jié),故每個進程僅僅其頁表就要占用4MB的內(nèi)存空間,而且還要求是連續(xù)的。50
1、兩級頁表結(jié)構(gòu)邏輯地址為32位時,邏輯地址空間為4GB(即232B)設(shè):頁面大小為4KB(即212B)則:最多頁面數(shù)為1MB(即220B)兩極頁表結(jié)構(gòu)的邏輯地址字:主頁號P1次級頁號P2頁內(nèi)地址d
3122211211051兩級頁表結(jié)構(gòu)
主頁表次級頁表52具有兩級頁表的地址變換機構(gòu)頁內(nèi)地址主頁表次級頁表主頁號次級頁號主頁表寄存器53(一)分配結(jié)構(gòu):位示圖三、主存空間的分配與回收100000110010000110001101111110151413121143210(二)頁的分配與回收分配:字號(行)
掃描位示圖,找是“0”的位修改該位為:“1”,位號(列)塊號=字號×字長+位號,返回塊號。
54回收:
字號=[塊號/字長]取整
根據(jù)塊號位號={塊號/字長}求余掃描位示圖,根據(jù)(字號,位號)找對應(yīng)的位,將該位修改為“0”。100000110010000110001101111110151413121143210分配結(jié)構(gòu):位示圖55四、頁的共享與保護作業(yè)1的頁表
頁號標志塊號
0
E12
1
E13
2
W14
3
R8頁號標志塊號
0
E
2
1
W
3
2
R
8作業(yè)2的頁表
頁的共享:對作業(yè)中涉及共享信息的頁,使其在頁表中的有關(guān)表目指向共享信息所在的主存塊。頁的保護:在頁表中增加一些標志位指出對該頁信息可執(zhí)行的操作。56五、分頁式存儲管理特點1.解決了碎片問題,提高了存儲空間的利用率。2.但作業(yè)大小仍受內(nèi)存可用頁面數(shù)的限制。由于分頁存儲分配有效地解決了存儲器的零頭問題,因而能同時為更多的作業(yè)提供存儲空間,能在更高的程度上進行多道程序設(shè)計,從而相應(yīng)地提高了存儲器和處理機的利用率。574.4分段式存儲管理問題:
1)前面介紹的各種存儲管理方案,如分區(qū)分配,分頁等,它們的主要差別在于對內(nèi)存的利用方法不同,目的都在于如何有效地利用內(nèi)存。為了更有效地利用存儲器同時又便于程序員使用,引進了分段存貯管理。
2)實際用戶處理問題,往往出現(xiàn)模塊化程序,且有主程序、子程序、分程序、過程等結(jié)構(gòu),它們基本上是以段(模塊)出現(xiàn)的。程序員都希望把信息按其內(nèi)容或函數(shù)關(guān)系分成段,每段有自己的名字,且可以根據(jù)名字來訪問相應(yīng)的程序或數(shù)據(jù)段。一、段式系統(tǒng)的特點58分段式存儲管理基本原理
1)一個用戶程序通常由一個主程序、若干個子程序和數(shù)據(jù)區(qū)組成,按信息的邏輯關(guān)系分為段,每一段從“0”開始給以順序的編號(段號)。
2)程序的地址空間按段組織。(把整個作業(yè)的邏輯地址空間分為若干段,每一段的段內(nèi)從“0”開始順序形成邏輯地址)。
3)存儲分配時,以段為單位分配一片連續(xù)的存儲空間。注意:“段”是信息的邏輯單位,是由程序設(shè)計人員決定的,其長度隨程序的不同而變化;“頁”是由操作系統(tǒng)規(guī)定的,確定頁長、進行分頁等,都是由操作系統(tǒng)和硬件相互配合完成。59一個段是一組邏輯信息,如子程序,數(shù)組或數(shù)據(jù)區(qū),工作區(qū)等。每個作業(yè)的地址空間由一些分段構(gòu)成的,每段都有自己的名字,且都是一段連續(xù)的地址空間。每個段從0開始編址,整個作業(yè)的地址空間是二維的。二、段式地址變換分段MAIN(主程序)分段X(子程序)分段A(數(shù)組)分段B(工作區(qū))60一旦段號字段和位移量字段的長度確定后,一個作業(yè)地址空間中允許的最多段數(shù)及段的最大長度也就限定了。上述地址結(jié)構(gòu)表明,該系統(tǒng)可允許一個作業(yè)有256段,最大段長為64K字節(jié)。程序的地址空間按段組織,每段有個標識符,稱為段名,由程序員給出。程序經(jīng)過編譯連接后,段名轉(zhuǎn)換成段號。各段的長度一般情況下不相等,但段內(nèi)編址是一維的。因此程序的邏輯地址由段號和段內(nèi)地址組成,即二維地址。段號S位移量W23150邏輯地址字:61段地址映射的數(shù)據(jù)結(jié)構(gòu)有段表、段表首址指針和段表的長度。段表首址指針一般存放在所在進程的PCB中。段表存放程序各段的長度、位置和存取狀態(tài)等信息。每個進程有一個段表,每個程序段的有關(guān)信息占用一個表目。62段地址轉(zhuǎn)換通常由硬件的地址轉(zhuǎn)換機構(gòu)完成:1)程序地址字送入虛地址寄存器VR,取出段號S和段內(nèi)位移W。(分解)2)根據(jù)段表首址指針找到段表,查找段號為S的表目,得到該段的首地址b。(查段表)3)把段首地址與段內(nèi)地址相加,形成物理地址,并以此地址存訪內(nèi)存。(相加)在段地址變換的過程中,與頁地址變換一樣,也有兩次訪問內(nèi)存的問題。為加快訪問內(nèi)存的速度也可采用聯(lián)想存儲器組成快表。63段地址轉(zhuǎn)換過程控制寄存器段表始址段表長度
6000段表
段始址
段大小
300
500
4000
300
8000
段號
0
1
2+
②W(292)S(2)①
邏輯地址
LOAD1,2|292
┇
Data主存4128
物理地址8292
+③
64三、段的動態(tài)連接
1.連接裝配方式(1)靜態(tài)連接(要求有統(tǒng)一編址的相對地址空間時采用。如:分頁存儲管理)(2)動態(tài)連接(不要求有統(tǒng)一編址的相對地址空間時采用。如:分段存儲管理)
2.連接間接字機器指令的尋址方式
(1)直接尋址ADD4001320400
(2)間接尋址(包含直接地址的字——間接字)ADD*400140013201320400(直接地址)(直接地址)(間接字)(間接地址)(直接地址)653.編譯程序的連接準備工作(程序段的編譯原則)
訪問本段程序——直接尋址
訪問外段程序——間接尋址(設(shè)置連接間接字,地址指向本段的一個用來存放段名的存儲單元)。(3)連接間接字:
連接標志位L1——>未連接——>硬件自動判斷L位,觸發(fā)連接中斷信號。
0——>已連接——>繼續(xù)執(zhí)行。直接地址L664.連接中斷處理
·根據(jù)連接間接字找出“段名”;
·判斷該段是否在主存;
·在主存,找出段號并修改連接間接字中的地址場和連接標志,返回斷點處繼續(xù)執(zhí)行。
·不在主存,分配主存,調(diào)入主存,分配段號,重復(fù)上一步驟。67例如:編譯后:
連接后:A段:
┇CALLX│Y┇
X段:
┇
X│Y┇
┇CALL*1|2000┇┇
┇
1
1|2400
X│Y1#
段:
┇CALL*1|2000┇┇
┇
0
4|100
X│Y1#
段:
4#段:
┇
4|100┇68四、分段的共享采用分段管理并配合動態(tài)鏈接方法,可以避免在每個作業(yè)的地址空間中均需保留共享子程序的一個副本。若兩個作業(yè)共享一子程序分段,只要在作業(yè)段表的相應(yīng)表目的段首址一項中填入相同的主存地址。6970
五、分段管理主要優(yōu)點:1)便于程序模塊化處理。在分段系統(tǒng)中,我們把每個程序模塊構(gòu)成各自獨立的分段,賦與不同的名字(或段號),并可采用段的保護措施。所以,一個程序模塊不會受到其它模塊的影響和干擾,因而對模塊化程序的處理也比較好解決。
2)便于處理動態(tài)的數(shù)據(jù)結(jié)構(gòu)。在實際應(yīng)用中,有些表格或數(shù)據(jù)段的長度隨輸入數(shù)據(jù)多少而變。在這種情況下,要求能動態(tài)擴大一個分段。為了節(jié)省主存空間,對于這種變化的數(shù)據(jù)段,開始確定的長度剛好滿足當前的需要。當程序員企圖往該段中添加新的數(shù)據(jù)時,便產(chǎn)生一個越界中斷,操作系統(tǒng)得到控制權(quán)后,判別該段是否允許增補,如可以增補,則增加段的長度。這可通過拼接或移去相鄰的一個分段來實現(xiàn)。713)便于動態(tài)鏈接。由于分段地址空間是二維的,且每一分段是一組有意義的信息或具有獨立功能的程序段。因而,可以在作業(yè)運行過程中調(diào)用到一程序段或數(shù)據(jù)段時,再進行動態(tài)鏈接。4)便于共享分段。和分頁不同,分段是一組有一定意義的信息集合,且由于能實現(xiàn)分段的動態(tài)鏈接,一個分段在共享它的作業(yè)之間可以有不同的段號。5)可以實現(xiàn)多段式虛擬存儲器,“擴充”主存容量。或者說作業(yè)的地址空間不受主存容量的限制,只要一段的長度不超過主存的大小。72分段管理的缺點:1)和分頁管理一樣,處理機要為地址變換花費時間,要為表格提供附加的存儲空間,這使操作系統(tǒng)復(fù)雜化。2)為滿足分段的動態(tài)增長和減少外零頭,要采用拼接手段。3)在輔存中管理不定長度的分段困難較多。例如,存儲位置不易確定,存儲空間利用率不易提高。732)頁的大小固定不變,由系統(tǒng)決定。段的大小是不固定的,它由其完成的功能決定。3)由于段是信息的邏輯單位,因此便于存貯保護和信息的共享,頁的保護和共享受到限制。4)段式管理與分區(qū)管理一樣可能產(chǎn)生主存碎片,而頁式管理則很好的消除了碎片。六、段式與頁式管理的比較:雖然段式管理與頁式管理的地址變換機構(gòu)非常相似,但兩者有著概念上的根本差別。1)段是信息的邏輯單位,它是根據(jù)用戶的需要劃分的;頁是信息的物理單位,是為了管理主存的方便而劃分的。744.5
段頁式存儲管理一、基本原理:作業(yè)的地址空間采用分段方式,而作業(yè)的每一段又采用分頁方式。整個主存分成大小相等的塊,主存以塊為單位分配給每個作業(yè)。一段二段三段0頁0頁0頁1頁2頁3頁1頁1頁2頁4K0004K4K4K8K12K8K8K1
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 甘肅省靖遠縣部分學(xué)校2024-2025學(xué)年高一下學(xué)期期中考試政治試題(原卷版+解析版)
- 2025廣東汕尾市水務(wù)集團有限公司招聘人員8人筆試參考題庫附帶答案詳解
- 2025寧夏銀川高新區(qū)建設(shè)投資有限公司招聘10人筆試參考題庫附帶答案詳解
- 推動教育高質(zhì)量發(fā)展的路徑與措施
- 老舊農(nóng)機更新?lián)Q代新政解讀
- 低空經(jīng)濟助力應(yīng)急救援體系現(xiàn)代化建設(shè)方案
- 功能性食品在臨床營養(yǎng)上的應(yīng)用課件
- 飲用水改造合同協(xié)議書
- 升降機安全合同協(xié)議書
- 旅游包車合同協(xié)議書范本
- 《商業(yè)銀行經(jīng)營管理》課件-商業(yè)銀行中間業(yè)務(wù)及表外業(yè)務(wù)管理
- 牙科市場細分領(lǐng)域分析-洞察分析
- 初一英語期中考試質(zhì)量分析
- 第16課《經(jīng)濟危機與資本主義國家的應(yīng)對》中職高一下學(xué)期高教版(2023)世界歷史全一冊
- 獵聘測評題庫
- 貨運車隊的管理制度模版(2篇)
- 2024年貴州省貴陽市中考生物試卷(附答案)
- 全國巾幗家政服務(wù)職業(yè)技能大賽(家務(wù)服務(wù)員)理論考試題庫(含答案)
- 女性生殖系統(tǒng)炎癥護理
- 管道、閥門安裝方案
- 2025屆新課標全國卷高考數(shù)學(xué)押題試卷含解析
評論
0/150
提交評論