操作系統(tǒng)課件_第1頁(yè)
操作系統(tǒng)課件_第2頁(yè)
操作系統(tǒng)課件_第3頁(yè)
操作系統(tǒng)課件_第4頁(yè)
操作系統(tǒng)課件_第5頁(yè)
已閱讀5頁(yè),還剩71頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

頁(yè)表內(nèi)存空間七.兩級(jí)和多級(jí)頁(yè)表進(jìn)程01p頁(yè)號(hào)……k0塊號(hào)b0b1bp01m頁(yè)號(hào)……外部頁(yè)表頁(yè)表的頁(yè)號(hào)塊號(hào)0C0

1C1c0c1cm…進(jìn)程的頁(yè)號(hào)塊號(hào)

……1.兩級(jí)頁(yè)表的引入pbp0b01b1沒裝入內(nèi)存之前的進(jìn)程、頁(yè)表、外部頁(yè)表頁(yè)表內(nèi)存空間七.兩級(jí)和多級(jí)頁(yè)表進(jìn)程01p頁(yè)號(hào)……k0塊號(hào)b1頁(yè)表*離散存放在內(nèi)存C0、C1、…等塊中.內(nèi)存空間k0塊號(hào)b0b1bp外部頁(yè)表*連續(xù)存放在內(nèi)存K0及后續(xù)塊中.頁(yè)表的頁(yè)號(hào)塊號(hào)0C0

1C1

1023C1023c0c1cm內(nèi)存中的進(jìn)程、頁(yè)表、外部頁(yè)表進(jìn)程*離散存放在內(nèi)存b0、b1、…等塊中.………b0b1023…b1024b2047……b1設(shè)頁(yè)大小為4KB頁(yè)表項(xiàng)大小為4B……頁(yè)表內(nèi)存空間k0塊號(hào)b0b1bp外部頁(yè)表頁(yè)表的頁(yè)號(hào)塊號(hào)c2七.兩級(jí)和多級(jí)頁(yè)表2.邏輯地址結(jié)構(gòu)頁(yè)號(hào)P頁(yè)內(nèi)地址d3112110頁(yè)內(nèi)地址d外部頁(yè)號(hào)P1外部頁(yè)內(nèi)地址P231222112110CPU給出:32位線性地址進(jìn)程地址空間分頁(yè):進(jìn)程頁(yè)表分頁(yè):設(shè):邏輯地址為32位,頁(yè)大小為4KB,每個(gè)頁(yè)表項(xiàng)占4B七.兩級(jí)和多級(jí)頁(yè)表2.邏輯地址結(jié)構(gòu)頁(yè)號(hào)P頁(yè)內(nèi)地址d31123頁(yè)表七.兩級(jí)和多級(jí)頁(yè)表表項(xiàng)序號(hào)

塊號(hào)

……b00pbp外部頁(yè)表表項(xiàng)序號(hào)塊號(hào)

0C0

p1Cp1……bp內(nèi)存空間塊號(hào)Cp1bpp進(jìn)程0頁(yè)號(hào)…LAp10頁(yè)表頁(yè)序號(hào)01p2bp外部頁(yè)號(hào)P1外部頁(yè)內(nèi)地址P231222112110頁(yè)內(nèi)地址d邏輯地址LA

C0

Cp1…10231024………第p1個(gè)頁(yè)表頁(yè)表項(xiàng)序號(hào)………1………1邏輯地址04K4K-1………頁(yè)表七.兩級(jí)和多級(jí)頁(yè)表表項(xiàng)序號(hào)塊號(hào)……b00pb4七.兩級(jí)和多級(jí)頁(yè)表:3.地址變換過程:外部頁(yè)表外部頁(yè)表寄存器物理地址外部頁(yè)號(hào)P1外部頁(yè)內(nèi)地址P2頁(yè)內(nèi)地址d…………頁(yè)表分頁(yè)塊號(hào)塊內(nèi)地址外部塊號(hào)頁(yè)號(hào)塊號(hào)頁(yè)號(hào)外部頁(yè)表始址、長(zhǎng)度七.兩級(jí)和多級(jí)頁(yè)表:3.地址變換過程:外部頁(yè)表外部頁(yè)表物理5七.兩級(jí)和多級(jí)頁(yè)表地址轉(zhuǎn)換外部頁(yè)號(hào)塊號(hào)01122435外部頁(yè)表10物理地址外部頁(yè)號(hào)P1外部頁(yè)內(nèi)地址P2頁(yè)內(nèi)地址d塊號(hào)塊內(nèi)地址內(nèi)存5#塊(頁(yè)表3#分頁(yè))外部頁(yè)表寄存器00000000110000000001000000001010頁(yè)號(hào)塊號(hào)307215307316……409580016外部頁(yè)表始址長(zhǎng)度七.兩級(jí)和多級(jí)頁(yè)表地址轉(zhuǎn)換外部頁(yè)號(hào)塊號(hào)01122435外部64.4基本分頁(yè)存儲(chǔ)管理方式基本分頁(yè)總結(jié)優(yōu)點(diǎn):存在頁(yè)內(nèi)碎片,但碎片相對(duì)較小,內(nèi)存利用率較高實(shí)現(xiàn)了離散分配,消除了程序移動(dòng);缺點(diǎn):需要專門的硬件支持,尤其“快表”;頁(yè)面共享實(shí)現(xiàn)困難,不支持動(dòng)態(tài)鏈接。4.4基本分頁(yè)存儲(chǔ)管理方式基本分頁(yè)總結(jié)74.5基本分段存儲(chǔ)管理方式一.分段存儲(chǔ)管理方式的引入

