王道操作系统考研笔记——2.1.8 调度算法的评价指标

2.1.8 调度算法的评价指标

知识总览

需要注意的是,这一部分的知识要学会计算image-20220123135430608

2.1.8.1 CPU利用率

在早期,由于CPU造价极其昂贵,因此人们会希望让CPU尽可能多地工作。由此,引出了下面的概念。

CPU利用率:指CPU“忙碌”的时间占总时间的比例。,即 利 用 率 = 忙 碌 的 时 间 总 时 间 利用率 = \frac{忙碌的时间}{总时间} =

在有的题目中,还会要求计算某种设备的利用率。

某计算机只支持单道程序,某个作业刚开始需要在CPU上运行5秒,再用打印机打印输出5秒,之后再执行5秒,才能结束。在此过程中,CPU利用率、打印机利用率分别是多少?

C P U 利 用 率 = 5 + 5 5 + 5 + 5 = 66.66 CPU利用率 = \frac{5+5}{5+5+5} = 66.66 CPU=5+5+55+5=66.66%

打 印 机 利 用 率 = 5 15 = 33.33 打印机利用率 = \frac{5}{15} = 33.33 =155=33.33%

需要注意的是,考研中一般不会出这么简单的题目,而是会考查多道程序并发执行的情况,这时候可以利用甘特图来辅助计算。


2.1.8.2 系统吞吐量

对于计算机来说,人们总希望能用尽可能少的时间处理完尽可能多的作业。

系统吞吐量:单位时间内完成作业的数量。

系统吞吐量 = 总 共 完 成 了 多 少 道 作 业 总 共 花 了 多 少 时 间 \frac{总共完成了多少道作业}{总共花了多少时间}

某计算机系统处理完10道作业,共花费了100秒,则系统吞吐量为?

10/100 = 0.1道/秒


2.1.8.3 周转时间

对于计算机的用户来说,他很关心自己的作业从提交到完成花了多少时间。这就是周转时间。周转时间是指作业被提交给系统开始,到作业完成为止的这段时间间隔。

其包括四个部分:作业在外存后备队列上等待作业调度的时间、进程在就绪队列上等待进程调度的时间、进程在CPU上执行的时间、进程等待I/O操作完成的时间。后三项在一个作业的整个处理过程中,可能发生多次。

作业周转时间 = 作业完成时间-作业提交时间

对于单个用户来说,更关心自己的单个作业的周转情况


平均周转时间 = 各 作 业 周 转 时 间 之 和 作 业 数 \frac{各作业周转时间之和}{作业数}

对于操作系统来说,更关心系统的整体表现,因此更关心所有作业周转时间的平均值。

有的作业运行时间短,有的作业运行时间长,因此在周转时间相同的情况下,运行时间不同的作业,给用户的感觉肯定是不一样的。

这么说的话,用户如何关心自己作业在周转时间的实际表现呢?这时候就引出了带权周转时间

带权周转时间 = 作 业 周 转 时 间 作 业 实 际 运 行 的 时 间 = 作 业 完 成 时 间 − 作 业 提 交 时 间 作 业 实 际 运 行 的 时 间 \frac{作业周转时间}{作业实际运行的时间} = \frac {作业完成时间 - 作业提交时间}{作业实际运行的时间} =

这样的话,对于周转时间相同的两个作业,实际运行时间长的作业在相同时间内被服务的时间更多,带权周转时间小,用户满意度更高。

而对于实际运行时间相同的两个作业,周转时间短的带权周转时间更小,用户满意度更高。

从公式来看,作业提交后不一定开始处理,所以分子肯定大于分母,也就是说,带权周转时间必然大于1,而且带权周转时间与周转时间都是越小越好。

平均带权周转时间 = 各 作 业 带 权 周 转 时 间 之 和 作 业 数 \frac{各作业带权周转时间之和}{作业数}

相信上面的概念不好理解,我们下面用几个计算例子来理解:

设有三道作业,它们的提交时间和运行时间见下表:

