动态分区分配方式首次适应算法

动态分区分配方式首次适应算法

ID:13130904

大小:274.50 KB

页数:35页

时间:2018-07-20

动态分区分配方式首次适应算法_第1页
动态分区分配方式首次适应算法_第2页
动态分区分配方式首次适应算法_第3页
动态分区分配方式首次适应算法_第4页
动态分区分配方式首次适应算法_第5页
资源描述:

《动态分区分配方式首次适应算法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、计算机科学专业课程设计任务书学生姓名专业班级学号题目动态分区分配方式的模拟1课题性质其它课题来源自拟课题指导教师马宏琳同组姓名无主要内容1)用C语言实现采用首次适应算法的动态分区分配过程alloc()和回收过程free()。其中,空闲分区通过空闲分区链表来管理,在进行内存分配时,系统优先使用空闲区低端的空间。2)假设初始状态如下,可用的内存空间为640KB,并有下列的请求序列;作业1申请130KB;作业2申请60KB;作业3申请100KB;作业2释放60KB;作业4申请200KB;作业3释放100KB;作业1释放130KB;作业5申请1

2、40KB;作业6申请60KB;作业7申请50KB;作业6释放60KB请采用首次适应算法进行内存块的分配和回收,同时显示内存块分配和回收后空闲内存分区链的情况。任务要求了解动态分区分配中使用的数据结构和分配算法,并进一步加深对动态分区存储管理方式及其实现过程的理解。参考文献任满杰等《操作系统原理实用教程》电子工业出版社2006汤子瀛《计算机操作系统》(修订版)西安电子科技大学出版社2001张尧学史美林《计算机操作系统教程》实验指导清华大学出版社2000罗宇等《操作系统课程设计》机械工业出版社200519审查意见指导教师签字:教研室主任签字

3、:年月日1需求分析了解动态分区分配中使用的数据结构和分配算法,并进一步加深对动态分区存储管理方式及其实现过程的理解。采用首次适应算法的动态分区分配过程alloc()和回收过程free()。空闲分区通过空闲分区链表来管理,在进行内存分配时,系统优先使用空闲区低端的空间,即每次分配内存空间是总是从低址部分开始进行循环,找到第一个合适的空间,便按作业所需分配的大小分配给作业。作业完成时,需要释放作业所占空间,此时要考虑到四种情况:(1)回收区与插入点的前一个空闲分区相邻接。此时将二者合并,修改前一分区的大小。(2)回收区与插入点的后一空闲分区

4、相邻接,将二者合并,用回收区的首址作为新空闲区的首址。(3)回收区同时与插入点的前后两个空闲分区相邻接,三者合并,使用前一空闲分区的表项和首址。(4)回收区单独存在。由于该算法的实现相对简单,仅由我一人完成。2概要设计typedefstructfreearea{}ElemType;定义一个空闲区说明表结构,每申请一个作业,改作业便具有此结构体typedefstructDuLNode{}DuLNode,*DuLinkList;定义一个双向链表StatusInitblock(){}开创带头结点的内存空间链表,通过双向链表把申请的作业链接起来

5、,作业的插入和删除,和链表中节点的插入和删除类似。19双向链表如图1所示StatusFirst_fit(intID,intrequest){}传入作业名及申请量采用首次适应算法实现动态内存分区分配的模拟,初始态640KB,只是一个虚态,每申请成功一个作业,便相应的640KB做相应的减少,同过双向链表模拟主存的分配情况。内存分配流程如图2所示Statusfree(intID)传过来需要回收的分区号实现分区的回收,对不同情况采取不同的处理19voidshow()显示当前主存的分配情况3运行环境硬件环境:Cpu:P2.4GHDRR:0.98G

6、BWINDOWSXP。软件环境:在VC++6.0下编译、调试。4开发工具和编程语言开发工具:Microsortvisualc++6.0中文版编程语言:c++5详细设计1)空闲区数据结构typedefstructfreearea//定义一个空闲区说明表结构{intID;longsize;longaddress;intstate;}ElemType;2)双向链表数据结构typedefstructDuLNode//双向链表结构体{ElemTypedata;structDuLNode*prior;//前趋指针structDuLNode*next

7、;//后继指针}DuLNode,*DuLinkList;3)创建内存空间链表StatusInitblock()//开创带头结点的内存空间链表{block_first=(DuLinkList)malloc(sizeof(DuLNode));block_last=(DuLinkList)malloc(sizeof(DuLNode));19block_first->prior=NULL;block_first->next=block_last;block_last->prior=block_first;block_last->next=NUL

8、L;block_last->data.address=0;block_last->data.size=MAX_length;block_last->data.ID=0;block_last->data.st

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

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

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