主要是為了滿足用戶和程序員的下述需要:(1)方便編程(2)方便信息共享與信息保護(hù)(3)便于動(dòng)態(tài)鏈接(4)便于動(dòng)態(tài)增長(zhǎng)mainf1data4.5基本分段存儲(chǔ)管理方式一.分段存儲(chǔ)管理方式的引入ma8內(nèi)存4.5基本分段存儲(chǔ)管理方式二.分段系統(tǒng)的基本原理1.作業(yè)分段由編程人員或編譯器將程序按信息的邏輯含義分為若干段:每個(gè)段有段名(段號(hào));每個(gè)段長(zhǎng)度可以不同;每個(gè)段在內(nèi)存中連續(xù)存放,但段與段之間不必相鄰。code(0)data(1)stack(2)代碼數(shù)據(jù)堆棧內(nèi)存4.5基本分段存儲(chǔ)管理方式二.分段系統(tǒng)的基本原理1.作9二.分段系統(tǒng)的基本原理

2.邏輯地址結(jié)構(gòu)stack(2)code(0)data(1)3k-108k-10015k-1段號(hào)段內(nèi)地址二維的邏輯地址1000moveax,(1:500)500-150mov指令的地址:0:1000操作數(shù)的地址:1:500二.分段系統(tǒng)的基本原理stack(2)code(0)dat10二.分段系統(tǒng)的基本原理(1)每個(gè)段在段表中占一個(gè)表項(xiàng);(2)記錄段在內(nèi)存的基址、段長(zhǎng)、存取權(quán)限等信息。第1段第2段第0段第1段第2段20k50k65k內(nèi)存空間段表段號(hào)段長(zhǎng)段基址015k20k17k65k23k50k

3.段表第0段進(jìn)程空間段號(hào)段長(zhǎng)段基址

二.分段系統(tǒng)的基本原理(1)每個(gè)段在段表中占一個(gè)表項(xiàng);第1段114.5基本分段存儲(chǔ)管理方式三.地址變換機(jī)構(gòu)段表寄存器存放段表的起始地址和段表長(zhǎng)度;越界檢查邏輯地址的段號(hào)與段表長(zhǎng)度比較;段內(nèi)地址與段表中保存的段長(zhǎng)比較。4.5基本分段存儲(chǔ)管理方式三.地址變換機(jī)構(gòu)124.5基本分段存儲(chǔ)管理方式段表始址段表長(zhǎng)度(3)段表寄存器>段號(hào)1段內(nèi)地址500邏輯地址越界中斷段表基址段長(zhǎng)50K3k65K7k20K15k210段號(hào)>67060物理地址內(nèi)存4.5基本分段存儲(chǔ)管理方式段表始址段表長(zhǎng)度(3)段表寄存器13假如一個(gè)作業(yè)的段表如下。分別說明下面指令執(zhí)行時(shí),地址轉(zhuǎn)換的情況。(1)STORER1,[0,70];(2)STORER1,[1,20](3)LOADR1,[3,100];(4)JMP[2,100]段號(hào)內(nèi)存始址段長(zhǎng)存取控制0500100RW1100030R23000

200E3800080

R4500040RW:可寫;R:可讀;E:可執(zhí)行。(1)[0,70]→500+70=570(2)

STORER1,[1,20]:存取控制不符,硬件將產(chǎn)生保護(hù)性中斷信號(hào)。(3)[3,100]:段內(nèi)地址超過了段長(zhǎng),產(chǎn)生越界中斷信號(hào)。(4)[2,100]→3000+100=3100假如一個(gè)作業(yè)的段表如下。分別說明下面指令執(zhí)行時(shí),地址轉(zhuǎn)換的情14四.分段與分頁(yè)的區(qū)別

(1)頁(yè)是信息的物理單位,段是信息的邏輯單位;(2)頁(yè)的大小固定,段的大小可變;(3)分頁(yè)系統(tǒng)中的邏輯地址空間是一維的,分段系統(tǒng)中的是二維的。四.分段與分頁(yè)的區(qū)別

(1)頁(yè)是信息的物理單位,段是信息的邏15

五.段頁(yè)式存儲(chǔ)管理方式基本思想結(jié)合分頁(yè)和分段技術(shù),先分段后分頁(yè)分頁(yè):有效提高內(nèi)存利用率分段:很好的滿足用戶需求原理對(duì)用戶作業(yè)先分段,各段再分頁(yè);對(duì)內(nèi)存按頁(yè)大小分成若干物理塊/頁(yè)框。地址結(jié)構(gòu)與地址變換二維的邏輯地址(段號(hào)、段內(nèi)地址)段內(nèi)地址可進(jìn)一步劃分為段內(nèi)頁(yè)號(hào),頁(yè)內(nèi)地址每個(gè)進(jìn)程一張段表和若干張頁(yè)表4.5基本分段存儲(chǔ)管理方式五.段頁(yè)式存儲(chǔ)管理方式4.5基本分段存儲(chǔ)管理方式164.5基本分段存儲(chǔ)管理方式五.段頁(yè)式存儲(chǔ)管理方式

