操作系统原理-内存分配与回收

操作系统原理-内存分配与回收

ID:38496906

大小:172.85 KB

页数:18页

时间:2019-06-13

操作系统原理-内存分配与回收_第1页
操作系统原理-内存分配与回收_第2页
操作系统原理-内存分配与回收_第3页
操作系统原理-内存分配与回收_第4页
操作系统原理-内存分配与回收_第5页
资源描述:

《操作系统原理-内存分配与回收》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、内存的动态存储管理一、实验内容编写程序实现动态分区存储管理方式的主存分配与回收。具体内容包括:首先确定主存空间分配表;然后采用最先适应算法完成主存空间的分配与回收;最后编写主函数对所做工作进行测试二、实验原理模拟存储管理中内存空间的管理和分配内存空间的管理分为固定分区管理方式,可变分区管理方式,页式存储管理,段式存储管理。题目:模拟内存分配与回收三、实验步骤(或过程)在Microsoft Visual C++ 6.0环境下运行1.设计一个空闲分区表,空闲分区表通过空闲分区链表来管理,在进行内存分配时,系统优先使用空闲分区低端的空间。2.设计一个内存分区表,可用链表管理,用以表示当前以内存

2、使用情况。3.设计一个进程申请队列以及进程完成后的释放顺序,实现主存的分配和回收。4.要求每次分配和回收后把空闲分区的变化情况以及各进程的申请、释放情况以及各进程的申请、释放情况以图形方式显示、打印出来。最佳适应算法:该算法总是把满足要求、又是最小的空闲区分配给作业。检查空闲区说明表是否有满足作业要求的空闲区,也分为三种情况:大于,等于,小于。若检查到有“等于”的情况,就可以直接分配,若没有,则继续检查是否有“大于”的情况代码实现如下:#include#include#include#definen64//定义内存的大小inta[

3、n],count=0;//数组a用来保存内存使用状况1为已分配0为未分配,count用来记name数组中元素个数charname[n];//已分配内存的名称(字符类型)typedefstructlinknode{charpid;intstart;intlength;structlinknode*left,*right;}de_node;//进程节点结构体定义//head1表示未分配内存队列头指针,head2便是已分配进程队列头指针de_node*head1,*head2=NULL;structlinknode*creat()//创建一个进程节点{intlen,flag1=1;//用于表示

4、进程是否可以创建charid;structlinknode*p;p=(de_node*)malloc(sizeof(de_node));//试图在系统内存中开辟空间创建一个进程if(p==NULL)//p为空,说明系统没有可用内存用于创建此模拟进程{printf("系统没有足够的内存可供使用!");//输出return(NULL);//返回空指针}printf("请输入进程id(字符类型)和长度:");//为进程输入id和分配的长度scanf("%c%d",&id,&len);fflush(stdin);//清除输入缓存if((id>='a'&&id<='z'

5、

6、id>='A'&&i

7、d<='Z')&&(len>0)){for(inti=0;ipid=id;//idp->start=0;//初始开始内

8、存位置,在以后会修改p->length=len;//长度p->left=NULL;//左指针p->right=NULL;//右指针name[count++]=id;//将id存入数组,count自加return(p);}//返回创建的进程的地址}else{printf("输入进程格式有误");free(p);return(NULL);}}//分配内存空间voiddistribute(de_node*p){de_node*q=head1,*temp;intflag=0;do{//do_while循法//判断当前指向的内存空间的长度是否满足p所申请的长度,大于就分配if(q->lengt

9、h>=p->length){p->start=q->start;//把进程的内存开始地址指向内存的可用开始地址处q->start+=p->length;//可用地址起始改变q->length-=p->length;//可用内存长度修改for(inti=p->start;istart+p->length;i++)//将已分配的内存空间全部置1a[i]=1;flag=1;//表示内存可分配//队列不止一个进程,第一个满足条件,并

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。