内存管理实验报告

内存管理实验报告

ID:38587683

大小:206.14 KB

页数:16页

时间:2019-06-15

内存管理实验报告_第1页
内存管理实验报告_第2页
内存管理实验报告_第3页
内存管理实验报告_第4页
内存管理实验报告_第5页
资源描述:

《内存管理实验报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、操作系统实验报告专业网络工程班级08102学号姓名课程名称操作系统学年2010-2011学期下课程类别 专业必修■限选□任选□实践□ 实验时间2010年12月9日实验名称实验三:内存管理实验目的和要求1、加深对动态内存分区的理解2、掌握3种常用的分配方式3、编写程序完成实验内容及实验报告实验软硬件要求Pentium

2、

3、

4、450以上CPU64MB以上内存WINDOWSXPVisualC++6.0实验内容、方法和步骤(可附页)1、设计结构体模拟物理内存块2、分别模拟FF、BF、WF三种适应算法动态地创建进程3、能够动态地销毁进程并更新可用表与已分配表4、显示出各个时间段内存块中已分配表

5、与可用表的情况实验结果(可附页)见截图小结这次的内存管理实验让我对动态内存分区管理的3种常用算法,即FF、BF、WF适应算法有了更为深刻的认识,也进一步锻炼了自己解决实际问题的能力。动态内存分区需解决找到可用分配内存块、分配内存、更新可用表与已分配表以及在销毁进程时完成相邻空闲区的合并。实验中遇到的问题的是不能实现进程的动态销毁并刷新可用表与已分配表,后面通过向同学请教,加上不断地编写调试,终于得到了理想的效果。评定成绩:      批阅教师:         年  月  日一、问题概述动态分区的分配与回收主要解决3个问题:(1)对于请求表中的要求内存长度,从可用表或自由链寻找出合

6、适的空闲区分配程序(2)分配空闲区之后,更新可用表或自由链(3)进程或作业释放内存资源时,合并相邻空闲区并刷新可用表动态分区时的分配方法有最先适应法(FF)、最佳适应法(BF)及最坏适应法(WF)三种:FF适应法要求可用表按起始地址递增次序排列,一旦找到大于或等于要求内存长度的可用块时立即分配;BF适应算法要求从小到大的次序组成可用表,每次分配可用表中长度与要求分配的内存块最接近的内存块;WF适应法要求可用表按长度大小递减排列,每次分配可用表中长度最大的内存块。二、设计流程图主要流程:开始初始化内存块功能选择输入1输入2创建进程销毁进程更新可用表与已分配表WF适应法BF适应法FF适

7、应法打印输出内存状态结束图1主流程图FF适应法流程图:开始按内存块的起始地址递增排列可用表空闲表是否为空?是否从可用表队首开始找地址长度大于要求长度的地址块否找到可分配的内存块?是没有可用的内存块进行地址分配,修改已分配表与可用表结束图2FIFO适应法流程图开始BF适应法流程图:按内存块的长度递增排列可用表是空闲表是否为空?否从可用表队首开始找地址长度大于要求长度的地址块否找到可分配的内存块?是没有可用的内存块进行地址分配,修改已分配表与可用表结束图3BF适应法流程图WF适应法流程图:开始按内存块的长度递减排列可用表是空闲表是否为空?否从可用表队首开始找地址长度大于要求长度的地址块

8、否找到可分配的内存块?没有可用的内存块是进行地址分配,修改已分配表与可用表结束图4WF适应法流程图三、数据定义structallocated{intid;//分配的进程号intsize;//地址长度intstart;//起始地址structallocated*next;};structall_block{intsize;//整个内存块长度intselect;//分配方式structfree*f;structallocated*a;};structall_block*all;//内存块头指针structfree*f;structallocated*al;intnumber;//进程个

9、数intpid;四、源程序1、首次适应算法intFF(intsize)/*首次适应算法*/{structfree*free_f1,*free_f2;intmem_size=size;free_f1=all->f;free_f2=free_f1->next;for(free_f1=all->f;free_f1!=NULL;free_f1=free_f1->next){for(free_f2=free_f1->next;free_f2!=NULL;free_f2=free_f2->next)if(free_f2->startstart){free_f1->start

10、=free_f2->start;ree_f1->size=free_f2->size;}}/*用冒泡排序法实现对空闲链表内空闲区的按起始地址的递增排序*/if(mem_size>0)set_pro_mem(mem_size);return1;}2、最佳适应算法intBF(intsize)/*最佳适应算法*/{structfree*free_f1,*free_f2;intmem_size=size;free_f1=all->f;free_f2=free_f1->next

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

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

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