1.作業(yè)分段:按信息的邏輯含義進(jìn)行,每個(gè)段有段名。2.段內(nèi)分頁(yè)3k-10stack(2)8k-10data(1)015k-1Main(0)00132104.5基本分段存儲(chǔ)管理方式五.段頁(yè)式存儲(chǔ)管理方式2.段內(nèi)17五.段頁(yè)式存儲(chǔ)管理方式3210Main(0段)015K-1100008K12K-11000001180840950段2#頁(yè)3.地址結(jié)構(gòu)邏輯地址(0,10000)010000021808五.段頁(yè)式存儲(chǔ)管理方式3210Main(0段)015K-11184.5基本分段存儲(chǔ)管理方式五.段頁(yè)式存儲(chǔ)管理方式

二維地址結(jié)構(gòu)3.地址結(jié)構(gòu)段號(hào)頁(yè)內(nèi)地址0151631段內(nèi)頁(yè)號(hào)1211段號(hào)段內(nèi)地址0151631段內(nèi)分頁(yè)4.5基本分段存儲(chǔ)管理方式五.段頁(yè)式存儲(chǔ)管理方式二維地址19五.段頁(yè)式存儲(chǔ)管理方式:

4.段表及頁(yè)表進(jìn)程地址空間111901段頁(yè)表3段頁(yè)表12003k-10stack(2)頁(yè)號(hào)0123015k-1Main(0)108k-10data(1)0段頁(yè)表622110塊號(hào)頁(yè)號(hào)83段表段號(hào)頁(yè)表長(zhǎng)度頁(yè)表始址012032M…0段0頁(yè)0段1頁(yè)1段1頁(yè)0段3頁(yè)0段2頁(yè)1段0頁(yè)2段0頁(yè)8192塊號(hào)012345678910111213內(nèi)存空間421五.段頁(yè)式存儲(chǔ)管理方式:

4.段表及頁(yè)表進(jìn)程地址空間11120五.段頁(yè)式存儲(chǔ)管理方式

5.地址轉(zhuǎn)換機(jī)構(gòu)段表始址段表長(zhǎng)度段表寄存器邏輯地址(0,10000)頁(yè)號(hào)P頁(yè)內(nèi)地址段號(hào)S>塊號(hào)塊內(nèi)地址物理地址越界中斷02180818080段頁(yè)表211062塊號(hào)頁(yè)號(hào)83段表段號(hào)頁(yè)表長(zhǎng)度頁(yè)表始址0412216內(nèi)存(26384)訪問一個(gè)數(shù)據(jù)需3次訪問內(nèi)存。五.段頁(yè)式存儲(chǔ)管理方式

5.地址轉(zhuǎn)換機(jī)構(gòu)段表始址段表21五.段頁(yè)式存儲(chǔ)管理方式

5.地址轉(zhuǎn)換機(jī)構(gòu)段表始址段表長(zhǎng)度段表寄存器邏輯地址(0,10000)頁(yè)號(hào)P頁(yè)內(nèi)地址段號(hào)S>塊號(hào)塊內(nèi)地址物理地址越界中斷02180818080段頁(yè)表211062塊號(hào)頁(yè)號(hào)83段表段號(hào)頁(yè)表長(zhǎng)度頁(yè)表始址0412216輸入寄存器快表段號(hào)頁(yè)號(hào)塊號(hào)026038109五.段頁(yè)式存儲(chǔ)管理方式

5.地址轉(zhuǎn)換機(jī)構(gòu)段表始址段表22五、基本分段存儲(chǔ)管理方式段頁(yè)式存儲(chǔ)管理的優(yōu)缺點(diǎn)同時(shí)具備分段和分頁(yè)管理的優(yōu)點(diǎn):分散存儲(chǔ),內(nèi)存利用率較高;便于代碼或數(shù)據(jù)共享,支持動(dòng)態(tài)鏈接等。訪問效率下降:一次訪問轉(zhuǎn)換成了三次訪問。五、基本分段存儲(chǔ)管理方式段頁(yè)式存儲(chǔ)管理的優(yōu)缺點(diǎn)23六.DOS的內(nèi)存管理地址線為20根,即物理地址為20位;內(nèi)存空間不超過1M;字長(zhǎng)為16位;分段存儲(chǔ)管理方式:每段長(zhǎng)度不超過216B;段表用寄存器的方式來實(shí)現(xiàn):CS——代碼段內(nèi)存基址DS——數(shù)據(jù)段內(nèi)存基址SS——堆棧段內(nèi)存基址DOS規(guī)定:段在內(nèi)存的起始地址的低4位必須為0。內(nèi)存datastackcode代碼數(shù)據(jù)堆棧的高16位的高16位的高16位六.DOS的內(nèi)存管理地址線為20根,即物理地址為20位;內(nèi)存24六.DOS的內(nèi)存管理二維的邏輯地址:seg:off邏輯地址seg×24+off物理地址六.DOS的內(nèi)存管理二維的邏輯地址:25‘A’六.DOS的內(nèi)存管理DOS系統(tǒng),C語言中地址的兩種表達(dá)方式:指針:如char*p;用兩個(gè)無符號(hào)整數(shù)seg:off分別表示段內(nèi)存基址的高16位,和段內(nèi)偏移:如0X100:0X20TurboC中兩種方式可以互相轉(zhuǎn)化:p=MK_FP(seg,off);seg=FP_SEG(p);off=FP_OFF(p).data00X20‘A’內(nèi)存0X1000①p0X1020charc=‘A’;char*p;p=&c;c②0X100:0X20‘A’六.DOS的內(nèi)存管理DOS系統(tǒng),C語言中地址的兩種表達(dá)26七、X86保護(hù)模式下的三種地址邏輯地址段標(biāo)識(shí)符(16b)和偏移量(32b)

