实验5 分区式存储管理.doc

实验5 分区式存储管理.doc

ID:49362704

大小:615.50 KB

页数:10页

时间:2020-02-29

实验5 分区式存储管理.doc_第1页
实验5 分区式存储管理.doc_第2页
实验5 分区式存储管理.doc_第3页
实验5 分区式存储管理.doc_第4页
实验5 分区式存储管理.doc_第5页
资源描述:

《实验5 分区式存储管理.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验五:分区式储器管理一.实验目的模拟实现一个简单的固定(或可变)分区存储管理系统,进一步加深对分区分配方案设计思想的理解。二.实验属性该实验为设计性实验。三.实验仪器设备及器材普通PC386以上微机四.实验要求本实验要求2学时完成。本实验要求完成如下任务:(1)建立相关的数据结构,作业控制块、已分配分区及未分配分区;(2)实现一个分区分配算法,如最先适应分配算法、最优或最坏适应分配算法;(3)实现一个分区回收算法;(4)给定一批作业/进程,选择一个分配或回收算法,实现分区存储的模拟管理;(5)将整个过程可视化显示出来。实验前应复习实验中所涉及的理论知识和算法,针对实验要求完

2、成基本代码编写并完成预习报告、实验中认真调试所编代码并进行必要的测试、记录并分析实验结果。实验后认真书写符合规范格式的实验报告(参见附录A),并要求用正规的实验报告纸和封面装订整齐,按时上交。五.实验提示1、本实验虽然不以前面实验为基础,但建议在其界面中继续增加分区存储管理功能。2、数据结构:分区说明表,用数组实现。3、存储管理:建议采取固定分区法管理内存。编写内存分配、内存回收算法。4、主界面设计:在界面上增加一个内存分配按钮、内存回收按钮、并将就绪队列显示区用做分区说明表的显示。触发内存分配按钮,弹出作业大小输入框,输入后调用内存分配函数,在分区说明表中看到分配的分区。触

3、发内存回收按钮,弹出作业大小输入框,输入后调用内存回收函数,在分区说明表中看到回收分区状态的改变。5、功能测试:从显示出的分区说明表,可查看操作的正确与否。六、主要数据结构设计1.程序中自由链队列的结点类型可描述如下:structfreelink{intlen,address;/*len为分区长度;address为分区起始地址structfreelink/*next;}2.内存占用区用链表描述,其结点类型描述如下:structbusylink{charname;/*作业或进程名name=’S’表示OS占用intlen,address;structbusylink*next;}

4、3.设全程量:structfreelink*free_head=NULL;//自由链队列(带头结点)队首指针structbusylink*busy_head=NULL,//占用区队列队(带头结点)首指针structbusylink*busy_tail=NULL;//占用区队列队尾指针七、主要函数设计1.函数名称:requireMemo(charname,intrequire)功能描述:在空闲区域链中找到第一个满足条件的结点,将其分配掉,如果结点的长度大于require,则剩下的又将作为一个空闲结点插入到空闲区域链中输入参数:charname,intrequire输出参数:无程

5、序流程图:2.函数名称:voidfreeMemo(charname)功能描述:找到要回收的结点,将其释放,并将这个结点重新插入到空闲区域链中去输入参数:charname输出参数:无程序流程图:将w插入到空闲区域链中时前的归并算法的流程图如下:beginu=free_head;v=free_head->next;flag1=1;flag2=1v!=NULL)&&(flag1==1

6、

7、flag2==1((w->address==(v->address+v->len))&&flag1s1=v;u->next=s1->next;w->address=v->address;w->len

8、+=v->len;v=v->next;flag1=0;(((w->address+w->len)==v->address)&&flag2)s2=v;u->next=s2->next;w->len+=v->len;v=v->next;flag2=0;u=v;v=v->nextendelse八、测试数据及运行结果8.1测试数据准备假定系统的内存共640K,初始状态为操作系统本身占用64K。在t1时间之后,有作业A、B、C、D分别请求8K、16K、64K、124K的内存空间;在t2时间之后,作业C完成;在t3时间之后,作业E请求50K的内存空间;在t4时间之后,作业D完成。要求编程

9、序分别输出t1、t2、t3、t4时刻内存的空闲区的状态。8.2运行结果及说明测试目标:运用按最佳适应算法(空闲区归并时的)运行结果:九、实验总结首先,对链表又有进一步的理解,还有就是加深理解内存的分配与回收,分配与回收的策略,并掌握动态分区这种内存管理的具体实施方法。再者,就是在编程中遇到的困难,在编写归并程序首先是自己考虑问题不全面,写的程序就只顾及到一个结点,而没有实现有两个结点的情况,于是后来再加了一条else语句,就没有出现问题。还有一个问题就是将多余的结点free时也出现问题,加了一条if(s

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

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

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