

下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、1 / 16電子信息學(xué)院實(shí)驗(yàn)報(bào)告書【驗(yàn)證】BX090724朱杰評(píng)語:實(shí)驗(yàn)態(tài)度認(rèn)真()一般()差()實(shí)驗(yàn)結(jié)果正確()部分正確()錯(cuò)()實(shí)驗(yàn)理論掌握()熟悉()了解()不懂()操作技能強(qiáng)()一般()差()實(shí)驗(yàn)報(bào)告好()一般()差()成績:-指導(dǎo)教師:_胡靜課程名題目:實(shí)驗(yàn)類別班級(jí):學(xué)號(hào):姓名:Linux 操作系統(tǒng)實(shí)驗(yàn)實(shí)驗(yàn)三存儲(chǔ)管理試驗(yàn)1 / 16批閱時(shí)間:年 月日1 / 161、 實(shí)驗(yàn)內(nèi)容或題目1(1)模擬初始內(nèi)存頁面分配(數(shù)組、結(jié)構(gòu)體均可)(2)實(shí)現(xiàn) Buddy heap 算法(3)通過鍵盤輸入隨機(jī)產(chǎn)生申請(qǐng)和釋放操作*請(qǐng)求:r8 代表申請(qǐng) 8 個(gè)頁面。*釋放:f4 代表釋放 4 個(gè)頁面。注意:h
2、eap 的分割和合并操作。(4)每個(gè)申請(qǐng)或釋放操作,都在屏幕上顯示操作前與操作后的內(nèi)存分配的對(duì)比圖(5)實(shí)驗(yàn)假設(shè)申請(qǐng)和釋放的頁數(shù)都是 2 的整次幕。2(1)建立工作集頁面模型。(2)禾 I用隨機(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(1)用 C 語言是實(shí)現(xiàn)模擬 Linux 系統(tǒng)中連續(xù)內(nèi)存分配用到的伙伴對(duì)算法。(2)通過鏈表的形式輸出在內(nèi)存申請(qǐng)和釋放過程中內(nèi)存狀態(tài)的對(duì)比圖。2(1) 了解工作集模型的原理及其特點(diǎn)。(2)實(shí)現(xiàn)頁故障率反饋模型。3、實(shí)驗(yàn)步驟與源程序1. Buddy heap 算法模擬源程序;#in elu
3、de 2 I 16#in elude typedef struct blockII定義一個(gè)內(nèi)存塊的結(jié)構(gòu)體int size;II 塊的大小int start;II 塊的起始位置int loc;II 是否占用struct block *n ext;指向下一個(gè)塊的指針struct block *prior;II 指向前一個(gè)塊的指針block;int maxsize=512;可分配的內(nèi)存空間總量block *n ote;II 初始化的結(jié)點(diǎn)block *id10; II 鏈表頭的數(shù)組II 打印內(nèi)存狀態(tài)函數(shù)void prin tmem()int i;for(i=9; i=0;i-)prin tf(%d-,
4、i);block * temp = (struct block *)malloc(sizeof(struct block);temp = idi-n ext;while(temp!=NULL)printf(%d(%s)(%d)-,temp-size,temp-loc=1?占用:空閑,temp-start);存塊的大小、狀態(tài)、起始位置temp=temp-n ext;prin tf(n);II 初始化void in it()int i; 輸出內(nèi)3 / 16for(i=0;iprior=idi;idi-next=NULL;no te=(struct block *)malloc(sizeof(str
5、uct block);no te-size=maxsize;no te-start=0;no te-loc=0;no te- next=NULL;id9=(struct block *)malloc(sizeof(struct block); id9-n ext =no te;id9-prior=id9;no te-prior=id9;prin tmem();int power(int x,int y)/計(jì)算 x 的 y 次幕int k=0,tmp=1;for(;kn ext;int flag=0,isFirst=0;while(pe nd!=NULL)if(pe nd-loc=0)/ 可拆分
6、/卸載被拆分結(jié)點(diǎn)if(isFirst=0)idtempld-n ext=pe nd-n ext;else pen d-prior- n ext=pe nd-n ext;/拆分后的結(jié)點(diǎn)初始化int size=(pe nd-size)/2;int start=pe nd-start;n ewu-size=size;n ewu-start=start;n ewf-start=start+size;n ewu-loc=0;n ewf-size=size;n ewf-loc=0;n ewf-prior =n ewu;n ewu-n ext =n ewf;n ewf- next=NULL;tempId-;
7、cen d=idtempld;while(ce nd- next!=NULL)cen d=ce nd-n ext;/被拆分結(jié)點(diǎn)/掛載點(diǎn)/拆分后的第二個(gè)結(jié)點(diǎn)/拆分后的第一個(gè)結(jié)點(diǎn)5 / 16cen d- next =n ewu;將拆分后的結(jié)點(diǎn)進(jìn)行掛載n ewu-prior=ce nd;flag=1;return 1;else pen d=pe nd-n ext;isFirst+;if(flag=O)templd=templd+1;if(templdn ext;int n extStart=first-start+first-size;int preStart=first-start-first-s
8、ize;int flag=0,isFirst=0;while(seco nd!=NULL)if(sec on d-start=n extStart | sec on d-start=preStart) & sec on d-loc=0)/初始化合并后的結(jié)點(diǎn)6 / 16merger-size=(first-size)+(sec on d-size);merger-loc=0;merger-start=(first-start)start)?(first-start):(secon d-start);/卸載可合并的結(jié)點(diǎn)if(first- next!=NULL)first- n ext-pr
9、ior=first-prior;if(first-prior-prior)=first-prior)idtempld-n ext=first-n ext;else first-prior- n ext=first- n ext;if(seco nd- next!=NULL)sec on d-n ext-prior=secon d-prior;if(isFirst=O)idtempld-n ext=sec ond-n ext;elsesec on d-prior- n ext=sec ond-n ext;/掛載合并后的結(jié)點(diǎn)templd+;merger- n ext=idtempld-n ext;
10、merger-prior=idtempld;if(idtempld-n ext!=NULL) idtempld-n ext-prior=merger;idtempld-n ext=merger;if(templdn ext;return 0;7 / 16isFirst+;return 1;內(nèi)存釋放int freeb(i nt size)block * first=(struct block *)malloc(sizeof(struct block);int templd=root(2,size);first=idtempId-n ext;int flag=0;while(first!=NULL
11、)if(first-loc=1)first-loc=0;flag=1;break;else first=first-n ext;if(flag=1)merge(templd,first);/ 歸并prin tmem();else printf(需要釋放的內(nèi)存塊不存在!n);return -1;8 / 16int requestb(int size) / 申請(qǐng) size 個(gè)頁面block * temp=(struct block *)malloc(sizeof(struct block);int tempId = root(2,size);int flag=0;temp=idtempld-n e
12、xt;while(temp!=NULL)if(temp-loc=0 & temp-size=size)分酉己temp-loc=1;flag=1;printf(分配成功!n);prin tmem();return 1;elsetemp=temp-n ext;if(flag=0)templd+;if(templd-*Imythdubuntu:5 ./buddy9=512(閑M3) a1 - Q -請(qǐng)輸人命令:(臥空ta相隔示例:8) )r128分配成功!9-8-256(空閑)()(25砧“:7128(占用)(6) 128(空閑(128)6 -5-4-是否維域?門地境6逋岀:1請(qǐng)輸人命令:臥
13、空楷相示例:8)64分配麻功!95-256(1 H256)-7-128(占用1 te) )-6- 64(占用Ml囲)-翅4(空嗣5-4-3-2 -1 -A0 -是習(xí)維燥?門維壊.81E出丨:1片 L-1kEythd回ubuntu: *M味人矗令;規(guī)空梧相陶,示柄;時(shí)64fM-87&5 4 32 10牌 g FImyttidiubuntu:請(qǐng)輸入布令:(以空格相降,示例r 1萸 分配成功!7128(占用)(3-128(占用6-64(占用】(170) -=-64(空聞5-4-白-A是否繼英繼境.G) )退di 1:1請(qǐng)輸入陸令:(取空搐相隔,示制r 64分配成功F7128(占用)(0)12
14、8(占用6-64(占用】(128) 64(占用0 退出):丄請(qǐng)輸入醋令H取空幗相隔,示便f 645- *7-128(占用)10)*12E占用6小&4空閑)(128)54(占用4-2 -L -9+星段綻塊和L堰愎,0追出):1120(3 )(128h128(占用1(0;128(占用1(2561 120 H ) 1334;-雄否業(yè)蜒?門塑釀-SiBifi ):1謫味人矗令汀規(guī)空柜相冏,示的;r 9 f 12BJ255($ He)- =126(占冃)12561*128(畳香館填?1捱釀.Sififfi ):1詛宦A矗令汀臥空梅相両,示柄;r 9) f 12B9 -512(SW )()-3-是
15、査館填?1垣境.dig ffl ):0lmythdukHintu;i |)(256) 128(空閑) )(384)-)(256)- 128(空閑)估B4) - a:B)j (25和:-12肌空閑) )(384)-11 / 162.頁故障率反饋模型源程序;#i nclude #i nclude #i nclude #defi ne MAX_WORKSET 10#defi ne WINDOW_SIZE 20int mempage=10; /內(nèi)存頁面總數(shù)(進(jìn)程要訪問的頁面從0 到該范圍內(nèi)隨機(jī)生成)int procArrayWINDOW_SIZE; /進(jìn)程訪問頁面序列int wi nMAX_W0RKS
16、ET2;工作集double maxRate=0.8,minRate=0.2; 故障率上下限double curRate;int cur_workset=3;int conflictCount=0; 故障次數(shù)void print()程序輸出函數(shù)curRate=(double)co nflictCou nt/(double)WINDOW_SIZE;printf(缺頁故障率:%g,故障率上限 /下限:g/%gn,curRate,maxRate,minRate);void changeArray()動(dòng)態(tài)改變?cè)L問頁面序列int i;for(i=0;iWINDOW_SIZE;i+)procArrayi=r
17、a nd()%mempage;printf(進(jìn)程調(diào)用頁面序列:);for(i=0;iWINDOW_SIZE;i+)prin tf(%d|,procArrayi);prin tf(n);void init()/初始化工作集和頁面序列12 / 16int i,j;cha ngeArray();for(i=0;iMAX_WORKSET;i+)wi niO=-1;wi ni1=cur_workset;void changePage(int number) 換頁int i,flag=O;for(i=1;icur_workset;i+)if(wi nflag1 = win i1) 尋找最先進(jìn)入的flag=
18、i;win flag0=procArray nu mber;/ 換頁wi nflag1=1;conflictCount+; 沖突次數(shù)加 1for(i=0;icur_workset;i+)if(i!=flag & wi ni1!=-1)工作集進(jìn)入順序處理wi ni1+;void step(int number)/ 調(diào)用一次內(nèi)存頁面int i,hit=0;for(i=0;icur_workset;i+)if(procArray number = wi ni0) 命中nu mber+;hit=1;break;13 / 16if(hit=O)尚未命中cha ngePage( nu mber);
19、/ 換頁nu mber+;/retur n nu mber;void run()程序運(yùn)行int i;con flictCo un t=0;cha ngeArray();for(i=0;imaxRate)cur_workset+;else if(curRatei&|B|6|9|6|3|alS|fil|l|5l沖突京故:故匱軍:,7,i5( (Rs/TPR:e.5/e.2沖滅;XU: E筑缺頁故隍聿:) )5,故隍宰上曄/下曜:e.8/6.2焉入任言宇符卑找,q退出進(jìn)程用皿如序菊:Z|l|7B|5|7|4|l|8|5|9|7|5|3|8|li|3l|B|9f -沖克窪BS: th缺頁覘區(qū)率
20、:P托乳釀35率上配廠F昭:9,0/6.3端人任倉手苻握集qifi出進(jìn)ISifl用頁直呼列:6|4|3|3|3|8|&|6|4|8|8|8|9|7|7|5|4|3|3|沖突圧裁突圧裁LirEmesss即:日宀5攤琴審上涼/下幅:e.B/e.2輔人任足審將19換”q誨出c逍程謂ffiraWF?列:&|S|2|5|4|Q|5|9|4|6|9|2|?|4|7|7|5|4|B|J|沖鑒取理:L和缺頁故變率;0.65; &,S/e.2儲(chǔ)人任吉宇符堂蟾.qiEtti進(jìn)fiiflfflPllfilff :2|a|9|3|6|8|0|2l|&|5|l|l|e|8|5|e6|4|
21、6|沖裏蕊敢:垃HlSStS樂:日一$5.5 35率上更/下限!0.0/B.2輸入任範(fàn)孚哥堆讀,qifi出址程W面序列:2|5|8|4|2|fl|4|7j2t4|0|Z|9|9|9|S|l|3|l|沖夬戻數(shù):L3:歆詞軌険率:氐站煤誥率上陀/節(jié)恠;9.0/e.2 Si人任總宇苻墮裟.qiEiilE迥程謂匿貝岡序列:L|e|3Kle|3|9|l|9|6|9|3p|a|e|5|B|6H|fl|沖寬蕊趣:ti,iJiiuss直率:日”,乳故寫車上理/下唱:&,e/e.j篩入任意芋符變緒,qifi出4訊廉常用艮箭睜列:a|4|B|2ti|7|5|fi|9|B|7|2|B|2|9|9|fi|8|2|7|沖夾窩觀:19rWRSSST:日.5.尿陽峯上隔/下限:0.B/A.2韓人任竜爭軒迪讀qilc誑程i用mil序列:&|l|3|2|l|5|9|l|4|9| 1|B|7|5|B|7|Q|4|沖裏凰朝;直玻為故陞率;9.6,s率上盟/下辱:e.a/.2悔人任言宇
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025屆山東省臨沭縣青云鎮(zhèn)中心中學(xué)英語七年級(jí)第二學(xué)期期中檢測(cè)試題含答案
- 2025年生態(tài)修復(fù)植被重建技術(shù)在城市生態(tài)修復(fù)生態(tài)效益分析中的應(yīng)用報(bào)告
- 2025年智慧港口自動(dòng)化裝卸設(shè)備產(chǎn)業(yè)政策解讀報(bào)告
- 2025年元宇宙社交平臺(tái)虛擬社交平臺(tái)穩(wěn)定性與用戶體驗(yàn)分析報(bào)告
- 2025年智能制造專項(xiàng)補(bǔ)貼資金申請(qǐng)政策解讀與應(yīng)用報(bào)告
- 2025年工業(yè)互聯(lián)網(wǎng)軟件定義網(wǎng)絡(luò)SDN在智能電網(wǎng)調(diào)度優(yōu)化報(bào)告
- 2025年醫(yī)藥企業(yè)市場(chǎng)拓展策略與品牌建設(shè)報(bào)告
- 零售私域流量運(yùn)營與用戶參與度提升策略優(yōu)化報(bào)告001
- 再障的護(hù)理課件模板
- 2025年互聯(lián)網(wǎng)金融科技服務(wù)平臺(tái)在金融科技創(chuàng)新競賽中的案例分析報(bào)告
- 2025華陽新材料科技集團(tuán)有限公司招聘(500人)筆試參考題庫附帶答案詳解
- GA 1812.2-2024銀行系統(tǒng)反恐怖防范要求第2部分:數(shù)據(jù)中心
- 《肉芽腫性血管炎》課件
- 2025年入黨積極分子培訓(xùn)考試題庫及答案(二)
- 初中體育《足球腳內(nèi)側(cè)運(yùn)球》課件大綱
- 青海省西寧市2025屆九年級(jí)下學(xué)期中考一模地理試卷(含答案)
- 2023+ESC急性冠狀動(dòng)脈綜合征管理指南解讀 課件
- 心絞痛培訓(xùn)課件
- 保險(xiǎn)行業(yè)發(fā)展趨勢(shì)和機(jī)遇
- 注塑加工廠管理
- 邊坡作業(yè)安全教育培訓(xùn)
評(píng)論
0/150
提交評(píng)論