




免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机工程学院实验报告课程名称: 网络操作系统班级:实验成绩:指导教师: 姓名:实验项目名称: 短作业优先调度算法学号2009811004上机实践日期:实验项目编号: 2组号:上机实践时间: 学时一、 目的(本次实验所涉及并要求掌握的知识点) 1实现短作业优先算法。 2了解作业控制块的作用,以及作业控制块的内容和组织方式。二、实验内容与设计思想(设计思路、主要数据结构、主要代码结构、主要代码段分析、电路图) 实验内容: 1为每个进入系统的作业建立档案以记录和作业相关的信息,例如作业名(以自己的姓名拼音缩写编号,例如,张三同学编写程序所用的作业名是zs1,zs2.),作业服务时间,作业进入系统的时间,作业开始执行时间,作业完成时间,作业周转时间,平均周转时间,作业信息在存储器中的位置,指向下一个作业控制块的指针等信息。 2将系统中等待作业调度的JCB组织成一个队列(后备队列)。当进行作业调度时,从后备队列中查找选择一个执行时间最短的作业将它调入内存运行。 3进行作业调度时,计算出每个作业的开始执行时间,完成时间,周转时间和平均周转时间,利用短作业优先算法进行作业调度,并按照完成时间由小到大的顺序显示出来。 三、实验使用环境(本次实验所使用的平台和相关软件)Linux虚拟机 VC+四、实验步骤和调试过程(实验步骤、测试数据设计、测试结果分析) 实验代码:#include#include#include struct task char name4; float servicetime; /作业服务时间 float gosystemtime; /作业进入系统的时间 float starttime; /作业开始执行时间 float finishtime; /作业完成时间 float arounttime; /作业周转时间 struct task* next; /指向下一个作业控制块的指针; int r; /作业数 struct task *head,*p1,*p2; struct task* createtask(); void taskschedule(struct task * s); void main() struct task *t; t=createtask(); taskschedule(t);struct task* createtask() /创建作业链int n=0; p1=p2=(struct task *)malloc(sizeof(struct task); /*开辟一个新单元*/ head=NULL; printf(Please input the nuber of task:n); scanf(%d,&r); /输入作业数for(int i=0;iname); /输入作业名 printf( Please input the service time :n); scanf(%f,&p1- servicetime); /输入作业服务时间 printf( Please input the time of task into system :n); scanf(%f,&p1-gosystemtime); /输入作业进入系统时间 n=n+1; /*结点个数加1*/ if(n=1) head=p1; /*是第一个结点, 置头指针*/ else p2-next=p1; /*非首结点, 将新结点插入到链表尾*/ p2=p1; /*设置新的尾结点*/ p1=(struct task *)malloc(sizeof(struct task); p2-next=NULL; return(head);void taskschedule(struct task * s) /作业调度 float servicetim; /用于保存最小服务时间 float gosystemtim; /用于保存最小进入系统时间 float endtime=0; /用语标记作业开始的时间点 int flage; /标记时间点内是否有任务 float avaragetime=0; struct task * head,* percur,* pres,*l,*t; head=s; struct task *p; p=head; float e=p-gosystemtime; /用于暂时保存最小进入系统时间 for(;p-next!=NULL;) /找出最小进入系统时间 if(p-gosystemtimegosystemtime;p=p-next; endtime=e; printf(=n); printf( 作业名 运行时间 进入系统时间 开始时间 完成时间 周转时间n); int i=0; for(i;ir;i+) t=l=head; pres=percur=l; servicetim=100000000; flage=0; int j=i;int k=i; for(j;jgosystemtimeservicetimeservicetime; pres=l; percur=t; if(l!=head) /l是t的next t=t-next; l=l-next; if(flage=0) /该时间点没有作业任务 t=l=head; pres=percur=l; gosystemtim=l-gosystemtime; servicetim=l-servicetime; for(k;knext; if(l-gosystemtimegosystemtime=gosystemtim&l-servicetimegosystemtime;servicetim=l-servicetime; pres=l; percur=t; t=t-next; endtime=gosystemtim; pres-starttime=endtime; pres-finishtime= pres-starttime+pres-servicetime; pres-arounttime=pres-finishtime-pres-gosystemtime; avaragetime=avaragetime+pres-arounttime; printf( %s %f %f %f %f %fn,pres-name,pres-servicetime, pres-gosystemtime, pres-starttime, pres-finishtime, pres-arounttime); endtime=endtime+pres-servicetime; if(pres=head) head=pres-next; if(pres-next=NULL) percur-next=NULL; else percur-next=pres-next; avaragetime=avaragetime/r; printf(The avaragetime of aroundtime: %f n, avaragetime); 五、实验小结(实验中遇到的问题及解决过程、实验中产生的错误及原因分析、实验体会和收获) 这个实验涉及的算法比较复杂,觉得最头痛的是作业链表中的指针的运用,要很小心,一个小的差错就会全盘错。 在实验的开始,就困恼算法,静下来大概整理下整体思路,将根据特定时间点内是否有任务在等待,将调度分成两大部分:一,有任务等待,则选出服务时间最短的任务执行;二;没有任务,则选出最早到的任务,若多个任务一起到,则选出服务时间最短的作业执行。如此,就需要2个循环,外循环循环执行一个任务,内循环则,找出短作业优先调度算法下的作业。 在实验的过程中出了许多问题如:循环次数没摸准,输入的作业,有些跳过没有出现在结果中;开始时间很混乱,没有达到实际的结果;当某时间点没有作业的时候,程序就停止了。 通过分析和调试程序,逐渐找出问题,最后到达能完成短作业优先调度算
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 上市公司投资部管理制度
- 富阳区医院保洁管理制度
- 景区物资运输管理制度
- 外加剂生产人员管理制度
- 县关于快递市场管理制度
- 公司招投标代理管理制度
- 月季养护全年管理制度
- 皮炎湿疹的诊断与治疗讲课件
- 巷道掘进基础知识 巷道断面内水沟和管线布置
- 高中思想政治课教学法探析
- 2024年全国导游资格考试《导游业务》考试真题及参考答案
- 2024年中国技工院校在校学生人数、招生人数、毕业生人数及发展趋势分析
- 2025年中国配音行业市场现状、发展概况、未来前景分析报告
- 苏炳添人物介绍运动体育介绍人物经历流线历程动画精美课件
- 2024年下半年南昌财政局事业单位招考易考易错模拟试题(共500题)试卷后附参考答案
- 《棉铃虫的习性》课件
- 售后延保合同范例
- 大学生创新创业教育(2023秋学期)学习通超星期末考试答案章节答案2024年
- 通信工程建设标准强制性条文汇编(2023版)-定额质监中心
- 中建2024装配式建筑+铝模一体化施工技术手册
- 2024秋国开《职场写作》形考作业1-4参考答案
评论
0/150
提交评论