頁)式存儲(chǔ)管理實(shí)驗(yàn)報(bào)告_第1頁
頁)式存儲(chǔ)管理實(shí)驗(yàn)報(bào)告_第2頁
頁)式存儲(chǔ)管理實(shí)驗(yàn)報(bào)告_第3頁
頁)式存儲(chǔ)管理實(shí)驗(yàn)報(bào)告_第4頁
頁)式存儲(chǔ)管理實(shí)驗(yàn)報(bào)告_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上頁式存儲(chǔ)管理一、實(shí)驗(yàn)?zāi)康模赫莆辗猪撌酱鎯?chǔ)管理的基本概念和實(shí)現(xiàn)方法。要求編寫一個(gè)模擬的分頁式管理程序,并能對(duì)分頁式存儲(chǔ)的頁面置換算法進(jìn)行編寫和計(jì)算各個(gè)算法的缺頁率。二、程序設(shè)計(jì):首先創(chuàng)建頁面鏈指針數(shù)據(jù)結(jié)構(gòu),并設(shè)計(jì)頁面映像表,采用數(shù)組的方法給定頁面映像。申請(qǐng)緩沖區(qū),將一個(gè)進(jìn)程的邏輯地址空間劃分成若干個(gè)大小相等的部分,每一部分稱做頁面或頁。每頁都有一個(gè)編號(hào),叫做頁號(hào),頁號(hào)從0開始依次編排,如0,1,2。設(shè)置等大小的內(nèi)存塊。初始狀態(tài):將數(shù)據(jù)文件的第一個(gè)頁面裝入到該緩沖區(qū)的第0塊。設(shè)計(jì)頁面置換算法,這里分別采用最佳頁面置換算法OPT和最近最久未使用置換算法LRU,并分別計(jì)算它們

2、的缺頁率,以比較它們的優(yōu)劣。三、算法說明:執(zhí)行程序時(shí),當(dāng)主存沒有可用頁面時(shí),為了選擇淘汰主存中的哪一頁面,騰出1個(gè)空閑塊以便存放新調(diào)入的頁面。淘汰哪個(gè)頁面的首要問題是選擇何種置換算法。該程序采用人工的方法選擇,依置換策略選擇一個(gè)可置換的頁,并計(jì)算它們的缺頁率以便比較。/*分頁式管理實(shí)驗(yàn)-源程序*/#include"stdio.h"#define N 16#define num 5 /*進(jìn)程分配物理塊數(shù)目*/int AN=1,2,3,4,5,6,7,8,5,2,3,2,7,8,1,4; /*頁表映像*/typedef struct page int address; /*頁面

3、地址*/ struct page *next; page;struct page *head,*run,*rear;void jccreat() /*進(jìn)程分配物理塊*/ int i=1; page *p,*q; head=(page *)malloc(sizeof(page); p=head; for(i=1;i<=num;i+) q=(page *)malloc(sizeof(page); p->next=q; q->address=0; q->next=NULL; p=q; rear=p;int search(int n) page *p; int i=0; p=h

4、ead; while(p->next) if(p->next->address=n) printf("Get it at the page %dn",i+1); run=p; return 1; p=p->next; i+; return 0;void changeOPT(int n,int position) int i; int total=0; int flag=1; int distancenum; int MAX; int order=0; page *p,*q; p=head->next; q=head->next; for(

5、i=0;i<num;i+) distancei=100; i=0; while(p) if(p->address=0) flag=0; break; p=p->next; i+; if(!flag) p->address=n; printf("Change the page %dn",i+1); else while(q) for(i=position;i<N;i+) if(q->address=Ai) distancetotal=i-position; total+; q=q->next; MAX=distance0; for(i

6、=0;i<num;i+) if(distancei>MAX) MAX=distancei; order=i; printf("Change the page %dn",order+1); i=0; while(p) if(i=order) p->address=n; i+; p=p->next; void changeLRU(int n) int i=0; int flag=1; page *p,*delect; p=head->next; while(p) if(p->address=0) flag=0; p->address=n

7、; printf("Change the page %dn",i+1); break; p=p->next; i+; if(flag) delect=head->next; head->next=delect->next; printf("Delect from the head, and add new to the end.n"); delect->address=n; rear->next=delect; rear=delect; rear->next=NULL; float OPT() int i; in

8、t lose=0; float losef; float percent; for(i=0;i<N;i+) if(search(Ai)=0) lose+; changeOPT(Ai,i); losef=lose; percent=1-(losef/N); return percent;float LRU() int i; int lose=0; float losef; float percent; page *p; for(i=0;i<N;i+) if(search(Ai)=0) lose+; changeLRU(Ai); else p=run->next; run->

9、;next=p->next; rear->next=p; rear=p; rear->next=NULL; printf("Move it to end of queue.n"); losef=lose; percent=1-(losef/N); return percent; main() /*主函數(shù)部分*/float percent; int choice; printf("Select the arithmetic:n(1)OPTn(2)LRUnyour choice is:"); scanf("%d",&choice);/*選擇頁面置換算法*/ jccreat(); /*創(chuàng)建進(jìn)程*/ if(choice=1) /*采用OPT算法置換*/ percent=OPT(); /*計(jì)算OPT時(shí)的缺頁率*/ printf("The percent of OPT is %f",percent); else if(choice=2) /*采用LRU算法置換*/ percent=LRU(); /*計(jì)算LRU時(shí)的缺頁率*/ printf("The percent of OPT is %f",percent); else printf("Your

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論