动态分区管理实验报告

上传人:壹****1 文档编号:431032051 上传时间:2023-04-18 格式:DOCX 页数:6 大小:135.75KB
返回 下载 相关 举报
动态分区管理实验报告_第1页
第1页 / 共6页
动态分区管理实验报告_第2页
第2页 / 共6页
动态分区管理实验报告_第3页
第3页 / 共6页
动态分区管理实验报告_第4页
第4页 / 共6页
动态分区管理实验报告_第5页
第5页 / 共6页
点击查看更多>>
资源描述

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

1、实验五动态分区管理模拟实验报告关键问题:写一动态分区管理程序,使其内存分配采用最优适应分配 算法。设计思路:在空闲分区链中找最适合的空闲块,使内存碎片尽量的减 少!根据最佳适应算法原理,在内存分配函数ffallocation(中,增加 记录适合空白块的标记,?,然后拿当前空白块fp减去后jl的后的大 小和它后面的另一空白块sp减去jl的大小相比较。如果前者大于后 者,且后者的空白区大于jl的大小,则当前空白块为sp,否则继续彳主 后比较,直到空闲分区链末尾!则当前空白块为最适合的空白块!然 后就把当前空白块分配给作业。其他部分的代码与实例相同!实现的关键代码:/有两个链:空白块链及作业链.空白

2、块链描述空白块,链首指针freep,初始为 一大块空白块./作业链按从高址到低址的顺序链接,链首指针jobp/为作业jn分配jl大小内存,起始地址为javoid 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;/当前空白块大小不满足要求sp=sp-next;else 将当前

3、空白块分配给作业(/*当当前空白块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;/申请一块作业节点空间在节点上登记为该作业分配的内存空间/ for (i=

4、0;ijobname)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-jobaddressjobaddress)(jp1=jp;

5、/jp1为jp的前一个节点jp=jp-next;/继续搜索将?2插入到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;elsejobp=jp2;/jp 是首节点jp-back=jp2; /if (jobp=NULL)剩余空白块处理if (fp-freesize-jlnext!二NULL)(fp-next)-back=fp-back;/fp 非尾节点if (fp-back!=NUL

6、L)(fp-back)-next=fp-next;/fp 非首节点elsefreep=fp-next;/fp 为首节点else( 登记余下空白块fp:节点链指针不变,调整块的大小及地址 fp-freesize=fp-freesize-jl;fp-freeaddress=fp-freeaddress+jl;/分配空白块前半部分return; /else 将当前空白块分配给作业/ while (fp!=NULL)/程序运行结果:总结及进一步改善建议:从这次实验中,我更加深入理解了动态分区管理中的最先适应算法, 最佳适应算法等内存分配算法!更进一步深入了解了操作系统中各模 块的运行机制!使我对操作系统的研究更深入,更加有动力,操作系 统中的算法太美妙了!

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 活动策划

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