操作系统-首次适应算法实验报告.docx

操作系统-首次适应算法实验报告.docx

ID:57440362

大小:55.60 KB

页数:16页

时间:2020-08-16

操作系统-首次适应算法实验报告.docx_第1页
操作系统-首次适应算法实验报告.docx_第2页
操作系统-首次适应算法实验报告.docx_第3页
操作系统-首次适应算法实验报告.docx_第4页
操作系统-首次适应算法实验报告.docx_第5页
资源描述:

《操作系统-首次适应算法实验报告.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、操作系统实验报告实验题目:首次适应算法学生学号:学生姓名:专业年级:开课学期:指导教师:1、实验名:首次适应算法2、实验目的采用可变式分区管理,使用首次适应算法实现内存分配与回收。FF算法要求空闲分区链以地址递增的次序连接。在分配内存时,从链首开始顺序查找,直至找到一个大小能满足要求的空闲分区为止;然后再按照作业的大小,从该分区中划出一块内存空间给请求者,余下的空闲分区仍留在空闲链中。若从链首直至链尾都不能找到一个满足要求的分区,则此次内存分配失败,返回。该算法倾向于优先利用内存中的低址部分的空闲分区,从而保留了高址部分的

2、大空闲区。这给为以后到达的大作业分配大的内存空间创造了条件。3、设计思想数据结构为:(1)进程数量:number(2)内存块大小:neicun(3)已使用分区数目:fqNum(4)开始位置:start(5)结束位置:end(6)进程名称:name(7)进程大小:capactity(8)分区使用标记flag设计思路:(1)程序首先定义了进程数目number=100,以及对内存块大小和分区数目进行了初始化。(2)从main函数开始,并分别定义了功能菜单menu()函数,内存初始化init-neicun()函数,内存分配fenp

3、ei()函数,首次适应算法first-fit()函数,内存回收memory-recovery()函数,进程显示showit()函数,以及退出系统exit()函数,这些算法函数对内存的查看、分配和回收等进行了计算。1、主要功能模块(1)main()函数(2)menu()函数(3)init-neicun()函数(4)fenpei()函数(5)first-fit()函数(6)memory-recovery()函数(7)showit()函数(8)exit()函数2、模块的输入输出(1)main()函数:整型输入,调用两个函数,返回

4、0;(2)menu()函数:功能菜单,输入对功能菜单的选择select(1-4),它们分别是1添加进程,2回收内存,3查看内存分配,4退出。并通过switch方法实现对各函数的调用。(1)init-neicun()函数:输入内存大小,并对第i个进程的名称name、开始位置start、结束位置end、大小capactity以及标记位flag等进行了初始化。(2)fenpei()函数:为内存分配内存,输入所需添加进程的名称和大小,并调用first-fit()算法。(3)first-fit()函数:当某一分区不在使用时,如果内存

5、空间大于进程长度,则分配内存,并输出该内存的名称name和大小size,并通过检验标记位flag是否等于1来输出是否能为该进程成功分配内存。(4)memory-recovery()函数:回收之前分配给进程的内存,输入需回收内存的进程名称,标记位flag表示回收是否成功,0代表失败,1代表成功,根据flag的值输出内存是否回收成功。此外,将连续的已回收的内存区合并。(5)showit()函数:显示进程情况,即输出各个进程的名称,开始位置,结束位置,进程大小。并根据flag的值来判断一进程是已使用、未使用还是尾部。(6)exi

6、t()函数:整型输入,返回0;通过exit(0)方法来退出程序。1、程序流程图开始main函数init-neicun()函数menu()函数exit()函数showit()函数Memory_recovery()函数fenpei()函数first_fit()函数结束7、实验截图8、源代码#include#include#include#definenumber100//进程数量intneicun=200;//内存块默认大小intfqNum=1;//已使用分区数目,进程

7、数目=fqNum-1//结构类型structfqinfo//分区信息{intstart;//开始位置intend;//结束位置charname;//进程名称intcapactity;//进程大小或者分区块大小intflag;//分区使用标记,0:未使用1:已使用2:回收或者合并的分区3:尾部}fqlist[number];//fqlist[]分区列表//函数定义intmenu();//功能菜单intinit_neicun();//初始化内存大小intfenpei();//为进程分配内存intfirst_fit(charna

8、me,intsize);//首次适应算法intMemory_recovery();//内存回收intshowit();//显示进程intexit();//退出系统//功能菜单menuintmenu(){intselect;printf("-------------------------------

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

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

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