




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、存儲(chǔ)器管理(二)一、目的本課題實(shí)驗(yàn)的目的是,使學(xué)生實(shí)驗(yàn)存儲(chǔ)器管理系統(tǒng)的設(shè)計(jì)方法;加深對(duì)所學(xué)各種存儲(chǔ)器管理方案的了解;要求采用一些常用的存儲(chǔ)器分配算法,設(shè)計(jì)一個(gè)存儲(chǔ)器管理模擬系統(tǒng)并調(diào)試運(yùn)行。二、題目存儲(chǔ)器管理三、要求及提示1、要求采用一種常用的存儲(chǔ)器分配算法,設(shè)計(jì)一個(gè)存儲(chǔ)器管理模擬系統(tǒng)。允許進(jìn)行多次的分配和釋放,并可向用戶反饋分配和釋放情況及當(dāng)前內(nèi)存的情況;采用“命令菜單”選擇和鍵盤命令輸入的會(huì)話方式,根據(jù)輸入請(qǐng)求調(diào)用分配模塊,或回收模塊,或內(nèi)存查詢模塊,或最終退出系統(tǒng)。2、編程實(shí)現(xiàn)。3工具:語(yǔ)言或其它高級(jí)語(yǔ)言4、實(shí)驗(yàn)時(shí)間:3學(xué)時(shí)四、實(shí)驗(yàn)報(bào)告1、寫(xiě)出存儲(chǔ)器管理的思想。2、畫(huà)出算法流程圖和設(shè)置的數(shù)
2、據(jù)結(jié)構(gòu)。3、寫(xiě)出調(diào)試程序出現(xiàn)的問(wèn)題及解決的方法。4、打印實(shí)驗(yàn)報(bào)告及程序清單。5、報(bào)告給出測(cè)試的結(jié)果。五、范例采用可變分區(qū)存儲(chǔ)器管理方案的模擬系統(tǒng)。1、問(wèn)題描述該模擬系統(tǒng)的外部特性與真實(shí)系統(tǒng)基本一樣。存儲(chǔ)分配算法采用首次適應(yīng)法。用“拼,接”和“緊湊”技術(shù)來(lái)處理存儲(chǔ)器碎片。2、算法存儲(chǔ)分配算法采用首次適應(yīng)(FF)法。根據(jù)指針freep查找自由鏈,當(dāng)找到第一塊可滿足分配請(qǐng)求的空閑區(qū)時(shí)便分配之。當(dāng)某空閑區(qū)被分配后的剩余空閑區(qū)空間大于規(guī)定的碎片最小容量min時(shí),則形成一個(gè)較小的空閑區(qū)留在自由鏈中?;厥諘r(shí),根據(jù)MAT將指定分區(qū)鏈入自由鏈。若該分區(qū)有前鄰或后鄰空閑分區(qū),則將他們拼接成一塊加大的空閑區(qū)。當(dāng)某個(gè)
3、分配請(qǐng)求不能被滿足,但此時(shí)系統(tǒng)中所有碎片總量滿足分配請(qǐng)求的容量時(shí),系統(tǒng)立即進(jìn)入內(nèi)存“緊湊”以消除碎片。即將各作業(yè)占用區(qū)集中下移到用戶內(nèi)存區(qū)的下部(高地址部分),形成一片連接的作業(yè)區(qū),而在用戶內(nèi)存區(qū)的上部形成一塊較大的空閑區(qū)。然后再進(jìn)行分配。本系統(tǒng)的主要程序模塊包括:分配模塊ffallocation,回收模塊ffcolection,緊湊模塊coalesce及命令處理模塊menu。Menu用以模擬系統(tǒng)的輸入,采用“命令菜單”選擇和鍵盤命令輸入的會(huì)話方式,根據(jù)輸入請(qǐng)求調(diào)用分配模塊,或回收模塊,或內(nèi)存查詢模塊,或最終退出系統(tǒng)。系統(tǒng)的主流程如圖3所示。3、數(shù)據(jù)結(jié)構(gòu)(1)自由鏈與區(qū)頭。內(nèi)存空閑區(qū)采用自由鏈
4、結(jié)構(gòu)。鏈?zhǔn)子蒮reep指向,鏈中各個(gè)空閑區(qū)按地址遞增次序排列。初啟時(shí)整個(gè)用戶內(nèi)存區(qū)為一個(gè)空閑區(qū)。在每個(gè)空閑區(qū)首部設(shè)置一個(gè)區(qū)頭(freearca)結(jié)構(gòu)。區(qū)頭信息包括:sizenextbackaddress空閑區(qū)大小(以字節(jié)計(jì)),包括區(qū)頭所占空間;前向鏈指針,指向下一個(gè)空閑區(qū);反向鏈指針,指向上一個(gè)空閑區(qū);本空閑區(qū)首地址。用戶作業(yè)名;作業(yè)區(qū)大??;作業(yè)區(qū)首地址;(2)內(nèi)存分配表MAT。系統(tǒng)設(shè)置一個(gè)MAT,每個(gè)運(yùn)行作業(yè)都在MAT中占有一個(gè)表目,回收分區(qū)時(shí)清除相應(yīng)表目。表目信息包括:namelengthaddr4、程序清單#include#include#defineTOTAL5000#defineSE
5、TADDRESS2000#defineMIN100#defineMAX10typedefstructfreeareaintaddress;intsize;structfreearea*next;structfreearea*back;*freeptr;typedefstructmatcharname;intaddress;intlength;structmat*next;structmat*back;*jobptr;charstring10;longtotalfree;charjobnumber;freeptrfreep;jobptrjobp;/*初始化*/init()freep=(freep
6、tr)malloc(sizeof(structfreearea);freep-size=TOTAL;freep-address=SETADDRESS;freep-next=NULL;freep-back=NULL;totalfree=TOTAL;jobp=NULL;jobnumber=0;return(0);/*/fengpei(intjl,charjn)freeptrfp;jobptrjp,jp1,jp2;jp2=(jobptr)malloc(sizeof(structmat);if(totalfreesizenext;elsejobnumber=jobnumber+1;totalfree=
7、totalfree-jl;jp2-name=jn;jp2-length=jl;jp2-address=freep-address;if(jobp=NULL)jp2-next=NULL;jp2-back=NULL;elsejobp=jp2;jp=jobp;while(jp!=NULL&(jp2-addressaddress)jp1=jp;jp=jp-next;jp2-next=jp;if(jp=NULL)jp2-back=jp1;elsejp1-next=jp2;jp2-back=jp-back;if(jp-back!=NULL)jp1-next=jp2;elsejobp=jp2;jp-back
8、=jp2;if(fp-size-jl)next!=NULL)fp-next-back=fp-back;if(fp-back!=NULL)fp-back-next=fp-next;elsefreep=fp-next;/*elsereturn();*/fp-size=fp-size-jl;fp-address=fp-address+jl;return(2);if(totalfree=jl)return(0);/*顯示模塊*/xianshi()jobptrjp;/*清屏*/if(jobnumbername,jp-length,jp-address);jp=jp-next;printf(nthetot
9、alleftis%dbytes:,totalfree);/*回收模塊*/huishou(charjn)freeptrfp,fp1,fp2;jobptrjp;intf=0;jp=jobp;while(jp!=NULL)&(jp-name!=jn)jp=jp-next;if(jp!=NULL)jobnumber=jobnumber-1;totalfree=totalfree+jp-length;if(freep=NULL)freep=(freeptr)malloc(sizeof(structfreearea);freep-address=jp-address;freep-size=jp-addre
10、ss;freep-next=NULL;freep-back=NULL;elsefp=freep;while(fp!=NULL)&(fp-addressaddress)fp1=fp;fp=fp-next;if(fp!=NULL)if(fp-next!=NULL)&(fp-next-address=jp-address+jp-length)f=f+1;if(fp-back!=NULL)&(jp-address=fp1-address+fp1-size)f=f+2;elseif(jp-address)=(fp1-address+fp1-size)f=f+2;switch(f)case0:fp2=(f
11、reeptr)malloc(sizeof(structfreearea);fp2-address=jp-address;fp2-size=jp-length;fp2-next=fp;if(fp!=NULL)fp2-back=fp-back;if(fp-back!=NULL)fp1-next=fp2;elsefreep=fp2;fp-back=fp2;elsefp2-back=fp1;fp1-next=fp2;fp-size=fp-size+jp-length;fp-address=jp-address;fp1-size=fp1-size+jp-length;fp1-size=fp1-size+
12、jp-length+fp-size;fp1-next=fp-next;if(fp-next!=NULL)fp-next-back=fp2;free(fp);if(jp=jobp)jobp=jp-next;if(jp-next!=NULL)jp-next-back=jp-back;if(jp-back!=NULL)jp-back-next=jp-next;free(jp);banjia()freeptrfp,fp1;jobptrjp;longbottom;if(jobnumber0)jp=jobp;bottom=TOTAL+SETADDRESS;while(jp!=NULL)jp-address
13、=bottom-jp-length;bottom=bottom-jp-length;jp=jp-next;fp=freep;while(fp!=NULL)fp1=fp;fp=fp-next;free(fp1);freep=(freeptr)malloc(sizeof(freeptr);freep-size=totalfree;freep-address=SETADDRESS;freep-next=NULL;freep-back=NULL;mingling()charname,anykey,jobname;intlength,select;intaddress;a1:printf(youcans
14、electoneofthefollowing:n);printf(1)requiretobeallocaten);printf(2)requiretocollextethesizen);printf(3)checkthememoryn);printf(4)quitsystemn);printf(youselectis:);scanf(%d,&select);switch(select)case1:if(jobnumber=MAX)printf(thejobistoomany);elseprintf(enteryoujobnamen);scanf(%s,&name);printf(enteryo
15、urjoblengthn);scanf(%10d,&length);address=fengpei(length,name);switch(address)case1:printf(thememoryisfull);break;case0:banjia();fengpei(length,name);xianshi();break;case2:xianshi();break;/*elsexianshi();*/break;printf(enterthenameofthejobn);printf(youselectis:);jobname=getchar();jobname=getchar();h
16、uishou(jobname);xianshi();break;xianshi();break;gotoa2;printf(npressentertoreturnmenun);anykey=getchar();anykey=getchar();/*scanf(%c,anykey);*/gotoa1;a2:printf(youhaveexitthesystem!);main()init();mingling();5、程序運(yùn)行結(jié)果本程序用TurboC語(yǔ)言編寫(xiě),運(yùn)行結(jié)果如下:youcanselectoneofthefollowing:requiretobeallocate。requiretocoll
17、ectethesize。checkthememory。quit。youselect:1enteryourjobname:job1enteryourjoblength:1000namelegth(b)addressjob110002000thetotalleftis:4000bytespressanykeytoreturnmenu.youselect:1enteryourjobname:job4enteryourjoblength:900namelegth(b)addressjob49005900job37005200job222003000job110002000thetotalleftis:200bytesyouselect:2enterthenameofthejob:job2namelegth(b)addressTOC o 1-5 h zjob49005900job37005200job110002000thetota1leftis:2400bytesyouselect:1enteryourjobname:job5enteryourjoblength:2300namelength(b)addressTOC o 1-5 h zjob49006100job370054000job11
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年應(yīng)急救生系統(tǒng)項(xiàng)目合作計(jì)劃書(shū)
- 2025年水基聚合物防水涂料項(xiàng)目合作計(jì)劃書(shū)
- 智能交通系統(tǒng)建設(shè)工程施工合同
- 鹽城市房屋租賃合同
- 小學(xué)生品德教育讀后感
- 2025年飲料及冷飲服務(wù)項(xiàng)目發(fā)展計(jì)劃
- 妊娠紋的專業(yè)知識(shí)
- Isonicotinamide-Standard-生命科學(xué)試劑-MCE
- Direct-blue-6-生命科學(xué)試劑-MCE
- 2025年鞋用乳液膠粘劑項(xiàng)目建議書(shū)
- 地理-廣東省上進(jìn)聯(lián)考領(lǐng)航高中聯(lián)盟2025屆高三下學(xué)期開(kāi)學(xué)考試題和答案
- GB/T 20032-2024項(xiàng)目風(fēng)險(xiǎn)管理應(yīng)用指南
- 2025年熱管換熱氣行業(yè)深度研究分析報(bào)告
- 博鰲亞洲論壇:創(chuàng)新報(bào)告2024
- 2025年全國(guó)青少年禁毒知識(shí)競(jìng)賽題庫(kù)及答案(401一516) - 副本
- 2025山東能源集團(tuán)中級(jí)人才庫(kù)選拔高頻重點(diǎn)提升(共500題)附帶答案詳解
- 新員工入職登記表模板表格(標(biāo)準(zhǔn)版)
- 《邊教書(shū)邊成長(zhǎng)》讀書(shū)分享課件
- 劉潤(rùn)年度演講2024
- 燃?xì)饨?jīng)營(yíng)安全重大隱患判定標(biāo)準(zhǔn)課件
- 統(tǒng)編版語(yǔ)文八年級(jí)下冊(cè)全冊(cè)大單元整體教學(xué)設(shè)計(jì)表格式教案
評(píng)論
0/150
提交評(píng)論