Linux操作系統(tǒng)實(shí)驗(yàn)報(bào)告存儲(chǔ)管理試驗(yàn)_第1頁
Linux操作系統(tǒng)實(shí)驗(yàn)報(bào)告存儲(chǔ)管理試驗(yàn)_第2頁
Linux操作系統(tǒng)實(shí)驗(yàn)報(bào)告存儲(chǔ)管理試驗(yàn)_第3頁
Linux操作系統(tǒng)實(shí)驗(yàn)報(bào)告存儲(chǔ)管理試驗(yàn)_第4頁
Linux操作系統(tǒng)實(shí)驗(yàn)報(bào)告存儲(chǔ)管理試驗(yàn)_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余6頁可下載查看

下載本文檔

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

文檔簡介

1、電子信息學(xué)院實(shí)驗(yàn)報(bào)告書題目:實(shí)驗(yàn)三存儲(chǔ)管理試驗(yàn)實(shí)驗(yàn)類別【驗(yàn)證】班級(jí):BX0907學(xué)號(hào):09姓名:吳沛儒評語:實(shí)驗(yàn)態(tài)度:認(rèn)真()一般()實(shí)驗(yàn)結(jié)果:正確()部分正確()實(shí)驗(yàn)理論:掌握()熟悉()操作技能:強(qiáng)()一般()實(shí)驗(yàn)報(bào)告:好()一般()成績:指導(dǎo)教師:胡靛批閱時(shí)間:課程名Linux操作系統(tǒng)實(shí)驗(yàn) 1、實(shí)驗(yàn)內(nèi)容或題目(1)模擬初始內(nèi)存頁面分配(數(shù)組、結(jié)構(gòu)體均可)(2)實(shí)現(xiàn) Buddyheap 算法(3)通過鍵盤輸入隨機(jī)產(chǎn)生申請和釋放操作請求:r8 代表申請 8 個(gè)頁面。釋放:f4 代表釋放 4 個(gè)頁面。(4)每個(gè)申請或釋放操作,都在屏幕上顯示操作前與操作后的內(nèi)存分配的對比圖(5)實(shí)驗(yàn)假設(shè)申請和釋

2、放的頁數(shù)都是 2 的整次幕。(1)建立工作集頁面模型。(2)利用隨機(jī)函數(shù)動(dòng)態(tài)生成進(jìn)程訪問頁面的序列號(hào)。(3)實(shí)現(xiàn) FIFO 頁面淘汰算法。(4)實(shí)現(xiàn)頁故障率反饋模型。2、實(shí)驗(yàn)?zāi)康呐c要求(1)用 C 語言是實(shí)現(xiàn)模擬 Linux 系統(tǒng)中連續(xù)內(nèi)存分配用到的伙伴對算法。(2)通過鏈表的形式輸出在內(nèi)存申請和釋放過程中內(nèi)存狀態(tài)的對比圖。(1)了解工作集模型的原理及其特點(diǎn)(2)實(shí)現(xiàn)頁故障率反饋模型。3、實(shí)驗(yàn)步驟與源程序1.Buddyheap 算法模擬源程序;#include#includetypedefstructblockintstart;intloc;structblock*next;structblo

