欢迎来到天天文库
浏览记录
ID:20416816
大小:361.13 KB
页数:19页
时间:2018-10-12
《操作系统设计性实验报告-作业调度算法》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、EASTCHINAINSTITUTEOFTECHNOLOGY课题:作业调度算法班级:1620702姓名:黄钰量学号:201620130408时间:11月27日(在小组中负责时间片轮调度算法)目录:一、》》》》》》》》》》》》实验目的二、》》》》》》》》》》》》实验内容H、》》》》》》》》》》》》实验设计方案及其原理四、》》》》》》》》》》》》实验代码五、》》》》》》》》》》》》实验结果六、》》》》》》》》》》》》实验总结概述:调度算法是指:根据系统的资源分配策略所规定的资源分配算法,如任务A在执行完后,选择哪个任务来
2、执行,使得某个因素(如进程总执行时间,或者磁盘寻道时间等)最小。对于不同的系统目标,通常采用不同的调度算法。一、实验目的1.用高级语言编写和调试单道环境下的作业调度的模拟程序,以加深对作业调度的理解。单道环境的特点是被调度的作业占有所有资源。2.在完成了单道环境的作业调度后,有余力的同学可以完成多道环境下的作业调度,多道的特点是:内存中可以同时存在一道以上的进程,所有进程共享系统资源,这样作业调度过程中还要考虑资源分配情况。3.通过两种环境下作业调度的模拟,比较两种环境下作业调度的异同,从而达到理解作业调度的功能。二
3、、实验内容1.常见的作业调度算法有:(1)短作业(进程)优先调度算法(SJF:ShorestJobFirst)(2)时间片轮转算法(RR:RoundRobin)(3)动态优先级算法2.由于在单道批处理系统中,作业一投入运行,它就占有计算机的一切资源直到作业完成为止,因此调度作业时不必考虑它所需要的资源是否得到满足,它所占用的CPU时限等因素。每个作业由一个作业控制块JCB表示,JCB可以包含如下信息:作业名、提交时间、所需的运行时间、所需的资源、作业状态、链指针等等。作业的状态可以是等待W(wait)、运行R(Run
4、)和完成F(FinisH)三种状态之一。每个作业的最初状态总是等待W。对每种调度算法都要求打印每个作业开始运行时刻、完成时刻、周转时间、带权周转时间,以及这组作业的平均周转时间及带权平均周转时间,并比较各种算法的优缺点。3.在批处理系统中,要假定系统中具有的各种资源及数量、调度作业时必须考虑到每个作业的资源要求,所需要的资源是否得到满足。作业调度程序负责从输入井选择若干个作业进入主存,为它们分配必要的资源,当它们能够被进程调度选中时,就可占用处理机运行。作业调度选择一个作业的必要条件是系统中现有的尚未分配的资源可满足
5、该作业的资源要求。但有时系统中现有的尚未分配的资源既可满足某个作业的要求也可满足其它一些作业要求,那么,作业调度必须按一定的算法在这些作业中作出选择。当作业正常运行完毕或因发生错误非正常终止时,作业进入完成状态,此时,系统将收回该作业所占用的全部资源,并清除有关的JCB。并输出显示作业运行情况及作业输出结果。实验设计方案及其原理假设在单道批处理环境下有四个作业J0B1、J0B2、J0B3、J0B4,已知它们进入系统的时间、估计运行时间。分别采用短作业(进程)优先调度算法(SJF:ShorestJobFirst),时间
6、片轮转算法(RR:RoundRobin),动态优先级算法计算出作业的平均周转时间和带权的平均周转时间。1.时间片轮调度算法:用法描述:用于分时系统中的进程调度。算法介绍:在早期的时间片轮转法中,系统将所有的就绪进程按先来先服务的原则排成一个队列,每次调度时,把CPU分配给队首进程,并令其执行一个时间片。时间片的大小从几ms到几百ms。当执行的时间片用完时,由一个计时器发出时钟中断请求,调度程序便据此信号来停止该进程的执行,并将它送往就绪队列的末尾;然后,再把处理机分配给就绪队列中新的队首进程,同时也让它执行一个时间片
7、。这样就可以保证就绪队列中的所有进程在一给定的时间内均能获得一时间片的处理机执行时间。换言之,系统能在给定的时间内响应所有用户的请求。原理:每个进程被分配一个时间段,称作它的时间片,即该进程允许运行的时间。如果在时间片结束时进程还在运行,则CPU将被剥夺并分配给另一个进程。如果进程在时间片结束前阻塞或结束,则CPU当即进行切换。调度程序所要做的IIIJLAJ口J
8、pj—l“1rf1[IJ
9、»-J—本次实验的流程图:I四、实验代码#include#include#include10、tring.h>#include#defineN20structpcb{charname[8];intarrive_time;intrun_time;intfinish_time;intzhouzhuan_time;floatdaiquan_time;boolfinished;//进程名称//到达时间//运行时间//完成时间/
10、tring.h>#include#defineN20structpcb{charname[8];intarrive_time;intrun_time;intfinish_time;intzhouzhuan_time;floatdaiquan_time;boolfinished;//进程名称//到达时间//运行时间//完成时间/
此文档下载收益归作者所有