欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    动态分区管理实验报告.docx

    • 资源ID:3333299       资源大小:37.99KB        全文页数:5页
    • 资源格式: DOCX        下载积分:6.99金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要6.99金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    动态分区管理实验报告.docx

    动态分区管理实验报告实验五 动态分区管理模拟实验报告 关键问题:写一动态分区管理程序,使其内存分配采用最优适应分配算法。 设计思路:在空闲分区链中找最适合的空闲块,使内存碎片尽量的减少!根据最佳适应算法原理,在内存分配函数ffallocation中,增加记录适合空白块的标记sp,然后拿当前空白块fp减去后jl的后的大小和它后面的另一空白块sp减去jl的大小相比较。如果前者大于后者,且后者的空白区大于jl的大小,则当前空白块为sp,否则继续往后比较,直到空闲分区链末尾!则当前空白块为最适合的空白块!然后就把当前空白块分配给作业。其他部分的代码与实例相同! 实现的关键代码: /- /有两个链:空白块链及作业链.空白块链描述空白块,链首指针freep,初始为一大块空白块. /作业链按从高址到低址的顺序链接,链首指针jobp /为作业jn分配jl大小内存,起始地址为ja void ffallocation(int jl,char jn10,int* ja) mat* jp=NULL;/作业链当前节点 mat* jp2=NULL;/新的作业节点 mat* jp1=NULL;/ freearea* fp=NULL;/当前空白块 /!修改部分 freearea* sp;/记录适合的空白块 int i; *ja=-1; if (totalfree<jl) /剩余空间大小不能满足作业要求 return; *ja=0; fp=freep;/取空白块链首块,将顺着链寻找第一块满足作业要求的块。 sp=freep; while (fp!=NULL) if (fp->freesize<jl) fp=fp->next;/当前空白块大小不满足要求 sp=sp->next; else /将当前空白块分配给作业 /*当当前空白块fp与它的下一块空白块sp相比较,如果它减去jl后大于下一空白块sp减去jl,且下一空白块sp大于等于jl,则当前空白块为sp;否则sp继续往后查找,直到空闲块查找完毕, 然后当前空闲块为所要查找的适合空闲块!*/ while(sp!=NULL) if(fp->freesize-jl>sp->freesize-jl)&(sp->freesize>=jl) fp=sp; else sp=sp->next; /! jobnumber+; totalfree=totalfree-jl; jp2=new mat;/申请一块作业节点空间 /在节点上登记为该作业分配的内存空间 / for (i=0;i<10;i+) (jp2->jobname)i=' ' i=-1; while(jn+i) (jp2->jobname)i=jni; (jp2->jobname)i='0' jp2->joblength=jl; jp2->jobaddress=fp->freeaddress;/登记该作业的起始地址 *ja=jp2->jobaddress; /将节点jp2插入作业链jobp,按高址到低址的顺序。 if (jobp=NULL) /插入链首 jp2->next=NULL; jp2->back=NULL; jobp=jp2; else jp=jobp;/取链首指针 while(jp!=NULL) && (jp2->jobaddress<jp->jobaddress) jp1=jp;/jp1为jp的前一个节点 jp=jp->next;/继续搜索 /将jp2插入到jp1之后、jp之前 jp2->next=jp; if (jp=NULL) /插到链尾 jp2->back=jp1; jp1->next=jp2; else /插在链中间 jp2->back=jp->back; if (jp->back!=NULL)/jp不是首节点 jp1->next=jp2; else jobp=jp2;/jp是首节点 jp->back=jp2; /if (jobp=NULL) /剩余空白块处理 if (fp->freesize-jl<min)/剩余空间小于最小量,碎片 /抛弃碎片fp if (fp->next!=NULL) (fp->next)->back=fp->back;/fp非尾节点 if (fp->back!=NULL) (fp->back)->next=fp->next;/fp非首节点 else freep=fp->next;/fp为首节点 else /登记余下空白块fp:节点链指针不变,调整块的大小及地址 fp->freesize=fp->freesize-jl; fp->freeaddress=fp->freeaddress+jl;/分配空白块前半部分 return; /else /将当前空白块分配给作业 / while (fp!=NULL) /- 程序运行结果: 总结及进一步改善建议: 从这次实验中,我更加深入理解了动态分区管理中的最先适应算法,最佳适应算法等内存分配算法!更进一步深入了解了操作系统中各模块的运行机制!使我对操作系统的研究更深入,更加有动力,操作系统中的算法太美妙了!

    注意事项

    本文(动态分区管理实验报告.docx)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开