实验二、作业调度实验
实验项目名称:作业调度实验 实验项目性质:验证性实验 所属课程名称:《操作系统》 实验计划学时: 2 学时
、实验目的 本实验要求学生模拟作业调度的实现,用高级语言编写和调试一个或多个作业 调度的模拟程序,了解作业调度在操作系统中的作用,以加深对作业调度算法 的理解。
、实验内容和要求 为单道批处理系统设计一个作业调度程序
(1) 、编写并调试一个单道处理系统的作业调度模拟程序。
(2) 、作业调度算法:分别采用先来先服务( FCFS),最短作业优先( SJF)、响 应比高者优先( HRN )的调度算法。
(3) 、由于在单道批处理系统中,作业一投入运行,它就占有计算机的一切资源 直到作业完成为止,因此调度作业时不必考虑它所需要的资源是否得到满足, 它所占用的 CPU
时限等因素。
(4) 、每个作业由一个作业控制块 JCB 表示, JCB 可以包含如下信息:作业名、 提交时间、所需的运行时间、所需的资源、作业状态、链指针等等。作业的状 态可以是等待 W(Wait) 、运行 R(Run)和完成 F(Finish)三种状态之一。每个作业 的最初状态总是等待 W 。
(5) 、对每种调度算法都要求打印每个作业开始运行时刻、 完成时刻、周转时间、 带权周转时间,以及这组作业的平均周转时间及带权平均周转时间,并比较各 种算法的优缺点。
三、实验设计方案及原理 假设在单道批处理环境下有四个作业 JOB1、 JOB2、JOB3、 JOB4,已知它们 进入系统的时间、估计运行时间。分别采用先来先服务( FCFS),最短作业优 先( SJF)、响应比高者优先( HRN )的调度算法,计算出作业的平均周转时间 和带权的平均周转时间。
作业 i 的周转时间: Ti= 运行结束时间 -到达时间 作业的平均周转时间: T=
作业 i 的带权周转时间: Wi= 周转时间 /所需运行时间 作业的平均带权周转时间: W= 先来先服务调度算法( FCFS):每次调度都是从后备作业队列中,选择一个或 多个最先进入该队列的作业,将它们调入内存,为它们分配资源、创建进程, 然后放入就绪队列。在进程调度中采用 FCFS 算法时,这每次调度是从就绪队 列中,选择一个最先进入该队列的进程,为之分配处理机,使之投入运行。该 进程一直运行到完成或发生某事件阻赛后,才放弃处理机。
最短作业优先( SJF):每次从后备队列中选择一个或若干个估计运行时间最短 的作业,将它们调入内存运行。
响应比高者优先 (HRN ):每次从后备队列中选择一个或若干个估计响应比最高 的作业,将它们调入内存运行。
响应比 Rp= 作业响应时间 /运行时间
=作业等待时间 +作业运行时间 =1+作业等待时间 /作业运行时间 对每种调度算法都要求打印每个作业开始运行时刻、完成时刻、周转时间、带 权周转时间,以
及这组作业的平均周转时间及带权平均周转时间,并比较各种 算法的优缺点。 四.实验步骤 a.先来先服务算法 ○1 输入四个作业
○2 作业( 1)执行结果
○3 作业(二)执行结果
○4 作业(三)执行结果
○5 作业(四)执行结果
○6 求平均周转时间和带权平均周转时间
B.短作业优先算法
○1 输入四个作业
○2 作业(一)执行结果
○3 作业(二)执行结果
4 作业(三)执行结果 ○
5○ 作业(四)执行结果
○6 求平均周转时间和带权平均周转时间
C 响应比高者优先算法
○1 输入四个作业
○2 作业(一)执行结果
○3 作业(二)执行结果
○4 作业(三)执行结果
○5 作业(四)执行结果 ○6 求平均周转时间和带权平均周转时间
五.收获和体会
A.根据上面所做实验画出表格如下 (a):
作业 到达时间 所需 CPU 时间 开始运行时间 完成时间 周转时间 1 2 3 4 b): 作业 10.0 10.2 10.5 11.0 0.5 0.3 0.8 1.0 所需 CPU 时间 10.0 10.5 10.8 11.6 开始运行时间 10.5 10.8 11.6 12.6 完成时间 0.5 0.6 1.1 1.6 周转时间 到达时间 1 2 3 4 c): 作业 10.0 10.2 10.5 11.0 0.5 0.8 0.3 1.0 10.0 10.8 10.5 11.6 10.5 11.6 10.8 12.6 完成时间 响应比 0.5 1.4 0.3 1.6 周转时间 到达时 间 开始运行 时间 所需 CPU 时 间 1 2 3 4 10.0 10.2 10.5 11.0 0.5 0.8 0.3 1.0 11.0 11.8 11.5 12.6 11.5 12.6 11.8 13.6 2.0 1.0 1.6 0 1.5 2.4 1.3 2.6 B.这三种作业调度算法各有自己的优缺点:
( a)先来先服务调度算法适用于执行一些所需 CPU 时间短的作业,但倘若所 需 CPU 时间长的先到,所需短的后到,那么先执行先到的,就会降低 CPU 的 使用效率;另外这
种算法不能考虑作业的紧迫性问题。
(b)。短作业优先调度算法考虑到短作业,但没考虑到那些长作业,倘若用户 继续运行一个长作业,却受到短作业的影响给用户带来不便,甚至可能导致一 个长作业长时间不能运行。
(c)响应比高者优先既考虑到短作业又考虑到长作业,使得每种作业都有被调 用的可能,是一种折中的作业调度算法 。
因篇幅问题不能全部显示,请点此查看更多更全内容