作业号提交时间/时运行时间/h
110:002
210:101
310:250.25

注:为计算方便,“时”均为十进制。

试给出在下面两种调度算法下,作业的执行顺序、平均周转时间和带权周转时间。

  1. 先来先服务(FCFS)调度算法
  2. 短作业优先(SJF)调度算法

采用FCFS调度算法时,作业的执行顺序是作业1->作业2->作业3,根据题意可得下表:

作业号提交时刻/时运行时间/h开始时刻/时完成时刻/时
110:00210:0012:00
210:10112:0013:00
310:250.2513:0013:15

那么,由公式可得:

平 均 周 转 时 间 = 各 作 业 周 转 时 间 之 和 作 业 数 = [ ( 12 − 10 ) + ( 13 − 10 : 10 ) + ( 13 : 25 − 10 : 25 ) ] / 3 = 2.55 h 平均周转时间 =\frac{各作业周转时间之和}{作业数} = [(12-10)+(13-10:10)+(13:25-10:25)]/3 = 2.55h ==[(1210)+(1310:10)+(13:2510:25)]/3=2.55h

平 均 带 权 周 转 时 间 = 各 作 业 带 权 周 转 时 间 之 和 作 业 数 = [ ( 12 − 10 ) / 2 + ( 13 − 10 : 10 ) / 1 + ( 13.15 − 10.25 ) / 0.25 ] / 3 = 5.05 h 平均带权周转时间 = \frac{各作业带权周转时间之和}{作业数} = [(12-10)/2+(13-10:10)/1+(13.15-10.25)/0.25]/3 = 5.05h ==[(1210)/2+(1310:10)/1+(13.1510.25)/0.25]/3=5.05h

采用SJF调度算法时,作业的执行顺序是作业1->作业3->作业2,根据题意可得下表:

作业号提交时刻/时运行时间/h开始时刻/时完成时刻/
110:00210:0012.00
210:10112:1513:15
310:250.2512:0012:15

那么,由公式可得:

平 均 周 转 时 间 = [ ( 12 − 10 ) + ( 13 : 15 − 10 : 10 ) + ( 12 : 15 − 10 : 25 ) ] / 3 = [ 2 + 3.08 + 1.83 ] / 3 = 2.3 h 平均周转时间 = [(12-10)+(13:15-10:10)+(12:15-10:25)]/3=[2+3.08+1.83]/3=2.3h =[(1210)+(13:1510:10)+(12:1510:25)]/3=[2+3.08+1.83]/3=2.3h

带 权 平 均 周 转 时 间 = ( 2 / 2 + 3.08 / 1 + 1.83 / 0.25 ) / 3 = 3.8 h 带权平均周转时间 = (2/2+3.08/1+1.83/0.25)/3=3.8h =(2/2+3.08/1+1.83/0.25)/3=3.8h


2.1.8.4 等待时间

计算机的用户希望自己的作业尽可能少的等待处理机。

等待时间,指进程/作业处于等待处理机状态时间之和,等待时间越长,用户满意度越低。

image-20220123150851180

对于进程来说,等待时间就是指进程建立后等待被服务的时间之和,在等待I/O完成的期间其实进程也是在被服务的,所以不计入等待时间。对于作业来说,不仅要考虑建立进程后的等待时间,还要加上作业在外存后备队列中等待的时间。

一个作业作业总共需要被CPU服务多久,被I/O设备服务多久一般是确定不变的,因此调度算法其实只会影响作业/进程的等待时间。当然,与前面指标类似,也有“平均等待时间”来评价整体性能。


2.1.8.5 响应时间

对于计算机用户来说,会希望自己提交的请求(比如通过键盘输入了一个调试指令)尽早地开始被系统服务、回应。由此引出了响应时间的概念:

响应时间,指从用户提交请求首次产生响应所用的时间。


2.1.8.6 小结

image-20220123152711013

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ArimaMisaki

如果知识有用请我喝杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值