作业调度算法报告Word格式文档下载.docx
《作业调度算法报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《作业调度算法报告Word格式文档下载.docx(7页珍藏版)》请在冰豆网上搜索。
X
专业班级:
12计算机2
指导教师:
X
沈阳城市学院机械电子工程学院
目录
一、项目背景1
二、算法描述1
三、总体设计1
四、详细设计2
五、实现与测试5
六、总结6
七、参考文献7
一、项目背景
作业调度又称宏观调度,其主要任务是对磁盘设备上大量的后备作业,以一定的规则进行挑选,给选中的作业分配内存等必须的资源,建立其相应的进程,使其投入运行。
作业调度既要求我们用程序设计语言编写和调试一个简化的作业调度程序,模拟实现的调度算法包括:
先来先服务调度算法,短作业优先服务调度算法,响应比高者优先调度算法等,并对这些算法的性能做比较和评价。
以加深学生对作业、作业调度以及作业调度各种算法的理解。
二、算法描述
这个模块是设计作业结构:
包括作业号,进入时间,估计运行时间,开始时间,结束时间,周转时间,带权周转时间等。
次程序引用三种算法实现
voidFCFS():
先来先服务这个模块模拟实现算法先来先服务(FCFS)是每次调度都从后备作业队列中选择一个或多个最先进入该队列的作业,将它们调入内存,为它们分配资源、创建进程,然后放入就绪队列
voidSJF()短作业优先:
这个模块模拟实现短作业优先,在调度时从后备队列中选择一个或多个估计运行时间最短的作业,将处理机分配给他,使其执行直至完成。
voidHRN()最高响应比优先:
这个模块模拟实现优先处理并处理响应比最高的作业。
要通过一个循环找到一个响应比响应比较高的作业。
作业的响应比是等待时间+运行时间/运行时间
三、总体设计
作业调度算法采用了三种调度算法,首先缺的作业控制块的内容和方式然后完成作业调度,最后编写主函数作业进程进行测试,完成作业调度功能。
图1
四、详细设计
先来先服务算法:
第一道作业开始时间开始计算,分别计算出开始时间,。
第一道作业的结束时间(分钟)为第一道作业的开始时间加上估计运行的时间对60取余。
同理算出开始时间(小时),第一道作业的周转时间等于估计运行时间,第一道作业的带权周转时间等于周转时间除以需求时间。
然后进入一个for循环算出每一个作业的结束时间,周转时间,带权周转时间。
图2
短作业优先函数,第一道作业的开始时间就等于进入时间,第一道作业的结束时间(分钟)为第一道作业的结束时间加上估计运行时间对60取余。
第一道作业的时间同先来现服务的算法一样。
然后利用for循环分别对作业从低到高进行排序。
排序后短作业的优先执行,所以最短的作业以第一个作业的结束时间为开始时间,然后一次这样下去。
在分别计算出周转时间和带权周转时间以及平均周转时间和平均带权周转时间。
图3
最高响应比算法:
第一道作业的开始时间,结束时间,带权周转时间,周转时间都与先来现服务的第一道作业的算法相同。
从第二道开始,进入一个for循环.
首先我们要计算出各个作业的响应比:
响应比=1+(作业等待时间/作业处理时间)。
然后通过循环比较找到响应比最高的那道作业首先执行,此作业的开始时间为第一道作业的结束时间,一次类推知道执行完最后一道作业为止。
图4
五、实现与测试
图5
六、总结
通过本次专业课程设计,使我对《操作系统》这门课程有了更深入的理解。
《操作系统》是一门实践性较强的课程,为了学好这门课程,必须在掌握理论知识的同时,加强上机实践。
在这个实训的过程中,我也曾经因为实践经验的缺乏失落过,虽然这只是一次的极简单的课程制作,耗费了我不少的心血,在此次实验中我对作业调度算法中作业C的周转时间由10增至16,带权周转时间由2增至3.1。
更严重的是,如果有一长作业(进程)进入系统的后备队列(就绪队列)由于调度程序总是优先调度那些(即是后进来的)短作业(进程)将致使长作业(进程得不到调度,在老师和同学的帮助下,我弄懂了。
通过此次试验,我们能够更加的理解各个进程调度算法及他们的具体实现过程。
我们了解了先来先服务算法是一种最直观的、最简单的调度算法,按照调度对象到来的先后次序进行调度,先来者先调度,该算法主要适用于批处理系统。
短作业优先调度算法是批处理系统中性能比较好的一种算法,也可用于分时子系统的进程调度。
该算法按作业要求的运行时间长短来进行调度,即优先调度要求运行时间最短的作业。
高响应比优先调度算法是为了克服上述两种算法的不足之处而提出的一种折中算法。
采用该算法进行调度时,作业进入系统的先后次序和作业的运行长度都是影响调度次序的因素,选择响应比最高的作业优先调度。
在试验过程中,我们也遇到了一些困难,但是我们通过老师悉心的指导和同学热情的帮助以及查询相关资料,及时解决了问题。
我们学到了在单道批处理系统作业调度:
由于在单道批处理系统中,作业一旦投入运行,它就占有计算机的一切资源直到作业完成为止,因此作业调度时不必考虑它所需要的资源是否得到满足,它所占用的CPU时限因素。
还学会了采用先来先服务算法多道批处理系统的作业调度,采用多道程序设计方法和操作系统,在系统中要经常保留多个运行的作业,以提高系统效率,并为这些被选中的作业分配所需的系统资源。
对被选中的作业必须按照他们的各自的作业说明书的规定步骤进行控制。
批处理作业调度程序负责从输入中选择若干个作业进行主存,为它们分配必要的资源,当它们能够被进程调度选中时,就可以占用处理器运行。
作业调度选择一个作业的必要条件是系统中现有的尚未分配的资源可以满足该作业的资源要求,但有时系统中现有尚未分配的。
但仍然有不足之处,我们会在今后的学习中更加努力。
所以我觉得同学之间的合作很重要。
也很感谢老师这两个星期对我的帮助。
通过这次的专业课程设计我对于专业课的学习有了更加深刻的认识,以后努力学好每门专业课,让自己拥有更多的知识,才能解决更多的问题!
七、参考文献
[1]史美林,张高.计算机操作系统教程[M].3版.北京:
清华大学出版社,2006.
[2]孙英华,赵毅.计算机操作系统[M].北京:
北京邮电大学,2006.
[3]汤晓丹,梁红兵.计算机操作系统教程[M].3版.西安:
西安电子科技大学出版社,2007.
附录:
指导教师评语:
评定成绩:
签名:
日期: