工學(xué)存儲管理學(xué)習(xí)教案_第1頁
工學(xué)存儲管理學(xué)習(xí)教案_第2頁
工學(xué)存儲管理學(xué)習(xí)教案_第3頁
工學(xué)存儲管理學(xué)習(xí)教案_第4頁
工學(xué)存儲管理學(xué)習(xí)教案_第5頁
已閱讀5頁,還剩57頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、會計學(xué)1工學(xué)存儲管理工學(xué)存儲管理第一頁,編輯于星期二:點 二十一分。6.1 存儲管理功能存儲管理功能n 內(nèi)存/外存的管理;n 內(nèi)/外存管理采用相同 或相似的管理技術(shù);n 功 能 l 存儲分配存儲分配l 存儲共享存儲共享l 存儲保護存儲保護l 存儲擴充存儲擴充l 地址映射地址映射第1頁/共62頁第二頁,編輯于星期二:點 二十一分。第2頁/共62頁第三頁,編輯于星期二:點 二十一分。第3頁/共62頁第四頁,編輯于星期二:點 二十一分。第4頁/共62頁第五頁,編輯于星期二:點 二十一分。第5頁/共62頁第六頁,編輯于星期二:點 二十一分。6.2.2.1 靜態(tài)等長分區(qū)的分配靜態(tài)等長分區(qū)的分配n 字位映

2、象圖字位映象圖(bit map)用一個 bit 代表一頁狀態(tài),0: 空閑,1: 占用。1001.10第第0頁頁第第1頁頁第第2頁頁第第k頁頁第第n-1頁頁第第n頁頁分配: 按頁號從小到大查字位圖, 找到為0的位改為1,返回頁號。去配: 把頁號對應(yīng)的 bit 置為 0 。第6頁/共62頁第七頁,編輯于星期二:點 二十一分。n 空閑頁面表空閑頁面表:首頁面號首頁面號頁面?zhèn)€數(shù)頁面?zhèn)€數(shù)1204占用占用120頁頁121頁頁122頁頁123頁頁占用占用內(nèi)存內(nèi)存分配/去配: 需修改空閑頁面表。特點: 可以分配連續(xù)頁面。 DMA 要求6.2.2.1 靜態(tài)等長分區(qū)的分配靜態(tài)等長分區(qū)的分配(Cont.)空閑頁面表

3、結(jié)構(gòu)空閑頁面表結(jié)構(gòu)第7頁/共62頁第八頁,編輯于星期二:點 二十一分。6.2.2.1 靜態(tài)等長分區(qū)的分配靜態(tài)等長分區(qū)的分配(Cont.)n 空閑頁面鏈空閑頁面鏈 :占 用占 用占 用head空閑頁面鏈結(jié)構(gòu)空閑頁面鏈結(jié)構(gòu)分配/去配: 調(diào)整鏈表。特點: 節(jié)省空間。 (不適合外存管理)第8頁/共62頁第九頁,編輯于星期二:點 二十一分。6.2.2.2 動態(tài)異長分區(qū)的分配動態(tài)異長分區(qū)的分配常用于界地址存儲管理和段式存儲管理。常用于界地址存儲管理和段式存儲管理??臻e區(qū)首址空閑區(qū)首址空閑區(qū)長度空閑區(qū)長度.addresssize0空閑區(qū)表空閑區(qū)表n 初始時一個連續(xù)空閑區(qū);n 空閑區(qū)首址由小到大;n 長度 =

4、 0 為表尾。分配: 按分配策略調(diào)整表項;去配: 把去配的空間插入表中, 可能需要合并空閑區(qū)。第9頁/共62頁第十頁,編輯于星期二:點 二十一分。6.2.2.2 動態(tài)異長分區(qū)的分配動態(tài)異長分區(qū)的分配(Cont.)最先適應(yīng)算法最先適應(yīng)算法(First Fit) :空閑區(qū)首址空閑區(qū)首址空閑區(qū)長度空閑區(qū)長度128642563210242560空閑區(qū)表空閑區(qū)表空閑區(qū): 首址遞增排列;申請: 取第一個可滿足區(qū)域 ;優(yōu)點: 盡量使用低地址空間, 高區(qū)保持大空閑區(qū)域。缺點: 可能分割大空閑區(qū)。 如申請32將分割第一個區(qū)域。第10頁/共62頁第十一頁,編輯于星期二:點 二十一分。6.2.2.2 動態(tài)異長分區(qū)的

