处理机调度(FCFS、优先级法、最短作业优先法),求平均周转时间例题

在多道程序设计系统中,内存中有多道程序运行,他们相互争夺处理机这一重要的资源。
处理机调度就是从就绪队列中,按照一定的算法选择一个进程并将处理机分配给它运行,以实现进程并发地执行。

一、衡量调度策略的指标

衡量调度策略的最常用的几个指标是:周转时间、吞吐率、响应时间以及设备利用率等。
周转时间是指将一个作业提交给计算机系统后到该作业的结果返回给用户所需要的时间。
吞吐率是指在给定的时间内,一个计算机系统所完成的总工作量。
响应时间则是指从用户向计算机发出一个命令到计算机把相应的执行结果返回给用户所需要的时间。
设备利用率主要指输入输出设备的使用情况。
进程调度性能的衡量方法可分为定性定量两种。

二、作业的状态及其转换

一个作业从提交给计算机系统到执行结束退出系统,一般都要经历提交、收容、执行完成等4个状态。
处理机调度可以分为4级:(1)作业调度:又称高级调度。(2)交换调度:又称中级调度。(3) 进程调度:又称低级调度。(4) 线程调度在这里插入图片描述
作业调度中状态的转换过程

三、作业调度性能衡量

周转时间 = 运行时间 + 等待时间 = 作业完成时刻 - 作业到达时刻 ;
等待时间 = 上一个的周转时间 - 距离上一个的到达时间 = 上一个的等待时间 + 上一个的运行时间 - 距离上一个的到达时间
带权周转时间 = 周转时间 / 服务时间(运行时间);
平均周转时间 = 作业周转总时间 / 作业个数;
平均带权周转时间 = 带权周转总时间 / 作业个数;
特别注意:作业到达时间不是作业进内存的时间,而是发出请求,提交就开始计时,如果无法安排进内存,那么就等待,等待的这部分时间也要计数。
任务同时到达时:
在这里插入图片描述

四、调度算法

1、先来先服务(FCFS)调度算法
2、轮转法(round robin)
轮转法的基本思路是让每个进程在就绪队列中的等待时间与享受服务的时间成比。轮转法的基本概念是将CPU的处理时间分成固定大小的时间片。如果一个进程在被调度选中之后用完了系统规定的时间片,但未完成要求的任务,则它自行释放自己所占有的CPU而排到就绪队列的末尾,等待下一次调度。同时,进程调度程序又去调度当前就绪队列中的第一个进程或作业。
时间片长度的选择是根据系统对响应时间的要求R和就绪队列中所允许的最大进程数Nmax确定的。它可表示为: q=R/Nmax
UNIX系统中进程调度采用:多级反馈队列轮转法。
3、优先级法
系统或用户按某种原则为作业或进程指定一个优先级来表示该作业或进程所享有的调度优先权。
4、最短作业优先法(shortest job first)
最短作业优先法(SJF)就是选择那些估计需要执行时间最短的作业投入执行,为它们创建进程和分配资源。

五、例题

(一)假设有4道作业,它们的提交时刻及执行时间由下表给出:
在这里插入图片描述
计算在单道程序环境下,采用先来先服务调度算法和最短作业优先调度算法时的平均周转时间平均带权周转时间,并指出它们的调度顺序。

答:(1)先来先服务调度顺序如下:
在这里插入图片描述
平均周转时间:T=(2+2.7+2.8+3)/4=2.625
平均带权周转时间:W=(2/2+2.7/1+2.8/0.5+3/0.3)/4=4.825
(2)最短作业优先调度顺序如下:
在这里插入图片描述
(二)有5个任务A,B,C,D,E,它们几乎同时到达,预计它们的运行时间为10min,6min,2min,4min,8min。其优先级分别为3,5,2,1和4,这里5为最高优先级。对于下列每一种调度算法,计算其平均进程周转时间(进程切换开销可不考虑)。
(1)先来先服务(按A,B,C,D,E)算法。
(2)优先级调度算法。
(3)短作业调度算法。
在这里插入图片描述
在这里插入图片描述

posted @ 2022-02-06 18:51  Hardworking666  阅读(2248)  评论(0编辑  收藏  举报