分頁存儲管理實驗報告_第1頁
分頁存儲管理實驗報告_第2頁
分頁存儲管理實驗報告_第3頁
分頁存儲管理實驗報告_第4頁
分頁存儲管理實驗報告_第5頁
已閱讀5頁,還剩9頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

竭誠為您提供優(yōu)質(zhì)文檔/雙擊可除分頁存儲管理實驗報告

篇一:分頁存儲管理實驗報告

操作系統(tǒng)實驗三報告

一.實驗名稱:分頁存儲管理

二.實驗?zāi)康模毫私夥猪摯鎯芾碓趦?nèi)存空間分配的作用三.實驗內(nèi)容:

分頁存儲管理是將一個進程的邏輯地址空間分成若干個大小相等的片,稱為頁面或頁,并為各頁加以編號,相應(yīng)的,也把內(nèi)存空間分成與頁面相同大小的若干個存儲塊,稱為物理塊或頁框,同樣加以編號,在為進程分配內(nèi)存時,以塊為單位將進程的若干個也分別裝入到多個可以不相鄰的物理塊中。系統(tǒng)為每個進程建立了一張頁面映像表,簡稱頁表。位示圖是利用二進制的一位來表示磁盤中的一個盤塊的使用情況,這里用位示圖來表示內(nèi)存分配情況。

四.實驗代碼#includer->next=nuLL;#includereturnhead;#include}typedefintdatatype;voidprint(linklisthead)typedefstructnode{{linklistp;datatypepagenum,blocknum;p=head->next;structnode*next;pri(:分頁存儲管理實驗報告)ntf("\n該頁表為:");}linknode;printf("\n頁號塊號\n");typedeflinknode*linklist;while(p)linklistcreatlinklist(intn){{linklisthead,r,s;printf("%d%7d\n",p->pagenum,p->blocknumintx,y,i=0;);p=p->next;head=r=(linklist)malloc(sizeof(linknode));}

printf("\n");printf("開始創(chuàng)建頁表\n");

}printf("請分別輸入頁表的頁號及塊號

(-1表示空):\n");/*初始化位示圖,將值全置為零,0表示空printf("\n頁號塊號\n");閑狀態(tài)*/while(ipagenum=x;{s->blocknum=y;for(j=0;jnext=s;{r=s;g[i][j]=0;i++;}}}

g[n+1][0]=n*n;}

/*對作業(yè)的每一個頁進行分配對應(yīng)位示圖里的塊*/

linklistDis(linklisthead,intg[100][100],intif(p)

{i=p->blocknum/n;j=p->blocknum%n;g[i][j]=0;n,intn){linklistp;inti,j;p=head->next;if(np->blocknum=n*i+j;g[i][j]=1;g[n+1][0]--;

break;}}break;}p=p->next;}returnhead;}}

/*回收已經(jīng)完成的頁*/

linklistRecy(linklisthead,intg[100][100],intn,intn){inti,j;linklistp;p=head->next;while(p}

g[n+1][0]++;p->blocknum=-1;}returnhead;}

/*打印位示圖*/