3、ck*prior;intmaxsize=512;block*note;block*id10;voidprintmem()inti;for(i=9;i=0;i-)printf(%d-”,i);block*temp=(structblock*)malloc(sizeof(structblock);temp=idi-next;while(temp!=NULL)printf(%d(%s)(%d)-,temp-size,temp-loc=1?占用:空閑,temp-start);temp=temp-next;)printf(n);)voidinit()inti;for(i=0;iprior=idi;idi

4、-next=NULL;)note=(structblock*)malloc(sizeof(structblock);note-size=maxsize;note-start=0;note-loc=0;note-next=NULL;id9=(structblock*)malloc(sizeof(structblock);id9-next=note;id9-prior=id9;note-prior=id9;printmem();)intpower(intx,inty)intk=0,tmp=1;for(;knext;intflag=0,isFirst=0;isFirst+;if(flag=0)tem

5、pId=tempId+1;if(tempIdnext;intnextStart=first-start+first-size;intpreStart=first-start-first-size;intflag=0,isFirst=0;while(second!=NULL)if(second-start=nextStart|second-start=preStart)&second-loc=0)merger-size=(first-size)+(second-size);merger-loc=0;merger-start=(first-start)start)?(first-start

6、):(second-start);while(pend!=NULL)if(pend-loc=0)if(isFirst=0)idtempId-next=pend-next;elsepend-prior-next=pend-next;intsize=(pend-size)/2;intstart=pend-start;newu-size=size;newu-start=start;newf-start=start+size;newu-loc=0;newf-size=size;newf-loc=0;newf-prior=newu;newu-next=newf;newf-next=NULL;tempId

7、-;cend=idtempId;while(cend-next!=NULL)cend=cend-next;cend-next=newu;newu-prior=cend;flag=1;return1;elsepend=pend-next;return0;if(first-next!=NULL)first-next-prior=first-prior;)if(first-prior-prior)=first-prior)idtempId-next=first-next;elsefirst-prior-next=first-next;if(second-next!=NULL)second-next-

8、prior=second-prior;if(isFirst=0)idtempId-next=second-next;elsesecond-prior-next=second-next;tempId+;merger-next=idtempId-next;merger-prior=idtempId;if(idtempId-next!=NULL)idtempId-next-prior=merger;idtempId-next=merger;if(tempIdnext;isFirst+;return1;intfreeb(intsize)block*first=(structblock*)malloc(

9、sizeof(structblock);inttempId=root(2,size);first=idtempId-next;intflag=0;while(first!=NULL)if(first-loc=1)first-loc=0;flag=1;break;elsefirst=first-next;if(flag=1)merge(tempId,first);printmem();elseprintf(需要釋放的內(nèi)存塊不存在!n);return1;)intrequestb(intsize)block*temp=(structblock*)malloc(sizeof(structblock);

10、inttempId=root(2,size);intflag=0;temp=idtempId-next;while(temp!=NULL)if(temp-loc=0&temp-size=size)temp-loc=1;flag=1;printf(分配成功!n);printmem();return1;elsetemp=temp-next;if(flag=0)tempId+;if(tempId512(空閑)()-8-請輸入命令:(以空格相隔,示例:8)r12B分配成功19*B2256(空鬧)(Z56)-A7。1加(占用)伊)128(空鬧)(128卜6-瞿否認(rèn)續(xù)建1繼續(xù),日退出):1請輸入命

11、令;(以空格相隔,示例了8)r54分配成功1金jackietpjckie-laptop:文件(F)編輯E)查看(v推索循)理端露幫助(H)請輸入命令:(以空格相隔,示例訂8)f649-8受7H1Z8(占用)(G】Z8(占用)(”5)-1如(空閑)(384)*6-64(空鬧)(128)264(占用)(192)2-%1-柒否餐續(xù)乂工繼續(xù),。退出):1請輸入命令:(以空格相隔.示例:8)f649*8-7。1加(空鬧)(128)。12削占用)(13)4128(占用)(256)。128(空鬧)。84)。6-2-1-瞿否認(rèn)續(xù)建1繼續(xù),日退出):1請輸入命令;(以空格相隔,示例了8)fl282.頁故障率反饋

12、模型源程序;#include#include#include#defineMAX_WORKSET10#defineWINDOW_SIZE20intmempage=10;intprocArrayWINDOW_SIZE;intwinMAX_WORKSET2;doublemaxRate=0.8,minRate=0.2;doublecurRate;intcur_workset=3;intconflictCount=0;voidprint()curRate=(double)conflictCount/(double)WINDOW_SIZE;printf(缺頁故障率:g,故障率上限/下限:%g/%gn,c