如:CS:EIP;DS:EDI等線性地址一個(gè)32位的無符號(hào)整數(shù),可以用來表示高達(dá)4GB的地址物理地址內(nèi)存地址,也是32位的

七、X86保護(hù)模式下的三種地址邏輯地址段標(biāo)識(shí)符(127邏輯地址線性地址物理地址如果不分頁(yè),那么線性地址就是物理地址段地址轉(zhuǎn)換頁(yè)地址轉(zhuǎn)換邏輯地址線性地址281.段地址轉(zhuǎn)換每個(gè)進(jìn)程的代碼段和數(shù)據(jù)段均存放在自己的局部空間中,這部分信息通常不允許他人訪問,這樣可防止一個(gè)進(jìn)程破壞另一個(gè)進(jìn)程的信息。也有一些段允許被多個(gè)進(jìn)程共享訪問(比如OS中的某些資源,像中斷處理程序等),稱它們?yōu)槿侄巍?.段地址轉(zhuǎn)換每個(gè)進(jìn)程的代碼段和數(shù)據(jù)段均存放在自己的局部空間29每個(gè)段必須用一個(gè)段描述符(8B)來描述,段描述符中有段在內(nèi)存的基地址、段長(zhǎng)度、段的特權(quán)級(jí)別和訪問權(quán)限等信息。段描述符被存放在全局描述符表GDT或局部描述符表LDT中。整個(gè)系統(tǒng)只定義一個(gè)GDT,其中存放有允許多個(gè)進(jìn)程共同訪問的那些段的描述符。每個(gè)進(jìn)程的局部空間的段的所有段描述符集中存放在一張表中,這張表為該進(jìn)程的局部描述符表(LDT),也就是進(jìn)程的段表。每個(gè)段必須用一個(gè)段描述符(8B)來描述,段描述符中有段在內(nèi)存30

內(nèi)存GDT的起始地址和長(zhǎng)度由CPU的寄存器gdtr給出:4716150基址限長(zhǎng)段描述符…………GDTGDTR內(nèi)存GDT的起始地址和長(zhǎng)度由CPU的寄存器gdtr給出:31INDEX01數(shù)據(jù)段代碼段進(jìn)程P數(shù)據(jù)段描述符代碼段描述符進(jìn)程P的LDTP的LDT描述符GDTINDEX000LDTR1530INDEX01數(shù)據(jù)段代碼段進(jìn)程P數(shù)據(jù)段描述符代碼段描述符進(jìn)程322.段描述符

每個(gè)段描述符有8個(gè)字節(jié),根據(jù)S位(第5字節(jié)的第4位)的取值將段描述符分成普通的段描述符(包括數(shù)據(jù)段描述符和代碼段描述符)和控制描述符(也叫系統(tǒng)描述符)兩類。2.段描述符333.普通段描述符類型限長(zhǎng)19…160XG段基址31…24段基址23…16段基址15…0段限長(zhǎng)15…0A1PDPL0473312416S870訪問權(quán)限字節(jié)G——粒度位,0表示限長(zhǎng)以字節(jié)為單位,1表示限長(zhǎng)以頁(yè)4KB為單位X——1表示32位的地址或操作數(shù),0表示16位的地址或操作數(shù)3.普通段描述符類型限長(zhǎng)0XG段基址31…24段基址23…134P訪問權(quán)限字節(jié)DPLS1EDE0AWCE1ARE=0——數(shù)據(jù)段E=1——代碼段P——存在位DPL——特權(quán)級(jí)別E——可執(zhí)行與否ED——擴(kuò)充方向,0向上擴(kuò)充(偏移<=限長(zhǎng))