voidprintstr(intg[100][100],intn){inti,j;printf("此時位示圖為:\n");for(i=0;ivoidmain(){intn,n,x,y;intgraph[100][100];linklisthead;printf("輸入位示圖的字長:");scanf("%d",printf("輸入作業(yè)的頁數(shù):");scanf("%d",head=creatlinklist(n);print(head);init(graph,n);

printstr(graph,n);printf("\n現(xiàn)在進行作業(yè)分配:");head=Dis(head,graph,n,n);print(head);

printstr(graph,n);printf("是否回收已完成的頁,“是”1,{printf("\n請輸入您要回收的頁號:");scanf("%d",head=Recy(head,graph,y,n);print(head);

“否”0:");scanf("%d",if(x)//判斷是否要回收

五.實驗截圖:

printstr(graph,n);}}

六.實驗心得:

通過這次實驗,了解到分頁存儲管理是將一個進程的邏輯地址空間分成若干個大小相等的片,稱為頁面或頁,并為各頁加以編號,相應(yīng)的,也把內(nèi)存空間分成與頁面相同大小的若干個存儲塊,稱為物理塊或頁框,同樣加以編號,在為進程分配內(nèi)存時,以塊為單位將進程的若干個也分別裝入到多個可以不相鄰的物理塊中。

篇二:請求分頁管理實驗報告

請求分頁存儲管理模擬實驗

1.實驗?zāi)康?/p>

請求頁式管理是一種常用的虛擬存儲管理技術(shù)。本設(shè)計通過請求頁式存儲管理中頁面置換算法模擬設(shè)計,了解虛擬存儲技術(shù)的特點,掌握請求頁式管理的頁面置換算法。

2.實驗內(nèi)容:

通過隨機數(shù)產(chǎn)生一個指令序列,共320條指令。指令的地址按下述原則生成:①50%的指令是順序執(zhí)行的;

②25%的指令是均勻分布在前地址部分;③25%的指令是均勻分布在后地址部分。具體的實施方法是:

①在[0,319]的指令地址之間隨機選取一起點m;②順序執(zhí)行一條指令;

③在前地址[0,m+1]中隨機選取一條指令并執(zhí)行,該指令的地址為m′;④順序執(zhí)行一條指令,其地址為m′+1;

⑤在后地址[m′+2,319]中隨機選取一條指令并執(zhí)行;⑥重復(fù)上述步驟②~⑤,直到執(zhí)行320次指令。將指令序列變換成為頁地址流設(shè):①頁面大小為1K;

②用戶內(nèi)存容量為4頁到32頁;③用戶虛存容量為32K。

在用戶虛存中,按每K存放10條指令排列虛存地址,即320條指令在虛存中的存放方式為:

第0條~第9條指令為第0頁(對應(yīng)虛存地址為[0,9]);第10條~第19條指令為第1頁(對應(yīng)虛存地址為[10,19]);┇┇

第310條~第319條指令為第31頁(對應(yīng)虛存地址為[310,319])。

按以上方式,用戶指令可組成32頁。

計算并輸出下述各種算法在不同內(nèi)存容量下的命中率。先進先出的算法(FIFo);最近最少使用算法(LRR);最少訪問頁面算法(LFR);最近最不經(jīng)常使用算法(nuR)。

3.實驗環(huán)境

每個學(xué)生一臺微機,需要安裝windows98或windows2000操作系統(tǒng),配備Vc、Vb、java或c編程語言,每個學(xué)生上機時間不少于24個小時。

(1)、分頁請求系統(tǒng)

是:

(1)請求分頁的頁表機制。它是在分頁的頁表機制上增加若干個項而形成的,作為請求分頁的數(shù)據(jù)結(jié)構(gòu);

(2)缺頁中斷機構(gòu)。每當(dāng)用戶程序要訪問的頁面尚未調(diào)入內(nèi)存時,便產(chǎn)生一缺頁中斷,以請求os將所缺的頁面調(diào)入內(nèi)存;

(3)地址變換機構(gòu)。它同樣是在分頁的地址變換機構(gòu)的基礎(chǔ)上發(fā)展形成的。

為了實現(xiàn)請求調(diào)頁還須得到os的支持,在實現(xiàn)請求調(diào)頁功能時,石油os將所需的頁從外存調(diào)入內(nèi)存;在實現(xiàn)置換功能時,也是由os將內(nèi)存的某些頁調(diào)至外存。

為了能實現(xiàn)請求調(diào)頁和置換功能,系統(tǒng)必須提供必要的硬件支持,其中,最重要的

4.實驗提示

提示:A.命中率=1-頁面失效次數(shù)/頁地址流長度

b.本實驗中,頁地址流長度為320,頁面失效次數(shù)為每次訪問相應(yīng)指令時,該指令所對應(yīng)的頁不在內(nèi)存的次數(shù)。

c.關(guān)于隨機數(shù)產(chǎn)生方法,采用Tc系統(tǒng)提供函數(shù)RAnD()和RAnDomIZe()來產(chǎn)生。

5.算法的理解

㈠FIFo頁面置換算法⑴原理簡述

①在分配內(nèi)存頁面數(shù)(Ap)小于進程頁面數(shù)(pp)時,當(dāng)然是最先運行的Ap個頁面放入內(nèi)存。

②這時有需要處理新的頁面,則將原來內(nèi)存中的Ap個頁面最先進入的調(diào)出(是以稱為FIFo),然后將新頁面放入。

③以后如果再有新頁面需要調(diào)入,則都按⑵的規(guī)則進行。

算法特點:所使用的內(nèi)存頁面構(gòu)成一個隊列。㈡LRu頁面置換算法⑴原理算述

①當(dāng)分配內(nèi)存頁面數(shù)(Ap)小于進程頁面數(shù)(pp)時,當(dāng)然是把最先執(zhí)行的Ap個頁面放入內(nèi)存。

②當(dāng)需要調(diào)頁面進入內(nèi)存,而當(dāng)前分配的內(nèi)存頁面全部不空閑時,選擇將其中最長時間沒有用到的那個頁面調(diào)出,以空出內(nèi)存來放置新調(diào)入的頁面(稱為LRu)。算法特點:每個頁面都有屬性來表示有多長時間未被cpu使用的信息。㈢LFu即最不經(jīng)常使用頁置換算法⑴原理簡述

要求在頁置換時置換引用計數(shù)最小的頁,因為經(jīng)常使用的頁應(yīng)該有一個較大的引用次數(shù)。但是有些頁在開始時使用次數(shù)很多,但以后就不再使用,這類頁將會長時間留在內(nèi)存中,因此可以將引用計數(shù)寄存器定時右移一位,形成指數(shù)衰減的平均使用次數(shù)。

LRu算法的硬件支持

把LRu算法作為頁面置換算法是比較好的,它對于各種類型的程序都能適用,但1.一個進程在內(nèi)存中的各個頁面各有多久時間未被進程訪問;

2.如何快速地知道哪一頁最近最久未使用的頁面。為此,須利用以下兩類支持硬件:實現(xiàn)起來有相當(dāng)大的難度,因為它要求系統(tǒng)具有較多的支持硬件。所要解決的問題有:

(1)寄存器

(2)棧

可利用一個特殊的棧來保存當(dāng)前使用的各個頁面的頁面號。每當(dāng)進程訪問某頁面

時,便將該頁面的頁面號從棧中移出,將它壓入棧頂。

算法特點:LFu算法并不能真正反映出頁面的使用情況,因為在每一時間間隔內(nèi),只是用寄存器的一位來記錄頁的使用情況,因此,訪問一次和訪問10000次是等效的。㈣nuR頁面置換算法⑴原理簡述

所謂“最近未使用”,首先是要對“近”作一個界定,比如cLeAR_peRIoD=50,便是指在cpu最近的50次進程頁面處理工作中,都沒有處理到的頁面。那么可能會有以下幾種情況:

①如果這樣的頁面只有一個,就將其換出,放入需要處理的新頁面。

②如果有這樣的頁面不止一個,就在這些頁面中任取一個換出(可以是下標(biāo)最小的,或者是下標(biāo)最大的),放入需要處理的頁面。

③如果沒有一個這樣的頁面,就隨意換出一個頁面(可以是下標(biāo)最小的,或者是下標(biāo)最大的)。

算法特點:有一個循環(huán)周期,每到達這個周期,所有頁面存放是否被cpu處理的信息的屬性均被置于初始態(tài)(沒有被訪問)。

6.實驗流程圖

7.實驗運行結(jié)果

篇三:分頁氏存儲管理實驗報告

分頁存儲管理實驗報告

姓名:何紹金

班級:

學(xué)號:20XX03870408

指導(dǎo)教師:張健

20XX年12月30日

一.實驗題目

編寫程序模擬操作系統(tǒng)的基本分頁存儲管理方式,進一步理解這種內(nèi)存分配方式的原理和特點,加深對理論知識的掌握。

二.實驗內(nèi)容

1.實驗要求

(1)編寫模擬操作系統(tǒng)對內(nèi)存分頁存儲管理方式的程序。

(2)程序能正確對主存空間進行“分配”和“回收”。

(3)能接受用戶的輸入,顯示內(nèi)存的分配情況,并有一定的容錯能力。

2.實現(xiàn)功能:

(1)內(nèi)存初始化

(2)程序應(yīng)該能接受用戶輸入的進程信息,并為之分配內(nèi)存,返回分配結(jié)果注意:此處考慮到不合法的輸入并進行相應(yīng)處理。

(3)程序能回收用戶指定的進程所占用的內(nèi)存空間

程序需要為每個進程分配一個唯一的進程號并給出詳細的提示信息。

(4)能直觀合理地顯示內(nèi)存分配情況

三.實驗流程圖

四.程序運行結(jié)果

運行程序得到如下結(jié)果:

五.實驗小結(jié)

這次實驗讓我清楚地認(rèn)識到分頁存儲管理的基本原理和實現(xiàn)流程,特別是對主存空間的分配與回收的深層次理解,在編制程序是只需使用順序的地址而不必去考慮如何去分頁,因為分頁存儲管理時作業(yè)的地址是連續(xù)的。更讓我體會了頁氏存儲管理方式的優(yōu)點就是沒有外部碎片,程序不必連續(xù)存放在內(nèi)存空間,而缺點是程序要全部裝入內(nèi)存。此外,還增強了動手編程和分析解決問題的能力。

附:程序源代碼

按流程圖編制的源代碼如下所示:

#include

#include

#definen100//共有100個內(nèi)存塊

intprocess[n][n+1];//存放每個進程的頁表

intblock[n];//內(nèi)存塊狀態(tài)標(biāo)志數(shù)組,0:空閑,1:使用

intblockcount;//記錄當(dāng)前內(nèi)存剩余空間

intprocesscount;//記錄當(dāng)前進程數(shù)

boolflag=true;

voidinit();

voidoutput();

boolcreateprocess();

boolendprocess();

voidinit()

{

inti,j;

//初始化內(nèi)存狀態(tài)標(biāo)志數(shù)組

for(i=0;iblock[i]=0;

for(i=0;iblock[rand()%(n-1)]=1;

blockcount=0;

for(i=0;iif(block[i]==0)

blockcount++;

//初始化存放進程的數(shù)組

for(i=0;iprocess[i][0]=0;

for(j=1;jprocess[i][j]=-1;

}

process

溫馨提示

  • 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

提交評論