实验三 存储器管理.docx
《实验三 存储器管理.docx》由会员分享,可在线阅读,更多相关《实验三 存储器管理.docx(7页珍藏版)》请在优知文库上搜索。
1、实验三存储器管理一、实验目的1 .了解内存管理的基本功能2 .掌握内存管理中的几种内存分配与回收算法3 .掌握可变分区算法中空闲分区的合并方法二、实验内容与要求设计一个存储器管理模拟系统并调试运行。要求采用一种常用的存储器分配算法(如:最正确适应算法、最坏适应算法),设计一个存储器管理模拟系统。允许进展屡次的分配和释放,并可向用户反响分配和释放情况及当前内存的情况;采用“命令菜单选择和键盘命令输入的会话方式,根据输入请求调用分配模块,或回收模块,或内存查询模块,或最终退出系统。三、实验参考下面是采用的是首次适应分配算法的一个例如。根据指针freep查找自由链,当找到第一块可满足分配请求的空闲区
2、时便分配之。当某空闲区被分配后的剩余空闲区空间大于规定的碎片最小容量min时,那么形成一个较小的空闲区留在自由链中。回收时,根据MAT将指定分区链入自由链。假设该分区有前邻或后邻空闲分区,那么将他们拼接成一块加大的空闲区。当某个分配请求不能被满足,但此时系统中所有碎片总量满足分配请求的容量时,系统立即进入内存“紧凑以消除碎片。即将各作业占用区集中下移到用户内存区的下部(高地址局部),形成一片连接的作业区,而在用户内存区的上部形成一块较大的空闲区。然后再进展分配。本系统的主要程序模块包括:分配模块ffallocation,回收模块ffcolection,紧凑模块coalesce及命令处理模块me
3、nu。Menu用以模拟系统的输入,采用“命令菜单选择和键盘命令输入的会话方式,根据输入请求调用分配模块,或回收模块,或内存查询模块,或最终退出系统。用到的数据构造如下:(1)自由链与区头。内存空闲区采用自由链构造。链首由freep指向,链中各个空闲区按地址递增次序排列。初启时整个用户内存区为一个空闲区。在每个空闲区首部设置一个区头(freearca)构造。区头信息包括:size空闲区大小(以字节计),包括区头所占空间;next前向链指针,指向下一个空闲区;back反向链指针,指向上一个空闲区;address本空闲区首地址。(2)内存分配表MAT0系统设置一个MAT,每个运行作业都在MAT中占有
4、一个表目,回收分区时去除相应表目。表目信息包括:name用户作业名;length作业区大小;addr作业区首地址;例如代码#include#include初始化#defineTOTA1.5000#defineSETADDRES#defineMIN1001-#defineMAX10现实命令菜单typedefstructfreearea(intaddress;intsize;读命令显示不能分配showyoureturn(U);/*分配模块*读键盘fngpei(intjl,charjn)freeptrfp;endjobptrjp,jpl,jp2;jp2=(jobptr)malloc(si:if(to
5、talfreesizenext;else(jobnumber=jobnumber+1;totalfree=totalfree-jl;jp2-name=jn;jp2-length=jl;jp2-address=freep-address;if(jobp=NU1.1.)(jp2-next=NU1.1.;jp2-back=NU1.1.;jobp=jp2;)elsejp=jobp;while(jp!=NU1.1.&(jp2-addressaddress)(jpi=jp;jp=jp-next;)jp2-next=jp;if(jp=NU1.1.)(jp2-back=jpl;jpl-nextjp2;)els
6、ejp2-back=jp-back;if(jp-back!=NU1.1.)jpl-next=jp2;elsejobp=jp2;jp-back=Jp2;)if(fp-size-jl)next!=NU1.1.)fp-next-back=fp-back;if(fp-back!=NU1.1.)fp-back-next=fp-next;elsefreep=fp-next;*return();*/)elsefp-size=fp-size-jl;fp-address=fp-address+jl;return(2);if(totalfree=jl)retum(0);/*显示模块*/xianshi()jbptr
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验三 存储器管理 实验 存储器 管理
