实验五动态分区分配算法的模拟

实验五动态分区分配算法的模拟

ID:35342397

大小:56.34 KB

页数:5页

时间:2019-03-23

实验五动态分区分配算法的模拟_第1页
实验五动态分区分配算法的模拟_第2页
实验五动态分区分配算法的模拟_第3页
实验五动态分区分配算法的模拟_第4页
实验五动态分区分配算法的模拟_第5页
资源描述:

《实验五动态分区分配算法的模拟》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实验五动态分区分配算法的模拟一、实验目的1、加深操作系统内存管理过程的理解2、掌握内存分配算法的基本应用二、实验任务请同学们用C/C++实现一个完整的(可变)动态分区管理器,包插分配,回收,分区碎片整理等。希望同学们实现如下功能:n初始化功能:内存状态设置为初始状态。n分配功能:要求至少使用两种算法,用户可以选择使用。n回收功能:n空闲块的合并:即紧凑功能,用以消除碎片。当做碎片整理时,需要跟踪分配的空间,修改其引用以保证引用的正确性。n显示当前内存的使用状态,•可以使用表格或图形。三、实验指导1.基本思想动态分区是指系统

2、不预先划分固定分区,而是在装入程序的时候划分内存区域,使得为程序分配的分区大小恰好等于该程序的需求量,且分区的个数是动态的。显然动态分区有较大的灵活性,较之固定分区能获得好的内存利用率。2.数据结构动态分区管理可以用两种数据结构实现,一种是己分配区表和空闲区表,也就是用预先定义好的系统空间来存放空间分配信息。另一种也是最常用的就是空闲链表,由于对分区的操作是动态的,所以很难估计数据结构所占用的空间,而且空闲区表会占用宝贵的系统空间,所以提出了空闲链表的概念。其特点是用于管理分区的信息动态生成并和该分区在物理地址上相邻。这样

3、由于可以简单用两个空闲块之间的距离定位已分配空间,不仅节约了系统空间,而且不必维持己分配空间的信息。本实验是要做一个模拟程序,来模拟动态分区算法的分配和回收过程,并不是真正的去分配和回收内存。基本的模拟方法有两种:1、先从内存中申请一块存储区,对这块存储区进行模拟的分配和回收活动。2、不申请存储区,自己定义一块虚拟的存储区,对这块存储区进行模拟的分配和回收活动,分配和回收仅仅是对数据结构的修改而己。程序代码:#includeusingnamespacestd;intFreePartition[100];

4、//空闲分区块数组intFirstPartition[l00];〃首次适应算法数组intCycleFirstPartition[100];//循环首次适应算法数组intBestPartitionf1001;//最佳适应算法数组intWorstPailition[100];//最坏适应算法数组intProcessNeed[100];〃每个作业的大小intPartitionNum,ProcessNum;//分区块数,作业数〃首次适应算法voidFirst(){inti,j;charstr;for(i=0;i

5、Num;i++){FirstPartition[i]=FreePartition[i];}for(i=0;iFirstPartition[j])continue;else{FirstPartition[jJ-=ProcessNeed[i];//找到后把分区大小减去作业的大小?????????str=,A,+i;cout«H作业”vvstrvv”在第n«j+l«n块分区屮H«e

6、ndl;break;1}cout«endl;cout«H分配之后剩余情况:"«endl;???for(i=0;i

7、jCycleFirstPartition[j])//continue;j++;else{CycleFirstPartition[j]-=ProcessNeed[i];str^A'+i;cout«H作业^^«str«^^在第n«j+l«H块分区中"«endl;break;}〃j++;//cout«j«nn;if(j==PartitionNum&&i!=ProcessNum){i=-l;1}}cout«endl;c

8、out«"分配之后剩余情况:M«endl;for(i=0;i

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

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

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