第8章相关说明说明:(1)实验相关ppt内容选自《操作系统课程设计》的核心实验,本实验为作业调度实验,使学生对作业调度算法有进一步的理解,同时提高学生的动手能力。(2)实验原理比较清晰,难点在于学生动手能力差,编程基础薄弱,建议课下要求学生自己多花费时间来进行编码。(3)该课程上课时间为2015年春季,全班人数共54人。第8章:作业调度实验作业调度算法模拟提纲提纲实验目的掌握周转时间、等待时间、平均周转时间等概念及其计算方法;理解五种常用的作业调度算法(FCFS,SJF,HRRF,HPF,RR),区分算法之间的差异性,并用c语言模拟实现各算法;了解操作系统中高级调度、中级调度和低级调度的区别和联系;提纲实验内容作业调度作业调度又称高级调度,不涉及处理机的分配,主要任务是按一定的原则从外存上处于后备状态的作业中挑选一个(或多个)作业调入主存,为其分配内存、I/O设备等必要的资源,并建立相应的进程,安排在就绪队列上,以使进程获得竞争处理机的权利。实验内容调度队列模型实验内容1.编写并调试作业调度模拟程序;2.实现五种作业调度算法,先来先服务(FCFS),短作业优先(SJF),高响应比优先(HRRF),优先权高者先服务(HPF),时间片轮转法(RR);3.对每种算法要求打印调度顺序及相应的平均周转时间、平均带权周转时间、平均等待时间;4.每次作业切换时打印作业相关信息(提示开始运行,结束运行\暂停运行;一个作业完成打印其等待时间、周转时间、带权周转时间)。5.不考虑多个作业同时到达的情况,且均为非抢占式。6.要求:每个人至少完成三种算法,每个小组要求完成全部算法,实行验收制。提纲实验算法算法一:先来先服务(FCFS)基本思想遵循先进入后备队列的作业,先进行调度的原则。非抢占式算法特点简单,易于编码实现优先考虑作业的等待时间,没有考虑作业的执行时间长短、作业的运行特性和作业对资源的要求实验算法算法二:短作业优先(SJF)基本思想根据作业控制块中作业申请时指出的执行时间,选取执行时间最短的作业优先调度;可有抢占或非抢占方式。短作业优先调度算法考虑了作业的运行时间而忽略了作业的等待时间。实验算法算法三:高响应比优先(HRRF)初衷FCFS调度算法只片面地考虑了作业的进入时间,短作业优先调度算法考虑了作业的运行时间而忽略了作业的等待时间。响应比高者优先调度算法为这两种算法的折中,使长作业不会长时间等待,但每次调度前都要进行响应比计算。处理时间等待时间处理时间处理时间等待时间处理时间响应时间响应比1实验算法算法四:优先权高者优先(HPF)基本思想系统根据作业的优先权进行作业调度,每次选取优先权高的作业优先调度。作业的优先权通常用一个整数表示,也叫做优先数。优先数的大小与优先权的关系由系统或者用户来规定,本实验采用优先权值越小,优先权越高。优先权高者优先调度算法综合考虑了作业执行时间和等待时间的长短、作业的缓急度、作业对外部设备的使用情况等因素。实验算法算法五:时间片轮转(RR)基本思想系统将所有的就绪进程按先来先服务的原则,排成一个队列,每次调度时,把CPU分配给队首进程,并令其执行一个时间片。时间片结束之后,将该进程加到就绪队列队尾;然后再把处理机分配给就绪队列中新的首进程。优点系统能在给定的时间内响应所有用户请求。提纲实验示例使用的测试数据使用读文件的形式读入测试数据作业ID到达时间执行时间18005028153038302548352058451567001078205优先权0122210实验示例作业信息结构typedefstructnode{intnumber;//作业号intreach_time;//作业抵达时间intneed_time;//作业的执行时间intprivilege;//作业优先权floatexcellent;//响应比intstart_time;//作业开始时间intwait_time;//等待时间inttr_time;//周转时间doublewtr_time;//带权周转时间intrun_time;//作业累计已执行时间intvisited;//作业是否被访问过boolisreached;//作业是否已抵达}job;实验示例重要函数说明voidread_Jobdata();//读取数据文件;voidinitial_jobs();//初始化所有作业信息;intfindEarlyJob(jobjobs[],intcount);//找到执行时间最短的作业;voidSFJschedulejob(jobjobs[],intcount);//短作业优先算法用到的函数有:fopen(文件名,使用文件方式);//打开文件fscanf(文件指针,格式字符串,输入列表);//格式化读入;fclose(文件指针);//关闭文件实验示例读入文件显示如下:实验示例FCFS实验示例SJF实验示例HRRF实验示例HPF实验示例RR