操作系统课程设计-动态分区分配存储管理(共25页).doc
《操作系统课程设计-动态分区分配存储管理(共25页).doc》由会员分享,可在线阅读,更多相关《操作系统课程设计-动态分区分配存储管理(共25页).doc(25页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上操作系统课程设计设计题目动态分区分配存储管理学生姓名号吕 霆学 号指导教师专业班级计算机10-01班 专心-专注-专业第一章 课程设计概述1.1 设计任务:动态分区分配存储管理1.2 设计要求建立描述内存分配状况的数据结构;l建立描述进程的数据结构;l使用两种方式产生进程:(a)自动产生, (b)手工输入;l在屏幕上显示内存的分配状况、每个进程的执行情况;l建立分区的分配与回收算法,支持紧凑算法;l时间的流逝可用下面几种方法模拟:(a)按键盘,每按一次可认为过一个时间单位; (b) 响应WM_TIMER;l将一批进程的执行情况存入磁盘文件,以后可以读出并重放;l支持算
2、法:首次适应算法、循环首次适应算法、最佳适应算法:最坏适应算法。1.3 设计目的 旨在让我们更好的了解动态分区管理方面的知识.第二章 原理及算法描述2.1动态分区分配算法原理首次适应算法 * 算法概述:分配内存时,从链首开始顺序查找,找到满足的空闲分区则划出空间分配,余下的空闲空间仍保留在空闲链表中 * 实现方法:分配时从数组第一个元素开始比较,若符合条件则将该元素减去对应作业的值循环首次适应算法 * 算法概述:由首次适应算法演变,只是每次分配改为由上一次找到的空闲分区开始查找 * 实现方法:在首次适应算法的基础上增加一个值用于记录找到的空闲分区的位置最佳适应算法 * 算法概述:每次为作业分配
3、内存时,总是把能满足要求、又是最小的空闲分区分配给作业 * 实现方法:我们决定每次分配先把空闲分区按从小到大的顺序排列,然后将第一个匹配分区分配给作业最坏适应算法 * 算法概述:每次为作业分配内存时,总是挑选一个最大的空闲分区分割给作业使用 * 实现方法:算法与最佳适应算法几乎相同,仅在排序时把空闲分区表按从大到小的顺序排列,所以未作详细注释回收分区 当进程运行完毕释放内存时,系统根据回收区的首址,从空闲区链(表)中找到相应的插入点,此时可能出现以下四种情况之一; 1)回收区与插入点的前一个空闲分区F1相邻接,此时应将回收区与插入点的前一分区合并,不必为回收区分配新表项,而只需修改其前一分区F
4、1的大小. 2)回收分区与插入点的后一空闲分区F2相邻接,此时也可将两分区合并,形成新的空闲分区,但用回收区的首址作为新空闲区的首址,大小为两者之和. 3)回收区同时与插入点的前,后两个分区邻接,此时将三个分区合并,使用F1的表项和F1的首址,取消F2的表项,大小为三者之和. 4)回收区既不与F1相邻接,又不与F2邻接.这时应为回收区单独建立一新表项,填写回收区的首址和大小,并根据其首址插入到空闲链中的适当位置.紧凑算法 通过移动内存中的作业的位置,以把原来多个分散的小分区拼接成一个大分区的方法. 第三章 开发环境 此程序是本人利用c+语言在vs2012的开发环境中实现的 第四章 程序实现-数
5、据结构#include #include #include using namespace std;ofstream stream;/输出流对象int ary1204;/内存分配状态int ary2203;/空闲分区状态int ary310;/进程分配状态int recycle;/需要回收的盘块序号 int id1;/算法选择号int m;/内存区数int n;/空闲区数int q;/进程数int r=0;/循环首次适应算法:对应的这次查找到的空闲分区序号/打印输出函数void vision() int i;int j;if(id1=1)stream.open(first_fit.txt, i
6、os:app);if(id1=2)stream.open(nextfirst_fit.txt, ios:app);if(id1=3)stream.open(best_fit.txt,ios:app);if(id1=4)stream.open(worst_fit.txt, ios:app);if(id1=5)stream.open(compact.txt,ios:app);if(id1=6)stream.open(huishou.txt,ios:app);cout-内存分配状态-endl;cout分区号 大小/KB 始址/KB 状态endl;stream-内存分配状态-endl;stream分区
7、号 大小/KB 始址/KB 状态endl;for(j=0;jm;j+)cout ary1j0 ;streamary1j0 ;cout ary1j1 ;streamary1j1 ;cout ary1j2 ;streamary1j2 ;if(ary1j3=2)cout已分配;stream已分配;elsecout未分配;stream未分配;cout endl;streamendl;cout endl;cout-空闲分区链-endl;cout分区号 大小/KB 起址/KBendl;stream-空闲分区链-endl;stream分区号 大小/KB 起址/KBendl;for(i=0;in;i+)cou
8、tary2i0 ;streamary2i0 ;coutary2i1 ;streamary2i1 ;coutary2i2;streamary2i2;coutendl;streamendl;cout-endl;stream-endl;coutendl;stream.close();/作业信息的自动产生void create_pro()int i;for(i=0;iq;i+)ary3i=rand()%100;if(ary3i=0)i-;ary30=42;ary31=86;cout产生q个随机进程endl;cout大小分别是:;for(i=0;iq;i+)coutary3i ;cout endl;/作
9、业的手动生成void create_zuoye()int j;int choice2;int id3=rand()%10;m=id3;/内存区数量 coutchoice2;q=choice2;cout输入想创建的作业请求大小endl;for(int i=0;ij;ary3i=j;cout你创建了choice2个进程 ;for(int i=0;ichoice2;i+)coutary3i ;coutendl;/内存信息的自动产生void create_apply()int i;for (i=0;im;i+)ary1i0=i+1;ary1i1=rand()%100;if(i=0)ary1i2=0;e
10、lseary1i2=ary1i-12+ary1i-11;ary1i3=rand()%3;/cout iendl;if(ary1i1=0)i-;int k=0;/空闲区数量for (i=0;im;i+)if(ary1i3!=2)ary2k0=ary1i0;ary2k1=ary1i1;ary2k2=ary1i2;k+;n=k;/空闲块数量/内存信息的手动生成int create_fenqu()int k,x,y,o=0; int a=0;coutk;cout输入k个内存分区块 大小endl;for(int i=0;ix;ary1i1=x;/大小cout输入内存块的分配状态endl;for(int
11、i=0;iy;if(y=2)n+;ary1i3=y;/状态ary102=0;ary112=ary101;for(int i=2;ik;i+)ary1i2=ary1i-12+ary1i-11;/起始地址m=k; for (int i=0;ik;i+)if(ary1i3!=2)ary2a0=ary1i0;ary2a1=ary1i1;ary2a2=ary1i2;a+;n=a;return m,n;/首次适应算法void first_fit() vision();int i;int j;int k;int l;int d;/用来保存第k个的值int id2=0;for(i=0;iq;i+)/为每个进程
12、分配空间for(j=0;j=ary3i)/进程占用空间小于等于其中一个空闲区的大小coutary3i与ary2j1相匹配endl;stream.open(first_fit.txt, ios:app);streamary3i与ary2j1相匹配endl;stream.close(); if(ary2j1=ary3i)/进程占用空间等于其中一个空闲区块大小 ary1ary2j0-13=2; for(k=j+1;kary2j0+1;k-) ary1k-10=ary1k-20+1; ary1k-11=ary1k-21; ary1k-12=ary1k-22; ary1k-13=ary1k-23; l=
13、ary2j0; ary1l0=l+1; ary1l1=d-ary3i; ary1l2=ary1l-11+ary1l-12; ary1l3=0; k=0;for(id2=0;id2m;id2+)if(ary1id23!=2)ary2k0=ary1id20;ary2k1=ary1id21;ary2k2=ary1id22;k+; n=k; break;elsecoutary3i与ary2j1不匹配endl;stream.open(first_fit.txt, ios:app);streamary3i与ary2j1不匹配endl;stream.close(); vision(); /首次循环适应算法v
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 课程设计 动态 分区 分配 存储 管理 25
限制150内