操作系统实验内存分配.doc

操作系统实验内存分配.doc

ID:56629447

大小:510.50 KB

页数:21页

时间:2020-06-30

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

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

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

2、程序思路,实现内存的申请、释放的管理程序,调试运行,总结程序设计中出现的问题并找出原因,写出实验报告。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#defineMA_BF2#defineMA_WF3/*描述每一个空闲块的数据结构*/structfree_

5、block_type{intsize;//空闲块大小intstart_addr;//空闲块起始地址structfree_block_type*next;//指向下一个空闲块};/*指向内存中空闲块链表的首指针*/structfree_block_type*free_block=NULL;/*每个进程分配到的内存块的描述*/structallocated_block{intpid;//进程标识符intsize;//进程大小intstart_addr;//进程分配到的内存块的起始地址charprocess_name[PROCESS_NAME_LEN];//进程名structalloca

6、ted_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;//当前分配算法staticintpid=0;//初始PIDintflag=0;//设置内存大小标志,表示内存大小是否设置/*函数声明*/structfr

7、ee_block_type*init_free_block(intmem_size);voiddisplay_menu();intset_mem_size();..voidset_algorithm();voidrearrange(intalgorithm);intrearrange_WF();intrearrange_BF();intrearrange_FF();intnew_process();intallocate_mem(structallocated_blo

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

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

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