动态内存分配实验报告

上传人:ni****g 文档编号:563705766 上传时间:2023-03-12 格式:DOC 页数:8 大小:50KB
返回 下载 相关 举报
动态内存分配实验报告_第1页
第1页 / 共8页
动态内存分配实验报告_第2页
第2页 / 共8页
动态内存分配实验报告_第3页
第3页 / 共8页
动态内存分配实验报告_第4页
第4页 / 共8页
动态内存分配实验报告_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《动态内存分配实验报告》由会员分享,可在线阅读,更多相关《动态内存分配实验报告(8页珍藏版)》请在金锄头文库上搜索。

1、动态内存分配实验报告一、实验目的动态分区分配弄明白动态分区的的相关概念及工作流程,让自己通过编码來模拟实际电脑里动态分区是怎样工作的。掌握存储管理中的动态分区分配算法。二、实验要求1在实现关于内存管理的内存首选适应算法和最佳适用算法两个可选一个,但最佳适用算法必须实现。2. 实现关于内存管理的内存动态分区分配布局初始化。3. 实现关于内存管理的内存动态分区分配申请分配。4. 实现关于内存管理的内存回收等基本功能操作函数三、实验内容在本实验中,我釆用了循环首次适应算法和最佳适应算法。设计和实现内存回收函数:若回收分区与其它空闲分区相邻接,则采取合并措施小基于不同的内存分配策略形成不同版本的内存管

2、理器,并根据内存平均利用率和分配查找分区比较次数等指标展开测试和对不同分配策略的内存管理器性能进行评估间长短将其与基于Windows互斥信号量的线程同步机制的效率展开比较。本实验是要做一个模拟程序,来模拟动态分区算法的分配和回收过程,并不是真正的去分配和回收内存。利用书上的提供的几个算法的工作流程去编写相应的代码,实现循环首次适应算法和最佳适应算法來模拟动态分区算法的分配和回收过程。四、实验结果选择,1:分配内存,2:回收内存,3:显示内存leasechosethetypeofthefunctions:0一一exit1一一allocate2一一reclaim3一一shot;给进程1分配内存空间

3、100,进程2分配内存空间130*pleasechosethetypeoftheFunctionsI*0一一exit1一一allocate2一reclaim3一一show1*pleaseinputprocessingnameand1巳nth:*1100*pleasechosethetypeoftheFunctionsI*0一一exit1一一allocate2一一reclaim3一一show1*pLeaseinputprocessingnameandlenth:*2130*pleasechosethetypeofthefunctions:*0一一exit1一一allocate2一一reclaim

4、3一一show显Zjl内存:3*uedtable:舅母母母賛母母址母母覧01102401001210340130*Ffeetable:*010470102170end.*pleas巳chosethetypeofthefunctionsI*0一一exit1allocate2reclaim3show回收内存:ofthefunctions:*3show法味仔味味共味疋味味仔味味狭卫leasechosethtype0exit1allocate2reclaim2pleaseintputtheprossingnametoberecaim:餐*1心况知*chosethetype0exit1allocate2

5、reclaimothefunctions:*3show回收后显示内存:leasechosethetype0一一exit1一一allocate2一一reclain3xxm)()()()()()(i()(u:edtable:*m*m*m*m*0210346130*“etable:*”10470102170tt10240100end*pleasechosethetype0exit1allocate2reclaimofthefunctions:3一一showofthefunctions:3show五、实验小结所谓动态内存分配(DynamicMemoiyAllocation)就是指在程序执行的过程中动态

6、地分配或者回收存储空间的分配内存的方法。动态内存分配不象数组等静态内存分配方法那样需要预先分配存储空间,而是由系统根据程序的需要即时分配,且分配的大小就是程序要求的大小此部分内容说实话,上课的时候我是真的没有怎么掌握,通过此次实验,我才明白什么是动态内存分配,以及程序在运行时是怎么分配内存的。上课时只靠理论和仅有的一点想象能力是不够的,动手操作能力也是必需的,最起码它让我们切身体会并明白了所要学习的知识。实验课对于大学生,特别是对于我们即将面临毕业的大三学生是十分必要的。希望以后的时间里还有机会让我们能锻炼锻炼自己,接下来还有两周的课程设计,希望自己能把握好机会,让自己的能力,更上一层楼六、附

7、录#include#include/#include/usmgnamespacestd;#defineMax10mtfiee_p;mtused_p;stmcttableintaddress;intlen;intflag;intnin_id;tableusedMax,FfeeMax;stmctProcessmtid;mtlen;pMax;mtcmp(consttable&a,consttable&b)letunia.addiessb.addiess;voidallocate(intid,mtlen)mti,j;fbi(i=O;i=len)usedused_p.addiess=Freei.addr

8、ess;usedused_p.len=len;usedused_pnui_id=id;used_p+;if(Ffeei.lenlen)Freei.address+=len;Freei.len-=len;elseFree|j=Fieej+l;break;voidieclaini(intid)inti,j,k;foi(i=0;iused_p;i+)lousedi.nm_id=id)mtadd=used1.address;mtlength=used1.leu;used_p;fbi(j=i;jused_p;j+)usedj=usedj+l;Freefree_p.address=add;/Fieefie

9、e_p.len=lengtli;fiee_p-H-;sort(Fiee,Fiee+fLee_p,cmp);foi(j=0;jfiee_p;j+)if(j+1fiee_p&Fieej.addfess+Ffeej.len=Ffeej+1.address)Freej.len+=Fieej十l.len;fiee_p-sfbi(k=j+1;kfiee_p;k+)Freek=Freek+l;voidshow()inti;/soit(usedAised+used_p,cmp);printf(H*usedtable:*iin);foi(i=0;iused_p;i+)printf(,%d%7d%7d%7dnn,

10、i,usedi.run_id,usedi.address,usedi.len);printf(H*Fieetable*nn);fbr(i=O;ifLee_p;i+)pnntf(H%d%7d%7diin,i,Freei.address,Freei.len);printf(endiiM);mtmam()mtttypejd;mtxk;空闲区表初始化FreeO.address=l0240;Fiee0.len=102400;Free0.flag=l;foi(i=l;iMax;i+)Freei.flag=0;己分配1区表初始化for(i=0;iMax;i+)usedi.flag=0;fiee_p=l;us

11、ed_p=0;while(l)pnntf(H*pleasechosethetypeofthefimctions:*0-exit1allocate2reclami3sliowiin);/pnntf(Hpleasechosethefunctiontvpenn);scanf(n%d,&tvpe);switcli(type)case0:ietuni0;case1:pnntff*pleaseinputprocessinglenth:*nH);scaiif(H%d%d”,&id,&xk);allocate(id,xk);break;case2:prmtf(n*pleasemtputthepiossiiigreclaim:*nu);scanf(”d”,&id);leclaim(id);break;case3:sliowQ;nameandnametobe

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号