1 / 10
文档名称:

首次适应算法实验报告模板.docx

格式:docx   大小:211KB   页数:10页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

首次适应算法实验报告模板.docx

上传人:书犹药也 2020/1/15 文件大小:211 KB

下载得到文件列表

首次适应算法实验报告模板.docx

文档介绍

文档介绍:首次适应算法实验报告操作操作系统大作业题目:首次适应算法分配内存学号:学生姓名:张鲁云班级:计科121首次适应算法分配内存问题描述在内存分配中,动态分区是根据实际的进程需求,动态地为之分配空间。而首次适应算法分配时从表头指针开始查找可利用空间表,将找到的第一个大小不小于“请求”的空闲块的一部分分配给用户。可利用空间表本身既不按节点的初始地址有序,也不按节点的大小有序。用户释放内存,回收时只是将空闲块插入在链表的表头即可,此算法比较节省时间。运行环境算法思想。首次适应算法要求空闲分区链以地址递增的次序链接。在分配内存时,从链首开始查找,直到找到一个大小能满足要求的空闲分区为止;然后按照作业大小,从该分区中划出一块内存空间分配给请求者,余下的空闲区仍留在空闲链中。若从链首到链尾都不能找到一个能满足要求的分区,则此次分配失败。实验目的在计算机系统中,为了提高内存区的利用率,必须给电脑内存区进行合理的分配。本实验通过对内存区分配方法首次适应算法的使用,来了解内存分配的模式。首次适应算法分配内存算法概要结构体Typedefstructfreearea//定义一个空闲区说明表结构{longsize;//分区大小 longaddress;//分区地址 intstate;//状态}ElemType;//线性表的双向链表存储结构TypedefstructDuLNode{ElemTypedata; structDuLNode*prior;//前趋指针 structDuLNode*next;//后继指针}DuLNode,*DuLinkList;StatusInitblock(intMAX_length)//开创带头结点的内存空间链表{ block_first=(DuLinkList)malloc(sizeof(DuLNode));block_last=(DuLinkList)malloc(sizeof(DuLNode));block_first->prior=NULL;//头结点的前驱指针指向空block_first->next=block_last;//头结点的后继指针指向尾结点block_last->prior=block_first;//尾结点的前驱指针指向头结点block_last->next=NULL;//尾结点的后继指针指向空block_last->=0;//尾结点的地址是0block_last->=MAX_length;//分区大小是最大分区block_last->=Free;//状态是空returnOK;}(2)主要函数说明:voidalloc();进行内存分配的功能函数。Statusfree(intflag)将地址为flag的分区的内存回收。StatusFirst_fit(intrequest)创建进程空间的子函数;其中,参数request表示空闲分区链的链首指针;要配合函数alloc()使用。voidshow()查看内存中的分区情况。输入内存空间大小流程图开辟内存空间内存分配情况显示输入操作序列号其它数输入有误,请重试!1Alloc输入分配区间大小3退出FFirst_fitrequest<0||request==0FTT分配成功!内存不足,分配失败!配大小不合适,请重试!输入回收区号分区回收2free(flag)代码实现#include<>#inclu