5、分配動態(tài)異長分區(qū)的分配(Cont.)最佳適應(yīng)算法最佳適應(yīng)算法(Best Fit) :空閑區(qū)首址空閑區(qū)首址空閑區(qū)長度空閑區(qū)長度256321286410242560空閑區(qū)表空閑區(qū)表空閑區(qū): 空閑區(qū)長度遞增排列 ;申請: 取最小可滿足區(qū)域 ;優(yōu)點: 盡量使用小空閑區(qū), 保持大空閑區(qū)域。缺點: 容易形成碎片fragment。 如申請30將留下長度為2的空閑區(qū)。第11頁/共62頁第十二頁,編輯于星期二:點 二十一分。6.2.2.2 動態(tài)異長分區(qū)的分配動態(tài)異長分區(qū)的分配(Cont.)最壞適應(yīng)算法最壞適應(yīng)算法(Worst Fit) :空閑區(qū)首址空閑區(qū)首址空閑區(qū)長度空閑區(qū)長度10242561286425632

6、0空閑區(qū)表空閑區(qū)表空閑區(qū): 空閑區(qū)長度遞減排列。申請: 取最大可滿足區(qū)域。優(yōu)點: 防止形成碎片。缺點: 分割大空閑區(qū)。第12頁/共62頁第十三頁,編輯于星期二:點 二十一分。最先適應(yīng)算法,空閑區(qū)首址遞增排列define CMAPSIZ 100define SMAPSIZ 100struct map /存儲資源表結(jié)構(gòu) char *m_size; char *m_addr;struct map coremapCMAPSIZ; /內(nèi)存資源表struct map swapmapSMAPSIZ; /外存資源表第13頁/共62頁第十四頁,編輯于星期二:點 二十一分。int malloc (mp, size

7、 ) /存儲分配函數(shù)struct map *mp; register int a ; register struct map *bp ; for (bp = mp; bp - m_size ; bp +) if ( bp - m_size = size ) a= bp - m_addr ; bp - m_addr += size ; if ( bp - m_size -= size ) = 0) /當(dāng)前塊size do bp +; /do循環(huán)壓縮size=0的存儲表項 (bp-1) - m_addr = bp - m_addr ; while(bp-1)-m_size = bp - m_siz

8、e); return(a); /分配成功,返回分配存儲塊的首地址 return(0); /分配不成功,返回0存儲分配函數(shù): mp=coremap 內(nèi)存分配swapmap 外存分配第14頁/共62頁第十五頁,編輯于星期二:點 二十一分。mfree (mp, size, aa)struct map *map; register struct map bp ; register int t , a ; a = aa ; for (bp = mp; bp - m_addrm_size !=0; bp +); if (bp mp & (bp-1)-m_addr+(bp-1)-m_size = a

9、) (bp-1)-m_size =+ size; /與前項存儲塊合并 if (a+size = bp - m_addr) /判斷與后項存儲塊是否相連 (bp-1)-m_size += bp -m_size; /再與后項存儲塊合并 while (bp-m_size) /刪除后項存儲塊表項 bp+; (bp-1)- m_addr = bp - m_addr ; (bp-1)-m_size = bp - m_size ; 存儲釋放算法: mp=coremap 釋放內(nèi)存swapmap 釋放外存第15頁/共62頁第十六頁,編輯于星期二:點 二十一分。 else /是存儲表項的第一項或不與前項存儲塊相連

10、if (a+size = bp -m_addr & bp -m_size) /與后項存儲塊相連? bp- m_addr -= size; /與后項存儲塊合并。 bp -m_size += size ; else if (size) /與前、后項存儲塊均不相連, 插入(size,a)表項 do t = bp - m_addr ; /do循環(huán)逐項后移 bp - m_addr = a; a = t; /a與 bp - m_addr 交換 t = bp - m_size; bp - m_size = size; / size 與bp - m_size 交換 bp+; while (size =

11、 t ); 存儲釋放算法(Cont.)第16頁/共62頁第十七頁,編輯于星期二:點 二十一分。6.2.3 碎片與緊湊碎片與緊湊緊湊(Compaction): 移動占用區(qū)域,使所有空閑區(qū)域 連成一片(開銷很大)。0 KB操作系統(tǒng)空間操作系統(tǒng)空間20KB20 KB空閑區(qū)域空閑區(qū)域10KB30 KB進程進程p1空間空間30KB60 KB空閑區(qū)域空閑區(qū)域10KB70 KB進程進程p1空間空間20KB90 KB空閑區(qū)域空閑區(qū)域10KB緊湊前0 KB操作系統(tǒng)空間操作系統(tǒng)空間20KB20 KB進程進程p1空間空間30KB50 KB進程進程p1空間空間20KB70 KB空閑區(qū)域空閑區(qū)域30KB緊湊后第17頁/