1向下擴(kuò)充(偏移>限長(zhǎng))W——可寫與否R——可讀與否A——段是否被訪問過C——一致性(證實(shí))代碼段與否4.二級(jí)分頁(yè)管理(略)P訪問權(quán)限字節(jié)DPLSEDEAWCEARE=0——數(shù)據(jù)段E=35作業(yè):P159:5,6,7,12,15,26補(bǔ)充作業(yè):1.什么叫重定位?它有哪兩種方式?這兩種方式有什么區(qū)別?2.某系統(tǒng)采用動(dòng)態(tài)分區(qū)分配方式管理內(nèi)存,內(nèi)存空間為640K,高端40K用來存放操作系統(tǒng)。在內(nèi)存分配時(shí),系統(tǒng)優(yōu)先使用空閑區(qū)低端的空間。對(duì)下列的請(qǐng)求序列:作業(yè)1申請(qǐng)130K、作業(yè)2申請(qǐng)60K、作業(yè)3申請(qǐng)100K、作業(yè)2釋放60K、作業(yè)4申請(qǐng)200K、作業(yè)3釋放100K、作業(yè)1釋放130K、作業(yè)5申請(qǐng)140K、作業(yè)6申請(qǐng)60K、作業(yè)7申請(qǐng)50K、作業(yè)6釋放60K,請(qǐng)分別畫圖表示出,使用首次適應(yīng)算法和最佳適應(yīng)算法進(jìn)行內(nèi)存分配和回收后,內(nèi)存的實(shí)際使用情況.作業(yè):P159:5,6,7,12,15,26363.請(qǐng)求分頁(yè)管理系統(tǒng)中,假設(shè)某進(jìn)程的頁(yè)表內(nèi)容如下表所示:

頁(yè)面大小為4KB,一次內(nèi)存的訪問時(shí)間是100ns,一次快表(TLB)的訪問時(shí)間是10ns,處理一次缺頁(yè)的平均時(shí)間為108ns(已含更新TLB和頁(yè)表的時(shí)間),進(jìn)程的駐留集大小固定為2,采用LRU置換算法和局部淘汰策略。假設(shè)①TLB初始為空;②地址轉(zhuǎn)換時(shí)先訪問TLB,若TLB未命中,再訪問頁(yè)表(忽略訪問頁(yè)表之后的TLB更新時(shí)間);③有效位為0表示頁(yè)面不在內(nèi)存,產(chǎn)生缺頁(yè)中斷,缺頁(yè)中斷處理后,返回到產(chǎn)生缺頁(yè)中斷的指令處重新執(zhí)行。頁(yè)號(hào)頁(yè)框(PageFrame)號(hào)有效位(存在位)0101H11—02254H13.請(qǐng)求分頁(yè)管理系統(tǒng)中,假設(shè)某進(jìn)程的頁(yè)表內(nèi)容如下表所示:頁(yè)號(hào)37設(shè)有虛地址訪問序列2362H、1565H、25A5H,請(qǐng)問:

(1)依次訪問上述三個(gè)虛地址,各需多少時(shí)間?給出計(jì)算過程。

(2)基于上述訪問序列,虛地址1565H的物理地址是多少?請(qǐng)說明理由。操作系統(tǒng)課件38頁(yè)表內(nèi)存空間七.兩級(jí)和多級(jí)頁(yè)表進(jìn)程01p頁(yè)號(hào)……k0塊號(hào)b0b1bp01m頁(yè)號(hào)……外部頁(yè)表頁(yè)表的頁(yè)號(hào)塊號(hào)0C0

1C1c0c1cm…進(jìn)程的頁(yè)號(hào)塊號(hào)

……1.兩級(jí)頁(yè)表的引入pbp0b01b1沒裝入內(nèi)存之前的進(jìn)程、頁(yè)表、外部頁(yè)表頁(yè)表內(nèi)存空間七.兩級(jí)和多級(jí)頁(yè)表進(jìn)程01p頁(yè)號(hào)……k0塊號(hào)b39頁(yè)表*離散存放在內(nèi)存C0、C1、…等塊中.內(nèi)存空間k0塊號(hào)b0b1bp外部頁(yè)表*連續(xù)存放在內(nèi)存K0及后續(xù)塊中.頁(yè)表的頁(yè)號(hào)塊號(hào)0C0

1C1

1023C1023c0c1cm內(nèi)存中的進(jìn)程、頁(yè)表、外部頁(yè)表進(jìn)程*離散存放在內(nèi)存b0、b1、…等塊中.………b0b1023…b1024b2047……b1設(shè)頁(yè)大小為4KB頁(yè)表項(xiàng)大小為4B……頁(yè)表內(nèi)存空間k0塊號(hào)b0b1bp外部頁(yè)表頁(yè)表的頁(yè)號(hào)塊號(hào)c40七.兩級(jí)和多級(jí)頁(yè)表2.邏輯地址結(jié)構(gòu)頁(yè)號(hào)P頁(yè)內(nèi)地址d3112110頁(yè)內(nèi)地址d外部頁(yè)號(hào)P1外部頁(yè)內(nèi)地址P231222112110CPU給出:32位線性地址進(jìn)程地址空間分頁(yè):進(jìn)程頁(yè)表分頁(yè):設(shè):邏輯地址為32位,頁(yè)大小為4KB,每個(gè)頁(yè)表項(xiàng)占4B七.兩級(jí)和多級(jí)頁(yè)表2.邏輯地址結(jié)構(gòu)頁(yè)號(hào)P頁(yè)內(nèi)地址d311241頁(yè)表七.兩級(jí)和多級(jí)頁(yè)表表項(xiàng)序號(hào)

塊號(hào)

……b00pbp外部頁(yè)表表項(xiàng)序號(hào)塊號(hào)

0C0

p1Cp1……bp內(nèi)存空間塊號(hào)Cp1bpp進(jìn)程0頁(yè)號(hào)…LAp10頁(yè)表頁(yè)序號(hào)01p2bp外部頁(yè)號(hào)P1外部頁(yè)內(nèi)地址P231222112110頁(yè)內(nèi)地址d邏輯地址LA

