操作系統(tǒng)課設(shè)——三種存儲(chǔ)管理規(guī)定方式的地址換算_第1頁(yè)
操作系統(tǒng)課設(shè)——三種存儲(chǔ)管理規(guī)定方式的地址換算_第2頁(yè)
操作系統(tǒng)課設(shè)——三種存儲(chǔ)管理規(guī)定方式的地址換算_第3頁(yè)
操作系統(tǒng)課設(shè)——三種存儲(chǔ)管理規(guī)定方式的地址換算_第4頁(yè)
操作系統(tǒng)課設(shè)——三種存儲(chǔ)管理規(guī)定方式的地址換算_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余8頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

1、題 目 三種存儲(chǔ)管理方式的地址換算 姓 名: 學(xué) 號(hào): 專 業(yè): 學(xué) 院: 指導(dǎo)教師: 姚若龍 2018年11月27日【目錄】摘要01引言02算法設(shè)計(jì)02程序分析04算法分析09調(diào)試結(jié)果11個(gè)人總結(jié)15參考文獻(xiàn)15摘要: 操作系統(tǒng)(Operating System,OS)是方便用戶、管理和控制計(jì)算機(jī)軟硬件資源的系統(tǒng)軟件(或程序集合)。從用戶角度看,操作系統(tǒng)可以看成是對(duì)計(jì)算機(jī)硬件的擴(kuò)充;從人機(jī)交互方式來(lái)看,操作系統(tǒng)是用戶與機(jī)器的接口;從計(jì)算機(jī)的系統(tǒng)結(jié)構(gòu)看,操作系統(tǒng)是一種層次、模塊結(jié)構(gòu)的程序集合,屬于有序分層法,是無(wú)序模塊的有序?qū)哟握{(diào)用。操作系統(tǒng)在設(shè)計(jì)方面體現(xiàn)了計(jì)算機(jī)技術(shù)和管理

2、技術(shù)的結(jié)合。操作系統(tǒng)是系統(tǒng)軟件的核心,、它控制程序的執(zhí)行和提供資源分配、調(diào)度、輸入/輸出控制和數(shù)據(jù)管理等任務(wù)。如DOS、UNIX、OS/2和Windows NT都是得到廣泛使用的操作的系統(tǒng)。  三種管理方式中,分頁(yè)系統(tǒng)能有效地提高內(nèi)存利用率,分段系統(tǒng)則能很好地滿足用戶需要,而段頁(yè)式系統(tǒng)則是把前兩種結(jié)合起來(lái)形成的系統(tǒng)。這種新系統(tǒng)既具有分段系統(tǒng)的便于實(shí)現(xiàn)、分段可共享、易于保護(hù)、可動(dòng)態(tài)鏈接等一系列優(yōu)點(diǎn),有能像分頁(yè)系統(tǒng)那樣很好地解決內(nèi)存的外部碎片問(wèn)題,以及可為各個(gè)分段離散地分配內(nèi)存等問(wèn)題。  關(guān)鍵字: 分頁(yè)方式,分段方式,段頁(yè)式方式,操作系統(tǒng)

3、。一.引言分頁(yè)存儲(chǔ)管理是將一個(gè)進(jìn)程的邏輯地址空間分成若干個(gè)大小相等的片,稱為頁(yè)面或頁(yè)。在分段存儲(chǔ)管理方式中,作業(yè)的地址空間被劃分為若干個(gè)段,每個(gè)段定義了一組邏輯信息。段的長(zhǎng)度由相應(yīng)的邏輯信息組的長(zhǎng)度決定,因而個(gè)段長(zhǎng)度不等。段頁(yè)式存儲(chǔ)管理方式是分段和分頁(yè)原理的結(jié)合,即先將用戶程序分成若干個(gè)段,再把每個(gè)段分成若干個(gè)頁(yè),并為每一個(gè)段賦予一個(gè)段名。三種存儲(chǔ)管理都有其相應(yīng)的段表、頁(yè)表和地址變換機(jī)構(gòu)。二三種存儲(chǔ)管理方式地址換算描述(1)分頁(yè)存儲(chǔ)管理方式在頁(yè)式存儲(chǔ)管理方式中地址結(jié)構(gòu)由兩部構(gòu)成,前一部分是頁(yè)號(hào),后一部分為頁(yè)內(nèi)地址w(位移量),如圖  為了實(shí)現(xiàn)從進(jìn)程的邏輯地址到物理地址的變換功能,在系

4、統(tǒng)中設(shè)置了頁(yè)表寄存器,用于存放頁(yè)表在內(nèi)存中的始址和頁(yè)表的長(zhǎng)度。當(dāng)進(jìn)程要訪問(wèn)某個(gè)邏輯地址中的數(shù)據(jù)時(shí),分頁(yè)地址變換機(jī)構(gòu)會(huì)自動(dòng)地將有效地址(相對(duì)地址)分為頁(yè)號(hào)和頁(yè)內(nèi)地址兩部分,再以頁(yè)號(hào)為索引去檢索頁(yè)表。查找操作由硬件執(zhí)行。在執(zhí)行檢索之前,先將頁(yè)號(hào)與頁(yè)表長(zhǎng)度進(jìn)行比較,如果頁(yè)號(hào)大于或等于頁(yè)表長(zhǎng)度,則表示本次所訪問(wèn)的地址已超越進(jìn)程的地址空間。于是,這一錯(cuò)誤將被系統(tǒng)發(fā)現(xiàn)并產(chǎn)生一地址越界中斷。若未出現(xiàn)越界錯(cuò)誤,則將頁(yè)表始址與頁(yè)號(hào)和頁(yè)表項(xiàng)長(zhǎng)度的乘積相加,便得到該表項(xiàng)在頁(yè)表中的位置,于是可從中得到該頁(yè)的物理塊號(hào),將之裝入物理地址寄存器中。與此同時(shí),再將有效地址寄存器中的頁(yè)內(nèi)地址送入物理地址寄存器的塊內(nèi)地址字段中。

5、這樣便完成了從邏輯地址到物理地址的變換。(2)分段存儲(chǔ)管理方式程序通過(guò)分段劃分為多個(gè)模塊,如代碼段、數(shù)據(jù)段、共享段:      可以分別編寫和編譯      可以針對(duì)不同類型的段采取不同的保護(hù)      可以按段為單位來(lái)進(jìn)行共享,包括通過(guò)動(dòng)態(tài)鏈接進(jìn)行代碼共享為了實(shí)現(xiàn)從進(jìn)程的邏輯地址到物理地址的變換功能,在系統(tǒng)中設(shè)置了段表寄存器,用于存放段表始址和段表長(zhǎng)度TL。在進(jìn)行地址變換時(shí),系統(tǒng)將邏輯地址中的段號(hào)與段表長(zhǎng)度TL進(jìn)行比較。若S>TL,表示段

6、號(hào)太大,是訪問(wèn)越界,于是產(chǎn)生越界中斷信號(hào);若未越界,則根據(jù)段表的始址和該段的段號(hào),計(jì)算出該段對(duì)應(yīng)段表項(xiàng)的位置,從中讀出該段在內(nèi)存的起始地址,然后,再檢查段內(nèi)地址d是否超過(guò)該段的段長(zhǎng)SL。若超過(guò),即d>SL,同樣發(fā)出越界中斷信號(hào);若未越界,則將該段的基址與段內(nèi)地址d相加,即可得到要訪問(wèn)的內(nèi)存物理地址。 (3)段頁(yè)存儲(chǔ)管理方式 在段頁(yè)式系統(tǒng)中,為了便于實(shí)現(xiàn)地址變換,需配置一個(gè)段表寄存器,其中存放段表始址和段表長(zhǎng)TL。進(jìn)行地址變換時(shí),首先利用段號(hào)S,將它與段表長(zhǎng)TL進(jìn)行比較。若S>TL,表示未越界,于是利用段表始址和段號(hào)來(lái)球出該段所對(duì)應(yīng)的段表項(xiàng)在段表中的位置,從中得到

7、該段的頁(yè)表址,并利用邏輯地址中的段內(nèi)頁(yè)號(hào)P來(lái)獲得對(duì)應(yīng)表的頁(yè)表項(xiàng)位置,從中讀出該頁(yè)所在的物理塊號(hào)b,再利用塊號(hào)b和頁(yè)內(nèi)地址來(lái)構(gòu)成物理地址。(4)段表、頁(yè)表、段表地址寄存器。為了進(jìn)行地址轉(zhuǎn)換,系統(tǒng)為每個(gè)作業(yè)建立一個(gè)段表,并且要為該作業(yè)段表中的每一個(gè)段建立一個(gè)頁(yè)表。系統(tǒng)中有一個(gè)段表地址寄存器來(lái)指出作業(yè)的段表起始地址和段表長(zhǎng)度。 三程序模塊int settable1(int n,int k);頁(yè)系統(tǒng)int page(int A,int L) int d,P,kd,i; int WD; int PT256; for(i=1;i<256;i+) PTi=rand() %512;段系統(tǒng) in

8、t Segment(int sn,int sd)int i,wd;for(i=0;i<255;i+)i=rand()%255;頁(yè)系統(tǒng)int SegPagt(int sn,int pn,int pd)int i,wd;=256;for(i=0;i<255;i+)i=i=rand()%26624;函數(shù) int main() int code; int pl,pa,sn,sd,pd,pn; 頁(yè)式地址換算n"); printf(" 2.分段式地址換算n"); printf(" 3.段頁(yè)式地址換算n"); printf("

9、 4.結(jié)束運(yùn)行nn"); printf("-n"); printf("請(qǐng)輸入您的選擇:"); scanf("%d",&code); switch(code) case 1: printf("注意:請(qǐng)演示設(shè)定頁(yè)表長(zhǎng)度小于n"); printf("請(qǐng)輸入換算的邏輯地址:n"); scanf("%d",&pa); printf("頁(yè)面大小(B):n");scanf("%d",&pl); page(pa,pl)

10、; break; case 2: printf("請(qǐng)演示設(shè)定段表長(zhǎng)度小于n"); printf("請(qǐng)輸入邏輯地址的段號(hào):n"); scanf("%d",&sn); printf("段內(nèi)地址:n"); scanf("%d",&sd); Segment(sn,sd); break; case 3: printf("預(yù)設(shè)定段表長(zhǎng)為,頁(yè)面大小為n"); printf("請(qǐng)輸入邏輯地址的段號(hào):n"); scanf("%d",&am

11、p;sn); printf("頁(yè)號(hào):n"); scanf("%d",&pn); printf("頁(yè)內(nèi)地址:n"); scanf("%d",&pd); SegPagt(sn,pn,pd); break; case 4:break; while (code<4);四三種存儲(chǔ)管理方式的地址變換機(jī)構(gòu)(1)分頁(yè)系統(tǒng)的地址變換機(jī)構(gòu)為了實(shí)現(xiàn)從進(jìn)程的邏輯地址到物理地址的變換功能,在系統(tǒng)中設(shè)置了頁(yè)表寄存器,用于存放頁(yè)表在內(nèi)存中的始址和頁(yè)表的長(zhǎng)度。當(dāng)進(jìn)程要訪問(wèn)某個(gè)邏輯地址中的數(shù)據(jù)時(shí),分頁(yè)地址變換機(jī)構(gòu)會(huì)自動(dòng)地將有效

12、地址(相對(duì)地址)分為頁(yè)號(hào)和頁(yè)內(nèi)地址兩部分,再以頁(yè)號(hào)為索引去檢索頁(yè)表。查找操作由硬件執(zhí)行。在執(zhí)行檢索之前,先將頁(yè)號(hào)與頁(yè)表長(zhǎng)度進(jìn)行比較,如果頁(yè)號(hào)大于或等于頁(yè)表長(zhǎng)度,則表示本次所訪問(wèn)的地址已超越進(jìn)程的地址空間。于是,這一錯(cuò)誤將被系統(tǒng)發(fā)現(xiàn)并產(chǎn)生一地址越界中斷。若未出現(xiàn)越界錯(cuò)誤,則將頁(yè)表始址與頁(yè)號(hào)和頁(yè)表項(xiàng)長(zhǎng)度的乘積相加,便得到該表項(xiàng)在頁(yè)表中的位置,于是可從中得到該頁(yè)的物理塊號(hào),將之裝入物理地址寄存器中。與此同時(shí),再將有效地址寄存器中的頁(yè)內(nèi)地址送入物理地址寄存器的塊內(nèi)地址字段中。這樣便完成了從邏輯地址到物理地址的變換。頁(yè)表始址頁(yè)表長(zhǎng)度>頁(yè)號(hào)(3)頁(yè)內(nèi)地址1b頁(yè)表物理地址邏輯地址L越界中斷頁(yè)表寄存器頁(yè)

13、號(hào)塊號(hào)0123(2)分段系統(tǒng)的地址變換機(jī)構(gòu)為了實(shí)現(xiàn)從進(jìn)程的邏輯地址到物理地址的變換功能,在系統(tǒng)中設(shè)置了段表寄存器,用于存放段表始址和段表長(zhǎng)度TL。在進(jìn)行地址變換時(shí),系統(tǒng)將邏輯地址中的段號(hào)與段表長(zhǎng)度TL進(jìn)行比較。1.若S>TL,表示段號(hào)太大,是訪問(wèn)越界,于是產(chǎn)生越界中斷信號(hào);2.若未越界,則根據(jù)段表的始址和該段的段號(hào),計(jì)算出該段對(duì)應(yīng)段表項(xiàng)的位置,從中讀出該段在內(nèi)存的起始地址,然后,再檢查段內(nèi)地址d是否超過(guò)該段的段長(zhǎng)SL。若超過(guò),即d>SL,同樣發(fā)出越界中斷信號(hào);3.若未越界,則將該段的基址與段內(nèi)地址d相加,即可得到要訪問(wèn)的內(nèi)存物理地址。段表始址段表長(zhǎng)度>2100越界有效地址段號(hào)

14、段長(zhǎng)基址0123物理地址(3) 段頁(yè)式系統(tǒng)中的地址變換機(jī)構(gòu)在段頁(yè)式系統(tǒng)中,為了便于實(shí)現(xiàn)地址變換,需配置一個(gè)段表寄存器,其中存放段表始址和段表長(zhǎng)TL。進(jìn)行地址變換時(shí),首先利用段號(hào)S,將它與段表長(zhǎng)TL進(jìn)行比較。若S>TL,表示未越界,于是利用段表始址和段號(hào)來(lái)球出該段所對(duì)應(yīng)的段表項(xiàng)在段表中的位置,從中得到該段的頁(yè)表始址,并利用邏輯地址中的段內(nèi)頁(yè)號(hào)P來(lái)獲得對(duì)應(yīng)表的頁(yè)表項(xiàng)位置,從中讀出該頁(yè)所在的物理塊號(hào)b,再利用塊號(hào)b和頁(yè)內(nèi)地址來(lái)構(gòu)成物理地址。段表始址段表長(zhǎng)度段表寄存器>段超長(zhǎng)頁(yè)號(hào)P段號(hào)S頁(yè)內(nèi)地址0123段表長(zhǎng)度頁(yè)表始址0123b塊號(hào)b塊內(nèi)地址頁(yè)表段表五.結(jié)果分析1)主菜單頁(yè)面 2