12、共62頁第十八頁,編輯于星期二:點 二十一分。址址)n 段頁式管理方式段頁式管理方式(二維二維地址地址)第18頁/共62頁第十九頁,編輯于星期二:點 二十一分。6.3.1 界地址管理方式界地址管理方式單對界存儲管理方式單對界存儲管理方式: (首地址首地址, 長度長度)基本原理 內(nèi)存空間劃分: 動態(tài)異長; 進程空間劃分: 一個進程一個區(qū)域, 邏輯地址0L -1 ; 進程空間與內(nèi)存空間對應(yīng)關(guān)系(可以浮動) :0 :L-1 :b :b+L-1 :L進程空間內(nèi)存空間第19頁/共62頁第二十頁,編輯于星期二:點 二十一分。6.3.1 界地址管理方式界地址管理方式(Cont.) 所需表目: 內(nèi)存分配表:

13、在PCB中 ; 空閑區(qū)域表: array of ( addr , size )。 所需寄存器: 基址寄存器b: 保存運行進程起始地址; 限長寄存器l : 保存運行進程長度。第20頁/共62頁第二十一頁,編輯于星期二:點 二十一分。6.3.1 界地址管理方式界地址管理方式(Cont.) 地址映射: : (a) (b+a) 0:L-1:b:b+L-1:L進程空間內(nèi)存空間限長寄存器首址寄存器Lba越界中斷CMP+b+a步驟 : 由程序確定邏輯地址 a ; a與 L 比較判斷是否越界,不滿足: 0aL-1,越界; a與 b 相加得到物理地址。第21頁/共62頁第二十二頁,編輯于星期二:點 二十一分。6

14、.3.1 界地址管理方式界地址管理方式(Cont.)n 雙對界l 代碼區(qū)域代碼區(qū)域: 首址寄存器、限長寄存器首址寄存器、限長寄存器 ;l 數(shù)據(jù)區(qū)域數(shù)據(jù)區(qū)域: 首址寄存器、限長寄存器首址寄存器、限長寄存器 ;l UNIX : 代碼代碼I空間、數(shù)據(jù)空間、數(shù)據(jù)D空間??臻g。n 交換與重定位l 交換交換: 換入換入(swap-in)/換出換出(swap-out) ; 滾入(roll-in)/滾出(roll-out) ; 交換的基本單位為整個進程。l 可重定位程序可重定位程序: 程序編址與內(nèi)存存放位置無關(guān)程序編址與內(nèi)存存放位置無關(guān) ;l 浮動程序浮動程序: 滿足重定位要求的程序滿足重定位要求的程序,如如

15、0起始編址。起始編址。l 重定位重定位: 換入程序需重定位。換入程序需重定位。第22頁/共62頁第二十三頁,編輯于星期二:點 二十一分。6.3.1 界地址管理方式界地址管理方式(Cont.)n 覆蓋技術(shù)覆蓋技術(shù): 將較大程序裝入較小進程空間的技術(shù)將較大程序裝入較小進程空間的技術(shù), 最大限度提高內(nèi)存利用率。最大限度提高內(nèi)存利用率。l 只將全局代碼和數(shù)據(jù)靜態(tài)裝入內(nèi)存只將全局代碼和數(shù)據(jù)靜態(tài)裝入內(nèi)存, 其它部分動態(tài)裝入其它部分動態(tài)裝入;l 后裝入的成分重復(fù)使用先裝入成分所使用的后裝入的成分重復(fù)使用先裝入成分所使用的 存儲區(qū)存儲區(qū), 即覆蓋先裝入的成分即覆蓋先裝入的成分;l 用戶編寫用戶編寫覆蓋驅(qū)動程序