C0

Cp1…10231024………第p1個(gè)頁(yè)表頁(yè)表項(xiàng)序號(hào)………1………1邏輯地址04K4K-1………頁(yè)表七.兩級(jí)和多級(jí)頁(yè)表表項(xiàng)序號(hào)塊號(hào)……b00pb42七.兩級(jí)和多級(jí)頁(yè)表:3.地址變換過程:外部頁(yè)表外部頁(yè)表寄存器物理地址外部頁(yè)號(hào)P1外部頁(yè)內(nèi)地址P2頁(yè)內(nèi)地址d…………頁(yè)表分頁(yè)塊號(hào)塊內(nèi)地址外部塊號(hào)頁(yè)號(hào)塊號(hào)頁(yè)號(hào)外部頁(yè)表始址、長(zhǎng)度七.兩級(jí)和多級(jí)頁(yè)表:3.地址變換過程:外部頁(yè)表外部頁(yè)表物理43七.兩級(jí)和多級(jí)頁(yè)表地址轉(zhuǎn)換外部頁(yè)號(hào)塊號(hào)01122435外部頁(yè)表10物理地址外部頁(yè)號(hào)P1外部頁(yè)內(nèi)地址P2頁(yè)內(nèi)地址d塊號(hào)塊內(nèi)地址內(nèi)存5#塊(頁(yè)表3#分頁(yè))外部頁(yè)表寄存器00000000110000000001000000001010頁(yè)號(hào)塊號(hào)307215307316……409580016外部頁(yè)表始址長(zhǎng)度七.兩級(jí)和多級(jí)頁(yè)表地址轉(zhuǎn)換外部頁(yè)號(hào)塊號(hào)01122435外部444.4基本分頁(yè)存儲(chǔ)管理方式基本分頁(yè)總結(jié)優(yōu)點(diǎn):存在頁(yè)內(nèi)碎片,但碎片相對(duì)較小,內(nèi)存利用率較高實(shí)現(xiàn)了離散分配,消除了程序移動(dòng);缺點(diǎn):需要專門的硬件支持,尤其“快表”;頁(yè)面共享實(shí)現(xiàn)困難,不支持動(dòng)態(tài)鏈接。4.4基本分頁(yè)存儲(chǔ)管理方式基本分頁(yè)總結(jié)454.5基本分段存儲(chǔ)管理方式一.分段存儲(chǔ)管理方式的引入

主要是為了滿足用戶和程序員的下述需要:(1)方便編程(2)方便信息共享與信息保護(hù)(3)便于動(dòng)態(tài)鏈接(4)便于動(dòng)態(tài)增長(zhǎng)mainf1data4.5基本分段存儲(chǔ)管理方式一.分段存儲(chǔ)管理方式的引入ma46內(nèi)存4.5基本分段存儲(chǔ)管理方式二.分段系統(tǒng)的基本原理1.作業(yè)分段由編程人員或編譯器將程序按信息的邏輯含義分為若干段:每個(gè)段有段名(段號(hào));每個(gè)段長(zhǎng)度可以不同;每個(gè)段在內(nèi)存中連續(xù)存放,但段與段之間不必相鄰。code(0)data(1)stack(2)代碼數(shù)據(jù)堆棧內(nèi)存4.5基本分段存儲(chǔ)管理方式二.分段系統(tǒng)的基本原理1.作47二.分段系統(tǒng)的基本原理

2.邏輯地址結(jié)構(gòu)stack(2)code(0)data(1)3k-108k-10015k-1段號(hào)段內(nèi)地址二維的邏輯地址1000moveax,(1:500)500-150mov指令的地址:0:1000操作數(shù)的地址:1:500二.分段系統(tǒng)的基本原理stack(2)code(0)dat48二.分段系統(tǒng)的基本原理(1)每個(gè)段在段表中占一個(gè)表項(xiàng);(2)記錄段在內(nèi)存的基址、段長(zhǎng)、存取權(quán)限等信息。第1段第2段第0段第1段第2段20k50k65k內(nèi)存空間段表段號(hào)段長(zhǎng)段基址015k20k17k65k23k50k

3.段表第0段進(jìn)程空間段號(hào)段長(zhǎng)段基址

二.分段系統(tǒng)的基本原理(1)每個(gè)段在段表中占一個(gè)表項(xiàng);第1段494.5基本分段存儲(chǔ)管理方式三.地址變換機(jī)構(gòu)段表寄存器存放段表的起始地址和段表長(zhǎng)度;越界檢查邏輯地址的段號(hào)與段表長(zhǎng)度比較;段內(nèi)地址與段表中保存的段長(zhǎng)比較。4.5基本分段存儲(chǔ)管理方式三.地址變換機(jī)構(gòu)504.5基本分段存儲(chǔ)管理方式段表始址段表長(zhǎng)度(3)段表寄存器>段號(hào)1段內(nèi)地址500邏輯地址越界中斷段表基址段長(zhǎng)50K3k65K7k20K15k210段號(hào)>67060物理地址內(nèi)存4.5基本分段存儲(chǔ)管理方式段表始址段表長(zhǎng)度(3)段表寄存器51假如一個(gè)作業(yè)的段表如下。分別說明下面指令執(zhí)行時(shí),地址轉(zhuǎn)換的情況。(1)STORER1,[0,70];(2)STORER1,[1,20](3)LOADR1,[3,100];(4)JMP[2,100]段號(hào)內(nèi)存始址段長(zhǎng)存取控制0500100RW1100030R23000