13、urRate,maxRate,minRate);voidchangeArray()inti;for(i=0;iWINDOW_SIZE;i+)procArrayi=rand()%mempage;printf(進(jìn)程調(diào)用頁面序列:);for(i=0;iWINDOW_SIZE;i+)printf(%d|,procArrayi);printf(n);voidinit()inti,j;changeArray();for(i=0;iMAX_WORKSET;i+)wini0=-1;wini1=cur_workset;voidchangePage(intnumber)inti,flag=0;for(i=1;ic

14、ur_workset;i+)if(winflag1=wini1)flag=i;winflag0=procArraynumber;winflag1=1;conflictCount+;for(i=0;icur_workset;i+)if(i!=flag&wini1!=-1)wini1+;voidstep(intnumber)inti,hit=0;for(i=0;icur_workset;i+)if(procArraynumber=wini0)/number+;hit=1;break;)if(hit=0)changePage(number);)voidrun()inti;conflictCo

15、unt=0;changeArray();for(i=0;iWINDOW_SIZE;i+)step(i);)printf(沖突次數(shù):d,conflictCount);)voidfeedback()curRate=(double)conflictCount/(double)WINDOW_SIZE;cur_workset+;elseif(curRatemaxRate)jackie)jackie-laptop:文件什)編輻(E)查看(V)隈索蟀箱(T)胡助(H)jackiejackie-laptopgcc-owsmratewsnrate,cjackiejackie-laptopr-S*/wsmrate

16、進(jìn)程調(diào)用頁面序列:36|7|5|3|56|Z|9|l|2|7|B|9|3|6|e|6|2|6|沖突次數(shù):16,缺頁故障率:(3.8,故障率上限/下限:0.8/32輸入任意字符繼續(xù),q退出W進(jìn)程調(diào)用頁面序列:1|8|7|9|2|0|2|3|7|5|9|2|2|8|9|7|3|6|1|2|沖突次數(shù):17,缺頁故障率:0.85,故障率上限/下限:0+8/0,2輸入任意字符罐續(xù),q退出P進(jìn)程調(diào)用頁面序列:9|1|9|4|78|4|5|0|3|6|1|6|6|3|2|0|6|1|沖突次數(shù):12,缺頁故障率:6.6j故障率上限/下限:0,8/0,2輸入任意字符維埃,q退出進(jìn)程調(diào)用頁面序列:5|5H|7|6

17、|5|6|9|3|7|4|5|2|5|4|7MH|3|0|沖突次數(shù):12,缺頁故障率:0.6,故障率上限/下限:e,8/0.2輸入任意字符維續(xù),q退出4、結(jié)果分析與實(shí)驗(yàn)體會(huì)存儲(chǔ)管理是操作系統(tǒng)中最重要的組成部分之一。在早期計(jì)算時(shí)代,由于人們所需要的內(nèi)存數(shù)目遠(yuǎn)遠(yuǎn)大于物理內(nèi)存,人們設(shè)計(jì)出了各種各樣的策略來解決此問題,其中最成功的是虛擬內(nèi)存技術(shù)。它使得系統(tǒng)中為有限物理內(nèi)存競爭的進(jìn)程所需內(nèi)存空間得到滿足。我們以 BuddyHeap 算法為例,實(shí)現(xiàn)模擬 Linux 系統(tǒng)中連續(xù)內(nèi)存分配。BH 算法具有速度快的明顯特點(diǎn),同時(shí)解決了外碎片問題,但帶來內(nèi)碎片,這是由于實(shí)際請求一般不能恰好與相對應(yīng),此時(shí)必須向上取整。對于更大塊的請求內(nèi)碎片的浪費(fèi)更嚴(yán)重。為此 Linux 將剩余的內(nèi)碎片按 2j整數(shù)次塞切片并由二次分配器進(jìn)行單獨(dú)管理。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論