16、覆蓋驅(qū)動程序, 無需操作系統(tǒng)支持。無需操作系統(tǒng)支持。第23頁/共62頁第二十四頁,編輯于星期二:點 二十一分。6.3.1 界地址管理方式界地址管理方式(Cont.)例覆蓋技術(shù):四遍掃描的編譯程序符符 號號 表表公公 共共 例例 程程覆蓋驅(qū)動程序覆蓋驅(qū)動程序覆覆 蓋蓋 區(qū)區(qū)50 KB內(nèi) 存Pass130 KBPass250 KBPass425 KBPass340 KB第24頁/共62頁第二十五頁,編輯于星期二:點 二十一分。6.3.2 分頁式存儲管理分頁式存儲管理頁式存儲管理(paging): 一個進程占多個等長、連續(xù)內(nèi)存空間; 無碎片。6.3.2.1 基本原理 內(nèi)存空間劃分: 頁架: 靜態(tài)等長

17、, 長度2 i ; 頁架號: 所有頁架由0開始依次編號 ; 頁內(nèi)地址: 頁架內(nèi)單元由0開始依次編址。 例如: 內(nèi)存容量為2 n , 則共有2 n-i個頁架。 第 k 個頁架的起始地址為 k2 i。第25頁/共62頁第二十六頁,編輯于星期二:點 二十一分。6.3.2 分頁式存儲管理分頁式存儲管理(Cont.)02i第第 0 頁頁2i12i第第 1 頁頁2ik2i第第 k 頁頁2i(2n-i-1)2i第第 2n-i1 頁頁2i內(nèi)存空間劃分n 位一維地址碼=頁架首址+頁內(nèi)地址=頁架號2i+頁內(nèi)地址=頁內(nèi)地址頁內(nèi)地址頁架號頁架號i 位n-i 位物理地址第26頁/共62頁第二十七頁,編輯于星期二:點 二

18、十一分。6.3.2 分頁式存儲管理分頁式存儲管理(Cont.) 進程空間劃分: 靜態(tài)等長,2 i, 稱為一個頁面。02i第第 0 頁頁2i12i第第 1 頁頁2ik2i第第 k 頁頁2i(l-1)2i第第 l1 頁頁2i進程空間劃分=邏輯頁首址+頁內(nèi)地址=邏輯頁號2i+頁內(nèi)地址=頁內(nèi)地址頁內(nèi)地址邏輯頁號邏輯頁號i 位n-i 位邏輯地址第27頁/共62頁第二十八頁,編輯于星期二:點 二十一分。6.3.2 分頁式存儲管理分頁式存儲管理(Cont.) 進程空間與內(nèi)存空間對應(yīng)關(guān)系: 頁面連續(xù), 頁架可能不連續(xù)。第第 3 頁頁第第 2 頁頁第第 1 頁頁第第 0 頁頁進程空間第第 79 頁頁第第 78

19、頁頁第第 47 頁頁第第 18 頁頁內(nèi)存空間第28頁/共62頁第二十九頁,編輯于星期二:點 二十一分。6.3.2 分頁式存儲管理分頁式存儲管理(Cont.) 所需表目n 頁表: 每個進程一個。頁架號頁架號18477978邏輯頁號邏輯頁號0123n 總頁表: 系統(tǒng)一個, 記錄頁架使用情況 兩種結(jié)構(gòu):表、鏈。 所需寄存器n 頁表首址寄存器: 系統(tǒng)一個。bn 頁表長度寄存器: 系統(tǒng)一個。ln 快表: 系統(tǒng)一組。邏輯頁號邏輯頁號頁架號頁架號pfl =4第29頁/共62頁第三十頁,編輯于星期二:點 二十一分。6.3.2 分頁式存儲管理分頁式存儲管理(Cont.) 地址映射 : (p, d) (f, d)

20、 邏輯地址 (p, d) 物理地址 (f, d) : 由程序確定邏輯地址 (p, d) ; 由 p 查快表得頁架號 f ; 如查不到: p 與 l 比較,判別是否越界: 不滿足: 0 p l 1 , 越界中斷; 由 p 和 b 查頁表得 f, (p,f) 快表, 如滿淘汰一個; 轉(zhuǎn) ; f 與 d 合并得物理地址 (f, d) 。第30頁/共62頁第三十一頁,編輯于星期二:點 二十一分。頁表長度寄存器頁表首址寄存器lb頁架號頁架號f邏輔邏輔頁號頁號0pl-1進程標(biāo)識進程標(biāo)識pid頁表長度頁表長度 l頁表首址頁表首址 b頁 表進程控制塊PCB邏輯頁號邏輯頁號頁架號頁架號pf 快表TLBdp頁內(nèi)地