200E3800080

R4500040RW:可寫;R:可讀;E:可執(zhí)行。(1)[0,70]→500+70=570(2)

STORER1,[1,20]:存取控制不符,硬件將產(chǎn)生保護(hù)性中斷信號(hào)。(3)[3,100]:段內(nèi)地址超過了段長(zhǎng),產(chǎn)生越界中斷信號(hào)。(4)[2,100]→3000+100=3100假如一個(gè)作業(yè)的段表如下。分別說明下面指令執(zhí)行時(shí),地址轉(zhuǎn)換的情52四.分段與分頁(yè)的區(qū)別

(1)頁(yè)是信息的物理單位,段是信息的邏輯單位;(2)頁(yè)的大小固定,段的大小可變;(3)分頁(yè)系統(tǒng)中的邏輯地址空間是一維的,分段系統(tǒng)中的是二維的。四.分段與分頁(yè)的區(qū)別

(1)頁(yè)是信息的物理單位,段是信息的邏53

五.段頁(yè)式存儲(chǔ)管理方式基本思想結(jié)合分頁(yè)和分段技術(shù),先分段后分頁(yè)分頁(yè):有效提高內(nèi)存利用率分段:很好的滿足用戶需求原理對(duì)用戶作業(yè)先分段,各段再分頁(yè);對(duì)內(nèi)存按頁(yè)大小分成若干物理塊/頁(yè)框。地址結(jié)構(gòu)與地址變換二維的邏輯地址(段號(hào)、段內(nèi)地址)段內(nèi)地址可進(jìn)一步劃分為段內(nèi)頁(yè)號(hào),頁(yè)內(nèi)地址每個(gè)進(jìn)程一張段表和若干張頁(yè)表4.5基本分段存儲(chǔ)管理方式五.段頁(yè)式存儲(chǔ)管理方式4.5基本分段存儲(chǔ)管理方式544.5基本分段存儲(chǔ)管理方式五.段頁(yè)式存儲(chǔ)管理方式

1.作業(yè)分段:按信息的邏輯含義進(jìn)行,每個(gè)段有段名。2.段內(nèi)分頁(yè)3k-10stack(2)8k-10data(1)015k-1Main(0)00132104.5基本分段存儲(chǔ)管理方式五.段頁(yè)式存儲(chǔ)管理方式2.段內(nèi)55五.段頁(yè)式存儲(chǔ)管理方式3210Main(0段)015K-1100008K12K-11000001180840950段2#頁(yè)3.地址結(jié)構(gòu)邏輯地址(0,10000)010000021808五.段頁(yè)式存儲(chǔ)管理方式3210Main(0段)015K-11564.5基本分段存儲(chǔ)管理方式五.段頁(yè)式存儲(chǔ)管理方式

二維地址結(jié)構(gòu)3.地址結(jié)構(gòu)段號(hào)頁(yè)內(nèi)地址0151631段內(nèi)頁(yè)號(hào)1211段號(hào)段內(nèi)地址0151631段內(nèi)分頁(yè)4.5基本分段存儲(chǔ)管理方式五.段頁(yè)式存儲(chǔ)管理方式二維地址57五.段頁(yè)式存儲(chǔ)管理方式:

4.段表及頁(yè)表進(jìn)程地址空間111901段頁(yè)表3段頁(yè)表12003k-10stack(2)頁(yè)號(hào)0123015k-1Main(0)108k-10data(1)0段頁(yè)表622110塊號(hào)頁(yè)號(hào)83段表段號(hào)頁(yè)表長(zhǎng)度頁(yè)表始址012032M…0段0頁(yè)0段1頁(yè)1段1頁(yè)0段3頁(yè)0段2頁(yè)1段0頁(yè)2段0頁(yè)8192塊號(hào)012345678910111213內(nèi)存空間421五.段頁(yè)式存儲(chǔ)管理方式:

4.段表及頁(yè)表進(jìn)程地址空間11158五.段頁(yè)式存儲(chǔ)管理方式

5.地址轉(zhuǎn)換機(jī)構(gòu)段表始址段表長(zhǎng)度段表寄存器邏輯地址(0,10000)頁(yè)號(hào)P頁(yè)內(nèi)地址段號(hào)S>塊號(hào)塊內(nèi)地址物理地址越界中斷02180818080段頁(yè)表211062塊號(hào)頁(yè)號(hào)83段表段號(hào)頁(yè)表長(zhǎng)度頁(yè)表始址0412216內(nèi)存(26384)訪問一個(gè)數(shù)據(jù)需3次訪問內(nèi)存。五.段頁(yè)式存儲(chǔ)管理方式

5.地址轉(zhuǎn)換機(jī)構(gòu)段表始址段表59五.段頁(yè)式存儲(chǔ)管理方式

