动态分区管理实验报告.docx
《动态分区管理实验报告.docx》由会员分享,可在线阅读,更多相关《动态分区管理实验报告.docx(5页珍藏版)》请在三一办公上搜索。
1、动态分区管理实验报告实验五 动态分区管理模拟实验报告 关键问题:写一动态分区管理程序,使其内存分配采用最优适应分配算法。 设计思路:在空闲分区链中找最适合的空闲块,使内存碎片尽量的减少!根据最佳适应算法原理,在内存分配函数ffallocation中,增加记录适合空白块的标记sp,然后拿当前空白块fp减去后jl的后的大小和它后面的另一空白块sp减去jl的大小相比较。如果前者大于后者,且后者的空白区大于jl的大小,则当前空白块为sp,否则继续往后比较,直到空闲分区链末尾!则当前空白块为最适合的空白块!然后就把当前空白块分配给作业。其他部分的代码与实例相同! 实现的关键代码: /- /有两个链:空白
2、块链及作业链.空白块链描述空白块,链首指针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 (totalfreefreesizenext;/当前空白块大小不满足要求
3、 sp=sp-next; else /将当前空白块分配给作业 /*当当前空白块fp与它的下一块空白块sp相比较,如果它减去jl后大于下一空白块sp减去jl,且下一空白块sp大于等于jl,则当前空白块为sp;否则sp继续往后查找,直到空闲块查找完毕, 然后当前空闲块为所要查找的适合空闲块!*/ while(sp!=NULL) if(fp-freesize-jlsp-freesize-jl)&(sp-freesize=jl) fp=sp; else sp=sp-next; /! jobnumber+; totalfree=totalfree-jl; jp2=new mat;/申请一块作业节点空间
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 动态 分区 管理 实验 报告
链接地址:https://www.31ppt.com/p-3333299.html