操作系统实验内存分配

操作系统实验内存分配

ID:38633989

大小:555.50 KB

页数:21页

时间:2019-06-16

操作系统实验内存分配_第1页
操作系统实验内存分配_第2页
操作系统实验内存分配_第3页
操作系统实验内存分配_第4页
操作系统实验内存分配_第5页
资源描述:

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

1、西安邮电大学(计算机学院)课内实验报告实验名称:内存管理专业名称:软件工程班级:学生姓名:学号(8位):指导教师:实验日期:实验五:进程1.实验目的通过深入理解区管理的三种算法,定义相应的数据结构,编写具体代码。充分模拟三种算法的实现过程,并通过对比,分析三种算法的优劣。(1)掌握内存分配FF,BF,WF策略及实现的思路;(2)掌握内存回收过程及实现思路;(3)参考给出的代码思路,实现内存的申请、释放的管理程序,调试运行,总结程序设计中出现的问题并找出原因,写出实验报告。2.实验要求:1)掌握内存分配FF,BF,WF策略及实现的思路;2)掌握内存回收过程

2、及实现思路;3)参考本程序思路,实现内存的申请、释放的管理程序,调试运行,总结程序设计中出现的问题并找出原因,写出实验报告。3.实验过程:创建进程:删除其中几个进程:(默认以ff首次适应算法方式排列)Bf最佳适应算法排列方式:wf最差匹配算法排列方式:3.实验心得:这次实验实验时间比较长,而且实验指导书中对内存的管理讲的很详细,老师上课的时候也有讲的很详细,但是代码比较长,刚开始的时候也是不太懂,但是后面经过和同学一起商讨,明白几种算法的含义:①首次适应算法。在采用空闲分区链作为数据结构时,该算法要求空闲分区链表以地址递增的次序链接。在进行内存分配时,从

3、链首开始顺序查找,直至找到一个能满足进程大小要求的空闲分区为止。然后,再按照进程请求内存的大小,从该分区中划出一块内存空间分配给请求进程,余下的空闲分区仍留在空闲链中。②循环首次适应算法。该算法是由首次适应算法演变而形成的,在为进程分配内存空间时,从上次找到的空闲分区的下一个空闲分区开始查找,直至找到第一个能满足要求的空闲分区,并从中划出一块与请求的大小相等的内存空间分配给进程。③最佳适应算法将空闲分区链表按分区大小由小到大排序,在链表中查找第一个满足要求的分区。④最差匹配算法将空闲分区链表按分区大小由大到小排序,在链表中找到第一个满足要求的空闲分区。实

4、验中没有用到循环首次适应算法,但是对其他三种的描述还是很详细,总的来说,从实验中还是学到了很多。5.程序源代码:#include#include#include#include#definePROCESS_NAME_LEN32//进程名长度#defineMIN_SLICE10//最小碎片的大小#defineDEFAULT_MEM_SIZE1024//内存大小#defineDEFAULT_MEM_START0//起始位置/*内存分配算法*/#defineMA_FF1#define

5、MA_BF2#defineMA_WF3/*描述每一个空闲块的数据结构*/structfree_block_type{intsize;//空闲块大小intstart_addr;//空闲块起始地址structfree_block_type*next;//指向下一个空闲块};/*指向内存中空闲块链表的首指针*/structfree_block_type*free_block=NULL;/*每个进程分配到的内存块的描述*/structallocated_block{intpid;//进程标识符intsize;//进程大小intstart_addr;//进程分配到

6、的内存块的起始地址charprocess_name[PROCESS_NAME_LEN];//进程名structallocated_block*next;//指向下一个进程控制块};/*进程分配内存块链表的首指针*/structallocated_block*allocated_block_head=NULL;intfree_block_count=0;//空闲块个数intmem_size=DEFAULT_MEM_SIZE;//内存大小intcurrent_free_mem_size=0;//当前空闲内存大小intma_algorithm=MA_FF;//

7、当前分配算法staticintpid=0;//初始PIDintflag=0;//设置内存大小标志,表示内存大小是否设置/*函数声明*/structfree_block_type*init_free_block(intmem_size);voiddisplay_menu();intset_mem_size();voidset_algorithm();voidrearrange(intalgorithm);intrearrange_WF();intrearrange_BF();intrearrange_FF();intnew_process();intall

8、ocate_mem(structallocated_block*ab);void

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

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

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