5.地址轉(zhuǎn)換機(jī)構(gòu)段表始址段表長(zhǎng)度段表寄存器邏輯地址(0,10000)頁(yè)號(hào)P頁(yè)內(nèi)地址段號(hào)S>塊號(hào)塊內(nèi)地址物理地址越界中斷02180818080段頁(yè)表211062塊號(hào)頁(yè)號(hào)83段表段號(hào)頁(yè)表長(zhǎng)度頁(yè)表始址0412216輸入寄存器快表段號(hào)頁(yè)號(hào)塊號(hào)026038109五.段頁(yè)式存儲(chǔ)管理方式

5.地址轉(zhuǎn)換機(jī)構(gòu)段表始址段表60五、基本分段存儲(chǔ)管理方式段頁(yè)式存儲(chǔ)管理的優(yōu)缺點(diǎn)同時(shí)具備分段和分頁(yè)管理的優(yōu)點(diǎn):分散存儲(chǔ),內(nèi)存利用率較高;便于代碼或數(shù)據(jù)共享,支持動(dòng)態(tài)鏈接等。訪問效率下降:一次訪問轉(zhuǎn)換成了三次訪問。五、基本分段存儲(chǔ)管理方式段頁(yè)式存儲(chǔ)管理的優(yōu)缺點(diǎn)61六.DOS的內(nèi)存管理地址線為20根,即物理地址為20位;內(nèi)存空間不超過1M;字長(zhǎng)為16位;分段存儲(chǔ)管理方式:每段長(zhǎng)度不超過216B;段表用寄存器的方式來實(shí)現(xiàn):CS——代碼段內(nèi)存基址DS——數(shù)據(jù)段內(nèi)存基址SS——堆棧段內(nèi)存基址DOS規(guī)定:段在內(nèi)存的起始地址的低4位必須為0。內(nèi)存datastackcode代碼數(shù)據(jù)堆棧的高16位的高16位的高16位六.DOS的內(nèi)存管理地址線為20根,即物理地址為20位;內(nèi)存62六.DOS的內(nèi)存管理二維的邏輯地址:seg:off邏輯地址seg×24+off物理地址六.DOS的內(nèi)存管理二維的邏輯地址:63‘A’六.DOS的內(nèi)存管理DOS系統(tǒng),C語言中地址的兩種表達(dá)方式:指針:如char*p;用兩個(gè)無符號(hào)整數(shù)seg:off分別表示段內(nèi)存基址的高16位,和段內(nèi)偏移:如0X100:0X20TurboC中兩種方式可以互相轉(zhuǎn)化:p=MK_FP(seg,off);seg=FP_SEG(p);off=FP_OFF(p).data00X20‘A’內(nèi)存0X1000①p0X1020charc=‘A’;char*p;p=&c;c②0X100:0X20‘A’六.DOS的內(nèi)存管理DOS系統(tǒng),C語言中地址的兩種表達(dá)64七、X86保護(hù)模式下的三種地址邏輯地址段標(biāo)識(shí)符(16b)和偏移量(32b)

如:CS:EIP;DS:EDI等線性地址一個(gè)32位的無符號(hào)整數(shù),可以用來表示高達(dá)4GB的地址物理地址內(nèi)存地址,也是32位的

七、X86保護(hù)模式下的三種地址邏輯地址段標(biāo)識(shí)符(165邏輯地址線性地址物理地址如果不分頁(yè),那么線性地址就是物理地址段地址轉(zhuǎn)換頁(yè)地址轉(zhuǎn)換邏輯地址線性地址661.段地址轉(zhuǎn)換每個(gè)進(jìn)程的代碼段和數(shù)據(jù)段均存放在自己的局部空間中,這部分信息通常不允許他人訪問,這樣可防止一個(gè)進(jìn)程破壞另一個(gè)進(jìn)程的信息。也有一些段允許被多個(gè)進(jìn)程共享訪問(比如OS中的某些資源,像中斷處理程序等),稱它們?yōu)槿侄巍?.段地址轉(zhuǎn)換每個(gè)進(jìn)程的代碼段和數(shù)據(jù)段均存放在自己的局部空間67每個(gè)段必須用一個(gè)段描述符(8B)來描述,段描述符中有段在內(nèi)存的基地址、段長(zhǎng)度、段的特權(quán)級(jí)別和訪問權(quán)限等信息。段描述符被存放在全局描述符表GDT或局部描述符表LDT中。整個(gè)系統(tǒng)只定義一個(gè)GDT,其中存放有允許多個(gè)進(jìn)程共同訪問的那些段的描述符。每個(gè)進(jìn)程的局部空間的段的所有段描述符集中存放在一張表中,這張表為該進(jìn)程的局部描述符表(LDT),也就是進(jìn)程的段表。每個(gè)段必須用一個(gè)段描述符(8B)來描述,段描述符中有段在內(nèi)存68

內(nèi)存GDT的起始地址和長(zhǎng)度由CPU的寄存器gdtr給出:4716150基址限長(zhǎng)段描述符…………GDTGDTR內(nèi)存GDT的起始地址和長(zhǎng)度由CPU的寄存器gdtr給出:69INDEX01數(shù)據(jù)段代碼段進(jìn)程P數(shù)據(jù)段描述符代碼段描述符進(jìn)程P的LDTP的LDT描述符GDTINDEX000LDTR15

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論