欢迎来到天天文库
浏览记录
ID:46399489
大小:719.00 KB
页数:18页
时间:2019-11-23
《单道批处理系统作业调度》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、课程设计说明书NO.18单道批处理系统作业调度1.课程设计的目的操作系统课程的一个非常重要的环节是培养计算机专业学生的系统程序设计能力。通过操作系统课程设计,可以培养程序设计的方法和技巧,提高编制清晰、合理、可读性好的系统程序的能力,加深对操作系统课程的理解。使我们更好地掌握操作系统的基本概念、基本原理、及基本功能,具有分析实际操作系统、设计、构造和开发现代操作系统的基本能力。本次课程设计要求用高级语言编写和调试一个单道批处理系统的作业调度的模拟程序,了解作业调度在操作系统中的作用,以加深对作业调
2、度算法的理解2.课程设计的开发语言C语言3.功能描述在批处理系统中,作业进入系统后,是先驻留在外存上的,因此需要有作业调度的过程,以便将它们分批装入内存。作业调度用于决定把外存上处于后备队列中的哪些作业调入内存,并为他们创建进程、分配必要的资源,然后,再将新创建的进程排在就绪队列上,准备执行。应将哪些作业从外存调入内存,取决于所采用的调度算法。最简单的是先来先服务调度算法,这是指讲最早进度外存的作业最先调入内存;较常用的一种是短作业优先电镀算法,这是将外存上最短的作业最先调入内存;此外,还有基于响
3、应比高者优先的调度算法,根据作业的响应时间和要求运行时间可计算出响应比。4.方案论证4.1概要设计根据功能描述,单道批处理程序作业调度的模拟程序要求实现如下功能:建立作业、选择作业、运行作业、计算作业周转时间和带权周转时间,以及这组作业的平均周转时间和带权平均周转时间、显示运行结果,退出程序。各模块的功能介绍如下:(1)建立作业:沈阳大学课程设计说明书NO.18输入作业数,建立一组作业,并对所建立的这组作业进行初始化,用以模拟作业调度。初始化的内容包括作业名,作业要求运行的时间。(2)选择作业:程
4、序通过先来先服务调度算法、短作业优先调度算法和高响应比优先调度算法对建立的一组作业进行选择,决定把哪个作业从外存调入内存中。(3)运行作业:根据初始化中设置的作业要求运行时间来模拟作业的运行。(4)计算:计算作业周转时间和带权周转时间,以及这组作业的平均周转时间和带权平均周转时间。(5)显示结果:将计算所得的结果输出。(6)退出程序:当实验结束,不再需要模拟作业调度的时候,用来退出程序。作业调度模拟程序的系统功能结构如图1所示。作业调度系统先来先服务算法短作业优先算法高响应比优先算法退出程序初始化
5、运行作业输出运行结果初始化运行作业输出运行结果输出运行结果运行作业初始化图1作业调度模拟程序系统功能结构图沈阳大学课程设计说明书NO.184.2详细设计由于在单道批处理系统中,作业一投入运行,它就占有计算机的一切资源直到作业完成为止,因此调度作业时不必考虑它所需要的资源是否得到满足,它所占用的CPU时限等因素。每个作业由一个作业控制块JCB表示,JCB可以包含如下信息:作业名、提交时间、所需的运行时间、所需的资源、作业状态、链指针等等。作业的状态可以是等待W(Wait)、运行R(Run)和完成F(
6、Finish)三种状态之一。每个作业的最初状态总是等待W。对每种调度算法都要求输出每个作业开始运行时刻、完成时刻、周转时间、带权周转时间,以及这组作业的平均周转时间及带权平均周转时间。从以上分析可见,在这个模拟程序中作业控制块JCB的数据结构类型可定义为:structjcb{//作业控制块charname[10];//作业名intreachtime;//作业到达时间intstarttime;//作业开始时间intneedtime;//作业需要运行的时间floatsuper;//作业的响应比intf
7、inishtime;//作业完成时间floatcycletime;//作业周转时间floatcltime;//作业带权周转时间charstate;//作业状态structjcb*next;//结构体指针}*ready=NULL,*p,*q;typedefstructjcbJCB;沈阳大学课程设计说明书NO.18作业调度算法:分别采用先来先服务(FCFS),最短作业优先(SJF)、响应比高者优先(HRN)的调度算法。(1)先来先服务算法:按照作业提交给系统的先后顺序来挑选作业,先提交的先被挑选。流程
8、图如图2所示。空结束计算并打印这组作业的平均周转时间及带权平均周转时间等待队列空?更改时间量times的值;times:=times+服务时间计算并打印运行作业i的完成时刻finishtime,周转时间cycletime,带权周转时间cltime;完成时间:=开始运行时间+服务时间周转时间:=完成时间—到达时间带权周转时间:=周转时间/服务时间调度队首的作业投入运行;更改队首指针,使作业的状态为R,记住作业运行的时刻starttime等初始化所有的JBC使JBC按作业提交的时刻的先
此文档下载收益归作者所有