21、址頁內(nèi)地址頁號頁號 邏輯地址df頁內(nèi)地址頁內(nèi)地址頁架號頁架號物理地址頁式存儲管理地址映射快表未查到 p6.3.2 分頁式存儲管理分頁式存儲管理(Cont.)第31頁/共62頁第三十二頁,編輯于星期二:點 二十一分。頁表長度寄存器頁表首址寄存器lb頁架號頁架號f0邏輯邏輯頁號頁號l-1p頁 表進程控制塊PCB邏輯頁號邏輯頁號頁架號頁架號pf 快表TLBdp頁內(nèi)地址頁內(nèi)地址頁號頁號 邏輯地址df頁內(nèi)地址頁內(nèi)地址頁架號頁架號物理地址Cmp p:lb+p頁式存儲管理地址映射fp6.3.2 分頁式存儲管理分頁式存儲管理(Cont.)進程標(biāo)識進程標(biāo)識pid頁表長度頁表長度 l頁表首址頁表首址 b第32頁/

22、共62頁第三十三頁,編輯于星期二:點 二十一分。6.3.2 分頁式存儲管理分頁式存儲管理(Cont.)EAT = 快表命中率(快表訪問時間+內(nèi)存訪問時間)+ 快表不中率快表不中率(快表訪問時間快表訪問時間+2內(nèi)存訪問時間內(nèi)存訪問時間) ns 例:快表命中率例:快表命中率98,快表訪問時間,快表訪問時間20ns, 內(nèi)存一次訪問時間內(nèi)存一次訪問時間100ns,則,則 EAT = 98 (20+100)+2 (20+200) = 122 ns第33頁/共62頁第三十四頁,編輯于星期二:點 二十一分。6.3.2 分頁式存儲管理分頁式存儲管理(Cont.)第34頁/共62頁第三十五頁,編輯于星期二:點

23、二十一分。6.3.2 分頁式存儲管理分頁式存儲管理(Cont.)01102320951023094985120102301023010232095102309498512Outer-pagetablePage tableMemory外頁表對應(yīng)hole的表項沒有對應(yīng)的內(nèi)頁表,訪問hole表項動態(tài)建立內(nèi)頁表二級頁表第35頁/共62頁第三十六頁,編輯于星期二:點 二十一分。6.3.2 分頁式存儲管理分頁式存儲管理(Cont.)二級頁表的地址映射: pipjdn Logical address structure :10 bits10 bits12 bitsPage offsetPi : outer

24、page table index ;Pj : page table displacement .Page numbern address translation scheme :p1p2dLogical address.Outer-pagetablep1.fPage tablep2.Physicaladdressmemoryd第36頁/共62頁第三十七頁,編輯于星期二:點 二十一分。6.3.2 分頁式存儲管理分頁式存儲管理(Cont.) 采用二級頁表結(jié)構(gòu)時, 邏輯地址由外層頁號pi, 外層頁內(nèi)地址pj, 頁內(nèi)地址d三部分構(gòu)成。若給定一個邏輯地址空間的地址為A, 系統(tǒng)頁面大小為L, 頁表項的長度

25、為N, 則pi, pj和d的計算公式如下: pi = int int A/L / N pj = int A/L mod N d = A mod L 對前述二級頁表結(jié)構(gòu), L=212, N=210第37頁/共62頁第三十八頁,編輯于星期二:點 二十一分。6.3.2 分頁式存儲管理分頁式存儲管理(Cont.)4級頁表有效訪問時間級頁表有效訪問時間n EAT=快表命中率快表命中率 (快表訪問時間快表訪問時間+內(nèi)存訪問時間內(nèi)存訪問時間)+ 快表不中率快表不中率 (快表訪問時間快表訪問時間+5 內(nèi)存訪問時間內(nèi)存訪問時間) ns例例4級頁表級頁表: 快表命中率快表命中率98,快表訪問時間,快表訪問時間20

26、ns, 內(nèi)存訪問時間內(nèi)存訪問時間100ns,則,則 EAT = 98% (20+100)+2% (20+500)ns =128ns第38頁/共62頁第三十九頁,編輯于星期二:點 二十一分。inverted page table第39頁/共62頁第四十頁,編輯于星期二:點 二十一分。6.3.2.3 反置頁表反置頁表(Cont.)反置頁表工作原理反置頁表工作原理 : pidpd邏輯地址pidp程序0ffd物理地址反置頁表d f個頁架d物理內(nèi)存第40頁/共62頁第四十一頁,編輯于星期二:點 二十一分。6.3.2.3 反置頁表反置頁表(Cont.)第41頁/共62頁第四十二頁,編輯于星期二:點 二十一

27、分。6.3.3 分段式存儲管理分段式存儲管理 segmentation6.3.2.1 基本原理 內(nèi)存空間劃分: n動態(tài)劃分成異長區(qū)域,每個區(qū)域稱作一個動態(tài)劃分成異長區(qū)域,每個區(qū)域稱作一個物理段物理段;n物理段物理段: 段首址段首址, 段內(nèi)地址段內(nèi)地址(由由0開始編址開始編址) ;n物理地址物理地址: 段首址段首址+段內(nèi)地址段內(nèi)地址 (一維地址一維地址);段號段號段內(nèi)地址段內(nèi)地址 進程空間劃分:n靜態(tài)劃分成異長區(qū)域,每個區(qū)域稱作一個靜態(tài)劃分成異長區(qū)域,每個區(qū)域稱作一個邏輯段邏輯段 ;n邏輯段邏輯段: 程序單位程序單位, 如主程序如主程序, 子程序子程序, 數(shù)據(jù)區(qū)數(shù)據(jù)區(qū), 模塊模塊 ;n段號段號:

28、 每個進程有多個邏輯段,從每個進程有多個邏輯段,從0開始依次編號開始依次編號 ;n邏輯段的段內(nèi)地址從邏輯段的段內(nèi)地址從0開始編址開始編址 ;n邏輯地址邏輯地址: (二維地址二維地址)第42頁/共62頁第四十三頁,編輯于星期二:點 二十一分。6.3.3 分段式存儲管理分段式存儲管理(Cont.)占用占用空閑空閑占用占用空閑空閑占用占用空閑空閑占用占用140 KB100 KB130 KB60 KB20 KB50 KB 0 KB內(nèi)存空間劃分調(diào)用X段入口E.訪問DATA段A單元調(diào)用Y段入口F主程序段: main段號=0 050KB-1. F: 子程序段: Y段號=2 030KB-1 E: 子程序段:

29、X段號=3 040KB-1 A: 子程序段: DATA段號=1 030KB-1進程空間第43頁/共62頁第四十四頁,編輯于星期二:點 二十一分。6.3.3 分段式存儲管理分段式存儲管理(Cont.) 進程空間與內(nèi)存空間對應(yīng)關(guān)系: 進程P段main段號=0進程P段data段號=1進程P段Y段號=2進程P段X段號=3 050KB-1 0 0 030KB-140KB-130KB-1120 KB390 KB480 KB810 KB50 KB30 KB30 KB40 KB120 KB220 KB60 KB300 KB第44頁/共62頁第四十五頁,編輯于星期二:點 二十一分。6.3.3 分段式存儲管理分段

30、式存儲管理(Cont.) 所需表目: 段表: 每個進程一個。段號段號段首址段首址段長段長0120 KB50 KB1 390 KB30 KB2 480 KB30 KB3 810 KB40 KB 空閑表: 系統(tǒng)一個 array of (addr,size)首地址首地址長度長度 0 KB120 KB 170 KB220 KB 420 KB 60 KB 510 KB300 KB第45頁/共62頁第四十六頁,編輯于星期二:點 二十一分。6.3.3 分段式存儲管理分段式存儲管理(Cont.) 所需寄存器: 段表首址寄存器一個 : 段表長度寄存器一個: 快表: 系統(tǒng)一組bl段號段號段首址段首址段長度段長度s

31、bl第46頁/共62頁第四十七頁,編輯于星期二:點 二十一分。邏輯地址 (s, d) 物理地址 (b+ d) : 由程序確定邏輯地址 (s, d) ; 由 s 查快表得 b和 l ;如查不到: s 與 l 比較,判別是否越界: 不滿足: 0 s l 1 , 越界中斷; 由 s 和 b 查段表得 b和 l , (s,b,l)快表, 如快表滿淘汰一個; 轉(zhuǎn) ; d 與 l 比較, 不滿足: 0dl-1 , 越界 ; b+d 得物理地址。6.3.3 分段式存儲管理分段式存儲管理(Cont.) 地址映射: : (s, d) ( b + d ) 第47頁/共62頁第四十八頁,編輯于星期二:點 二十一分。

