操作系统实验报告 作业调度实验报告

  • 格式:docx
  • 大小:795.40 KB
  • 文档页数:6

实验二、作业调度实验

实验项目名称:作业调度实验

实验项目性质:验证性实验

所属课程名称:《操作系统》

实验计划学时: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 10.0 0.5 10.0 10.5 0.5

2 10.2 0.3 10.5 10.8 0.6

3 10.5 0.8 10.8 11.6 1.1

4 11.0 1.0 11.6 12.6 1.6

(b):

作业 到达时间 所需CPU时间 开始运行时间 完成时间 周转时间

1 10.0 0.5 10.0 10.5 0.5

2 10.2 0.8 10.8 11.6 1.4

3 10.5 0.3 10.5 10.8 0.3

4 11.0 1.0 11.6 12.6 1.6

(c):

作业 到达时间 所需CPU时间 开始运行时间 完成时间 响应比 周转时间

1 10.0 0.5 11.0 11.5 2.0 1.5

2 10.2 0.8 11.8 12.6 1.0 2.4

3 10.5 0.3 11.5 11.8 1.6 1.3

4 11.0 1.0 12.6 13.6 0 2.6

B.这三种作业调度算法各有自己的优缺点:

(a)先来先服务调度算法适用于执行一些所需CPU时间短的作业,但倘若所需CPU时间长的先到,所需短的后到,那么先执行先到的,就会降低CPU的使用效率;另外这种算法不能考虑作业的紧迫性问题。

(b)。短作业优先调度算法考虑到短作业,但没考虑到那些长作业,倘若用户继续运行一个长作业,却受到短作业的影响给用户带来不便,甚至可能导致一个长作业长时间不能运行。

(c)响应比高者优先既考虑到短作业又考虑到长作业,使得每种作业都有被调用的可能,是一种折中的作业调度算法。