![操作系統(tǒng)課程設(shè)計三種存儲管理方式的地址換算過程_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/29/bdf76c70-f5f8-419e-9fac-a2923d876e2a/bdf76c70-f5f8-419e-9fac-a2923d876e2a1.gif)
![操作系統(tǒng)課程設(shè)計三種存儲管理方式的地址換算過程_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/29/bdf76c70-f5f8-419e-9fac-a2923d876e2a/bdf76c70-f5f8-419e-9fac-a2923d876e2a2.gif)
![操作系統(tǒng)課程設(shè)計三種存儲管理方式的地址換算過程_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/29/bdf76c70-f5f8-419e-9fac-a2923d876e2a/bdf76c70-f5f8-419e-9fac-a2923d876e2a3.gif)
![操作系統(tǒng)課程設(shè)計三種存儲管理方式的地址換算過程_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/29/bdf76c70-f5f8-419e-9fac-a2923d876e2a/bdf76c70-f5f8-419e-9fac-a2923d876e2a4.gif)
![操作系統(tǒng)課程設(shè)計三種存儲管理方式的地址換算過程_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/29/bdf76c70-f5f8-419e-9fac-a2923d876e2a/bdf76c70-f5f8-419e-9fac-a2923d876e2a5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、西 安 工 業(yè) 大 學(xué)信息與計算科學(xué)09級操作系統(tǒng)實驗課程設(shè)計報告題 目:三種存儲管理方式的地址換算過程 班 級: 學(xué) 號: 姓 名: 時 間: 一 任務(wù):編程演示三種存儲管理方式的地址換算過程,分別是:分頁式地址換算,分段式地址換算和段頁式地址換算。二思想:為了能將用戶地址空間中的邏輯地址變換為內(nèi)存空間中的物理地址,在系統(tǒng)中必須設(shè)置地址變換機構(gòu)。該機構(gòu)的基本任務(wù)是實現(xiàn)從邏輯地址到物理地址的轉(zhuǎn)換。由于頁內(nèi)地址和物理地址是一一對應(yīng)的,因此,地址變換機構(gòu)的任務(wù)實際上只是將邏輯地址中的頁號,轉(zhuǎn)換內(nèi)存中的物理塊號。又因為頁面映射表的作用就是用于實現(xiàn)從頁號到物理塊號的變換,因此,分頁式地址變換任務(wù)是借助
2、于頁表來完成的。在分段式存儲管理系統(tǒng)中,為每個分段分派一個連續(xù)的分區(qū),而進程中的各個段可以離散地移入內(nèi)存中不同的分區(qū)中。為使程序能正常運行,亦即,能從物理內(nèi)存中找出每個邏輯段所對應(yīng)的位置,在系統(tǒng)中為每個進程建立一張“段表”。每個段在表中占有一個表項,其中記錄了該段在內(nèi)存中的起始地址和段的長度。分頁和分段存儲管理方式都各有優(yōu)缺點。分頁系統(tǒng)能有效地提高內(nèi)存利用率,而分段系統(tǒng)則能很好地滿足用戶需要。如果能對兩種存儲管理方式“各取所長”,則可將兩者結(jié)合成一種新的存儲管理方式系統(tǒng)。這種新系統(tǒng)既具有分段系統(tǒng)的便于實現(xiàn),分段可共享,易于保護,可動態(tài)鏈接等一系列優(yōu)點,又能像分頁系統(tǒng)那樣很好地解決內(nèi)存的外部碎片
3、問題,以及可為各個分段離散地分配內(nèi)存等問題。把這種結(jié)合起來形成的新系統(tǒng)稱為“段頁式系統(tǒng)”。三目的:每種地址換算過程的目的都是把用戶地址空間中的邏輯地址變換為內(nèi)存空間中的物理地址。四方案:分頁式:當(dāng)進程要訪問某個邏輯地址中的數(shù)據(jù)時,分頁地址變換機構(gòu)會自動地將有效地址的頁號和頁內(nèi)地址兩部分,再以頁號為索引去檢索頁表。查找操作由硬件執(zhí)行,在執(zhí)行檢索之前,先將頁號與頁表長度進行比較,如果頁號大于或等于頁表長度,則表示本次所訪問的地址已超越進程的地址空間。于是,這一錯誤將被系統(tǒng)發(fā)現(xiàn)并產(chǎn)生一地址越界中斷。若未出現(xiàn)越界錯誤,則將頁表始址與頁號和頁表項長度的乘積相加,便得到該表項在頁表中的位置,于是可從中得到
4、該頁的物理塊號,將之裝入物理地址寄存器中。與此同時,再將有效地址寄存器中的頁內(nèi)地址送入物理地址寄存器的塊內(nèi)地址字段中。這樣變完成了從邏輯地址到物理地址的變換。分段式:為了實現(xiàn)從進程的邏輯地址到物理地址的變換功能,在系統(tǒng)中設(shè)置了段表寄存器,用來存放段表始址和段表長度tl。在進行地址變換時,系統(tǒng)將邏輯地址中的段號與段表長度tl進行比較。若s>tl,表示段號太大,是訪問越界,于是產(chǎn)生越界中斷信號;若未越界,則根據(jù)段表的始址和該段的段號,計算出該段對應(yīng)段表項的位置,從中讀出該段在內(nèi)存中的起始地址,然后,再檢查段內(nèi)地址d是否超過該段的段長sl。若超過,即d>sl,同樣發(fā)出越界中斷信號;若未越
5、界,則將該段的基址與段內(nèi)地址d相加,即可得到要訪問的內(nèi)存物理地址。段頁式:在段頁式系統(tǒng)中,為了便于實現(xiàn)地址變換,須配置一個段表寄存器,其中存放段表始址和段表長tl。進行地址變換時,首先利用段號s,將它與段表長tl進行比較。若s<tl,表示未越界,于是利用段表始址和段號來求出該段所對應(yīng)的段表項在段表中的位置,從中得到該段的頁表始址,并利用邏輯地址中的段內(nèi)頁號p來獲得對應(yīng)頁的頁表項位置,從中讀出該頁所在的物理塊號b,再利用塊號b和頁內(nèi)地址來構(gòu)成物理地址。五框圖:分頁式:分段式:段頁式:六運行環(huán)境在實現(xiàn)地址轉(zhuǎn)換的程序?qū)崿F(xiàn)時,運用了eclipse來實現(xiàn),因為對java程序的編寫稍微熟悉點,可以很
6、好的編寫及調(diào)試。程序很容易看懂,輸入條件在后邊備注。七程序及運行結(jié)果import java.util.*;class ya void print()system.out.println("*"); int ye()int b;int result = 0;scanner s=new scanner(system.in);system.out.println("請輸入頁表長度:");int length=s.nextint(); /定義頁表長度,并從鍵盤輸入inta =new intlength; /定義一個數(shù)組,用來存放頁號所在的塊號system.out
7、.println("請按順序輸入頁號所對應(yīng)的塊號");for(int i=0;i<length;i+)ai=s.nextint();system.out.println("請輸入頁面大小:");int l=s.nextint();system.out.println("請輸入頁號:");int i= s.nextint(); /從鍵盤輸入頁號system.out.println("請輸入頁內(nèi)地址:");int d =s.nextint(); /從鍵盤輸入頁內(nèi)地址if(i>=length)system.o
8、ut.println("產(chǎn)生越界中斷");else b=ai; result=b*l+d;/system.out.println("物理地址為:"+result);return result; int duan()int address=0;int a=new int1010;scanner s=new scanner(system.in);system.out.println("請輸入段表長度:");int length=s.nextint();system.out.println("請輸入段號所對應(yīng)的段長和基址:&quo
9、t;);for(int i=0;i<length;i+)for(int j=0;j<2;j+)aij=s.nextint(); system.out.println("請輸入段號:");int s=s.nextint();system.out.println("請輸入位移量:");int w=s.nextint();if(s>=length)system.out.println("產(chǎn)生越界中斷");else if (w>=as0)system.out.println("產(chǎn)生越界中斷"); e
10、lseaddress=as1+w;return address;/system.out.println("轉(zhuǎn)換后的物理地址為:"+address); void dy() int l=1024;int result=0;scanner s=new scanner(system.in);system.out.println("請輸入段表長度:");int length=s.nextint();system.out.println("請輸入段號:");int s=s.nextint();system.out.println("請輸
11、入頁號:");int p=s.nextint(); system.out.println("請輸入頁內(nèi)地址:");int d=s.nextint();inta=3,600,2,1200,4,2300,4,3200;intb=3,4,9,7;if(s>=length)system.out.println("段超長,越界中斷");else if(p>=ap0)system.out.println("頁超長,越界中斷"); else result=bp*l+d; system.out.println("轉(zhuǎn)換后
12、的物理地址為:"+result); public class hihihi public static void main(string args)ya r= new ya();r.print();system.out.println("若選擇分頁方式地址換算方法請輸入1");system.out.println("若選擇分段方式地址換算方法請輸入2");system.out.println("若選擇段頁式地址換算方法請輸入3");r.print();scanner s=new scanner(system.in);int
13、i=s.nextint();switch(i)case 1:system.out.println("轉(zhuǎn)換后的物理地址為:"+r.ye();break;case 2:system.out.println("轉(zhuǎn)換后的物理地址為:"+r.duan();break;case 3:r.dy();運行結(jié)果:八程序改進:發(fā)現(xiàn)程序中有以下問題:1.上述程序中的段表和頁表是直接從鍵盤輸入,我們可以對程序進行改進,把段表和頁表在程序中顯示出來,這樣程序的輸入就變得簡單,并容易理解。段表和頁表確定后,比較段號和段表長度時,段表長度就是固定的,就不需要再設(shè)置段表長度變量。還有,
14、在段頁式中,頁內(nèi)始址沒有實際用處,所以可以不用輸入。2.第一個分頁式中,給定條件應(yīng)該是邏輯地址,在程序中對邏輯地址換算成頁號和頁內(nèi)地址,而不用直接輸入頁號和頁內(nèi)地址。九改進后的程序和運行結(jié)果:import java.util.*;class ya void print() system.out.println("*");int ye() int b;int result = 0;inta=3,4,9,7;scanner s = new scanner(system.in);system.out.println("請輸入頁面大?。?quot;);int l = s.
15、nextint(); /從鍵盤輸入頁面大小system.out.println("請輸入邏輯地址:");int r=s.nextint();int i,d;i=(int)(r/l);d=r%l;if (i >= 4) system.out.println("產(chǎn)生越界中斷"); else b = ai;result = b * l + d;return result;int duan() int address = 0;int a=1024,6144,600,4096,500,8192,200,9200;scanner s = new scanner
16、(system.in);system.out.println("請輸入段號:");int s = s.nextint();system.out.println("請輸入位移量:");int w = s.nextint();if (s >= 4) system.out.println("產(chǎn)生越界中斷"); else if (w >= as0) system.out.println("產(chǎn)生越界中斷"); else address = as1 + w;return address;void dy() int
17、l = 1024;int result = 0;inta =3,2,4,4;int b = 3,4,9,2,4,5,4,2,3,2,6,5,4;scanner s = new scanner(system.in);system.out.println("請輸入段號:");int s = s.nextint();if (s >= 4) system.out.println("段超長,越界中斷");system.out.println("請輸入頁號:");int p = s.nextint();tryif (p >= ap)
18、catch(exception e)finallysystem.out.println("頁超長,越界中斷");system.out.println("請輸入頁內(nèi)地址:");int d = s.nextint();result = bsp * l + d;system.out.println("轉(zhuǎn)換后的物理地址為:" + result);public class hihihi public static void main(string args) ya r = new ya();r.print();system.out.printl
19、n("若選擇分頁方式地址換算方法請輸入1");system.out.println("若選擇分段方式地址換算方法請輸入2");system.out.println("若選擇段頁式地址換算方法請輸入3");r.print();scanner s = new scanner(system.in);int i = s.nextint();switch (i) case 1:system.out.println("轉(zhuǎn)換后的物理地址為:" + r.ye();break;case 2:system.out.println("轉(zhuǎn)換后的物理地址為:" + r.duan();break;case 3:r.dy();九總結(jié):對于上述三種存儲器管理方式,我們可以顯而易見的發(fā)現(xiàn)每種方式都有各自的優(yōu)缺點。對于分頁式地址變換,系統(tǒng)給機構(gòu)分配頁面大小,每頁的大小都是相同的,這里的“頁”只是存放信息的物理單位,并無完整的意義,不便于實現(xiàn)共享。并且在實際應(yīng)用中,頁的大小到底要大還是要小,也是很難去決定的。而在分段地址變換中,用戶把自己的作業(yè)按照邏輯關(guā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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2031年中國超五類接插軟線行業(yè)投資前景及策略咨詢研究報告
- 2025至2031年中國組織搗磷勻漿機行業(yè)投資前景及策略咨詢研究報告
- 2025至2031年中國玻璃瓶罐熱縮包裝機行業(yè)投資前景及策略咨詢研究報告
- 2025年水洗高嶺土項目可行性研究報告
- 2025年新型鋁屑粉碎機項目可行性研究報告
- 2025至2031年中國室外休閑用品行業(yè)投資前景及策略咨詢研究報告
- 2025年復(fù)合磷酸鋅項目可行性研究報告
- 2025至2031年中國丙烯基硫脲行業(yè)投資前景及策略咨詢研究報告
- 2025年便攜式磁探鉗項目可行性研究報告
- 2025年o型圈項目可行性研究報告
- 中國糖尿病防治指南(2024版)要點解讀
- Unit 1 Nice boys and girls【知識精研】-一年級英語下學(xué)期(人教PEP版一起)
- 《口腔科學(xué)緒論》課件
- 《消防檢查指導(dǎo)手冊》(2024版)
- 粵教粵科版三年級下冊科學(xué)全冊課時練(同步練習(xí))
- 小學(xué)開學(xué)第一課禁毒安全
- 《婚戀觀教育》課件
- 10以內(nèi)除法口算練習(xí)題100套(十)
- 中醫(yī)小兒常見皮膚病
- 《醫(yī)療機構(gòu)環(huán)境表面清潔與消毒管理規(guī)范》-華西醫(yī)院案例
- 第45屆世界技能大賽餐廳服務(wù)項目全國選拔賽技術(shù)工作文件
評論
0/150
提交評論