32、6.3.3 分段式存儲管理分段式存儲管理(Cont.)段首址段首址段長段長bl段號段號0sl-1進程標(biāo)識進程標(biāo)識pid段表長度段表長度 l段表首址段表首址 b段 表進程控制塊PCB段號段號段首址段首址段長段長sbl 快表TLB段式存儲管理地址映射偏移偏移段號段號 邏輯地址dscmp物理地址b+d+段表長度reg段表首址regbl若快表查不到s第48頁/共62頁第四十九頁,編輯于星期二:點 二十一分。6.3.3 分段式存儲管理分段式存儲管理(Cont.)段首址段首址段長段長bl段號段號0sl-1進程標(biāo)識進程標(biāo)識pid段表長度段表長度 l段表首址段表首址 b段 表進程控制塊PCB段號段號段首址段首

33、址段長段長sbl 快表TLB段式存儲管理地址映射sbl偏移偏移段號段號 邏輯地址dscmp物理地址b+d+段表長度reg段表首址regbl+cmp第49頁/共62頁第五十頁,編輯于星期二:點 二十一分。6.3.3 分段式存儲管理分段式存儲管理(Cont.) 6.3.2.2 段的共享與保護 段的共享: 不同進程的段號Spi和Spj對應(yīng)同一個段的段首址 和段長即可實現(xiàn)不同進程對段的共享。段首址段首址段長度段長度blP1段表si段號段首址段首址段長度段長度blP2段表sj段號共享段共享段b:l內(nèi)存空間第50頁/共62頁第五十一頁,編輯于星期二:點 二十一分。6.3.3 分段式存儲管理分段式存儲管理(

34、Cont.)共享段表: 系統(tǒng)1個, 記錄所有共享段。main1子程序子程序X子程序子程序Ydatamain2data子程序子程序Y子程序子程序X段長度段長度 首址首址P10段號P21234段長度段長度 首址首址0段號123段 表段名段名共享共享計數(shù)計數(shù)段長度段長度 段首址段首址其其它它X2Y2data2共享段表main1XDataYmain2主 存第51頁/共62頁第五十二頁,編輯于星期二:點 二十一分。6.3.3 分段式存儲管理分段式存儲管理(Cont.) 段的保護: 不同進程對共享段的訪問權(quán)限不同, 需要在段表中加上訪問權(quán)限。段首址段首址段長度段長度訪問權(quán)限訪問權(quán)限RWEbl101段表的改

35、進s段號段號段號段首址段首址 段長度段長度訪問權(quán)限訪問權(quán)限RWEsbl101快表的改進第52頁/共62頁第五十三頁,編輯于星期二:點 二十一分。頁式管理頁式管理段式管理段式管理一維地址空間一維地址空間二維地址空間二維地址空間頁是物理單位頁是物理單位段是邏輯單位段是邏輯單位頁的大小固定頁的大小固定段的大小可變段的大小可變對用戶透明對用戶透明對用戶可見對用戶可見無碎片無碎片有碎片有碎片通常不共享通常不共享便于共享、保護便于共享、保護頁式管理和段式管理的比較:6.3.3 分段式存儲管理分段式存儲管理(Cont.)第53頁/共62頁第五十四頁,編輯于星期二:點 二十一分。6.3.4 段頁式存儲管理段頁

36、式存儲管理segmentation with paging第54頁/共62頁第五十五頁,編輯于星期二:點 二十一分。6.3.4 段頁式存儲管理段頁式存儲管理(Cont.)6.3.4.1 基本原理 內(nèi)存空間劃分: (同頁式) 靜態(tài)等長, 2i, 稱為一頁架 ; 物理地址 = = (f,d)。頁內(nèi)地址頁內(nèi)地址頁架號頁架號n-i 位i 位 進程空間劃分: 一個進程若干個段; 一個段若干個頁; 邏輯地址= =(s,p,d)。段號段號頁內(nèi)地址頁內(nèi)地址邏輯頁號邏輯頁號i 位j 位n-i-j 位第55頁/共62頁第五十六頁,編輯于星期二:點 二十一分。 進程空間與內(nèi)存空間對應(yīng)關(guān)系: 6.3.4 段頁式存儲管理段頁式存儲管理(Cont.)第第 0 頁頁第第 1 頁頁第第 2 頁頁第第 0 頁頁第第 1 頁頁第第 2 頁頁第第 0 頁頁第第 1

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論