操作系统 课 程 设 计

操作系统 课 程 设 计

ID:26002278

大小:386.50 KB

页数:18页

时间:2018-11-24

操作系统 课  程  设  计_第1页
操作系统 课  程  设  计_第2页
操作系统 课  程  设  计_第3页
操作系统 课  程  设  计_第4页
操作系统 课  程  设  计_第5页
资源描述:

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

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

2、作业1申请130KB;作业2申请60KB;作业3申请100KB;作业2释放60KB;作业4申请200KB;作业3释放100KB;作业1释放130KB;作业5申请140KB;作业6申请60KB;作业7申请50KB;作业6释放60KB请采用采用最佳适应算法进行内存块的分配和回收,同时显示内存块分配和回收后空闲内存分区链的情况。任务要求了解动态分区分配中使用的数据结构和分配算法,并进一步加深对动态分区存储管理方式及其实现过程的理解。参考文献任满杰等《操作系统原理实用教程》电子工业出版社2006汤子瀛《计算机操作系统》(修订版)西安电子科技大学出版社2001张尧学史美林《计算机操作系统教程》实验指导清

3、华大学出版社2000罗宇等《操作系统课程设计》机械工业出版社2005审查意见指导教师签字:教研室主任签字:年月日说明:本表由指导教师填写,由教研室主任审核后下达给选题学生,装订在设计(论文)首页171需求分析用C语言实现采用采用最佳适应算法的动态分区分配过程alloc()和回收过程free()。其中,空闲分区通过空闲分区链表来管理,在进行内存分配时,系统优先使用空闲区低端的空间。用户可直接通过提示,进行创建作业,以及申请的内存的大小,也可以通过选择进行释放内存的操作,通过输入查看空闲分区链表的状态。2概要设计1.定义分区存储器的结构:typedefstructnode{intid;//编号in

4、tadr;//分区首地址intsize;//分区大小structnode*next;//指向下一个分区的指针}Node;2.本程序包含7个模块:(1)主函数模块:调用菜单函数voidmenu();(2)voidmenu():菜单函数模块{1.输入命令;2.执行操作;3.输出。}(3)intcheck():用于检查指定的释放块(由用户键入)的合法性(4)voidinit():初始化,生成一个带头节点的空闲队列指针(5)Node*assignment2():实现最佳适应算法的分配(6)voidacceptment2(intaddress,intsiz,intrd):实现最佳适应算法的回收(7)vo

5、idprint():输出空闲区队列信息173运行环境软件环境:VC6.0WindowsXP硬件环境:计算机4开发工具和编程语言开发工具:VC6.0编程语言:C语言5详细设计1定义头文件#include#include#include2.定义内存大小#defineMAX_SIZE6403.定义分区存储器的结构typedefstructnode//定义分区描述器的结构{intid;//编号intadr;//分区首地址intsize;//分区大小structnode*next;//指向下一个分区的指针}Node;4.检查指定的释放块(由用户键

6、入)的合法性模块:intcheck(intadd,intsiz,charc){Node*p,*head;intcheck=1;if(add<0

7、

8、siz<0)check=0;/*地址和大小不能为负*/17head=head2;p=head->next;while((p!=NULL)&&check)/*地址不能和空闲区表中结点出现重叠*/if(((addadr)&&(add+siz>p->adr))

9、

10、((add>=p->adr)&&(addadr+p->size)))check=0;elsep=p->next;if(check==0)printf("t输入释放区地址或大小有错

11、误!!!");returncheck;/*返回检查结果*/}5.生成一个带头节点的空闲队列指针模块voidinit(){Node*q;head2=(Node*)malloc(sizeof(Node));q=(Node*)malloc(sizeof(Node));head2->next=q;q->size=MAX_SIZE;q->adr=0;q->next=NULL;q->id=0;}6.最佳适

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

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

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