15、)頁(yè)式頁(yè)面選擇 1輸入:換算的邏輯地址:120 頁(yè)面大小:100輸出:頁(yè)號(hào)=1 頁(yè)內(nèi)地址=20塊號(hào)=41物理地址=4120 3)段式頁(yè)面 選擇 2輸入:換算的邏輯地址的段號(hào):230 段內(nèi)地址:180輸出:段首地址=68物理地址=248 4)段頁(yè)式頁(yè)面選擇 3輸入:邏輯地址的段號(hào):230 頁(yè)號(hào):5 頁(yè)內(nèi)地址:10輸出:頁(yè)表首地址=5447 塊號(hào)=166 物理地址=47953 六個(gè)人總結(jié) 為期一周的操作系統(tǒng)課程設(shè)計(jì)很快就結(jié)束了,做為每個(gè)學(xué)期末的一項(xiàng)必修課,課程設(shè)計(jì)的目的就是要讓我們能夠更加深刻的理解課堂上所學(xué)的知識(shí),并能夠?qū)⑺鼈儜?yīng)用到實(shí)踐中去,讓知識(shí)能為實(shí)踐服務(wù)。 這次操作系統(tǒng)的課程設(shè)計(jì),我是通過(guò)編程演示三種存儲(chǔ)管理方式的地址換算過(guò)程。通過(guò)這次課程設(shè)計(jì),加深了我對(duì)課堂上所學(xué)的三種存儲(chǔ)管理方式的地址換算的概念的理解,了解了操作系統(tǒng)的工作原理已經(jīng)平時(shí)遇到的一些狀況是怎么樣產(chǎn)生的,通過(guò)這次操作系統(tǒng)的課程設(shè)計(jì),另我學(xué)到了很多在課堂上學(xué)不到的知識(shí),以及動(dòng)手能力,這次課程設(shè)計(jì)老師不限開(kāi)發(fā)工具,因此也鍛煉了我們對(duì)新的開(kāi)發(fā)工具的掌握能力。對(duì)于我們計(jì)算機(jī)專業(yè)的學(xué)生來(lái)說(shuō),在軟件更新如此之快的今天,對(duì)新的開(kāi)發(fā)工具的快速掌握能力也是一項(xiàng)必不可少的能力。當(dāng)然,在這次課程設(shè)計(jì)中,也暴露出來(lái)了一些問(wèn)題,就是我對(duì)開(kāi)發(fā)工具的使用,雖然大學(xué)三年基本是用C編寫程序

溫馨提示

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