文章目录

  • 2.1.8 调度算法的评价指标
    • 2.1.8.1 CPU利用率
    • 2.1.8.2 系统吞吐量
    • 2.1.8.3 周转时间
    • 2.1.8.4 等待时间
    • 2.1.8.5 响应时间
    • 2.1.8.6 小结

2.1.8 调度算法的评价指标

知识总览

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

2.1.8.1 CPU利用率

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

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

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

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

CPU利用率=5+55+5+5=66.66CPU利用率 = \frac{5+5}{5+5+5} = 66.66CPU利用率=5+5+55+5​=66.66%

打印机利用率=515=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
1 10:00 2
2 10:10 1
3 10:25 0.25

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

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

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

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

作业号 提交时刻/时 运行时间/h 开始时刻/时 完成时刻/时
1 10:00 2 10:00 12:00
2 10:10 1 12:00 13:00
3 10:25 0.25 13:00 13:15

那么,由公式可得:

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

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

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

作业号 提交时刻/时 运行时间/h 开始时刻/时 完成时刻/
1 10:00 2 10:00 12.00
2 10:10 1 12:15 13:15
3 10:25 0.25 12:00 12:15

那么,由公式可得:

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

带权平均周转时间=(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/2+3.08/1+1.83/0.25)/3=3.8h

2.1.8.4 等待时间

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

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

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

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

2.1.8.5 响应时间

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

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

2.1.8.6 小结

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

  1. 王道操作系统考研笔记——2.1.9 调度算法

    2.1.9 调度算法 知识总览 学习各种调度算法的思路 算法思想 算法规则 这种调度算法是用于作业调度还是进程调度? 抢占式或是非抢占式 优点和缺点 是否会导致饥饿(某进程/作业长期得不到服务) 2. ...

  2. 王道操作系统考研笔记——2.2.0 交互式系统调度算法

    2.2.0 交互式系统调度算法 知识总览 2.2.0.1 时间片轮转 知识点 说明 英文名 RR,Round-Robin 算法思想 公平地.轮流地为各个进程服务,让每个进程在一定时间间隔内都可以得到响 ...

  3. 王道操作系统考研笔记——2.1.6 处理机调度的概念和层次

    文章目录 2.1.6 处理机调度的概念和层次 2.1.6.1 调度的基本概念 2.1.6.2 高级调度 2.1.6.3 中级调度 2.1.6.4 进程的挂起态和七状态模型 2.1.6.5 低级调度 2 ...

  4. 王道操作系统考研笔记——1.1.1 操作系统的概念、功能和目标

    如果这篇博客对您有用的话,可以给我点个赞吗,这对我很重要,谢谢!❤️ 文章目录 1.1.1 操作系统的概念.功能和目标 1.1.1.1 操作系统的概念 1.1.1.2 作为系统资源的管理者 1.1.1 ...

  5. 王道操作系统考研笔记——2.3.4 信号量机制

    文章目录 2.3.4 信号量机制 2.3.4.1 引入 2.3.4.2 整型信号量 2.3.4.3 记录型信号量 2.3.4.4 小结 2.3.4 信号量机制 知识总览 在1965年,荷兰学着Dijk ...

  6. 王道操作系统考研笔记——2.3.3 进程互斥的硬件实现方法

    文章目录 2.3.3 进程互斥的硬件实现方法 2.3.3.1 中断屏蔽方法 2.3.3.2 TestAndSet指令 2.3.3.3 Swap指令 2.3.3.4 小结 2.3.3 进程互斥的硬件实现 ...

  7. 王道操作系统考研笔记——2.1.7 进程调度的时机、切换与过程、方式

    文章目录 2.1.7 进程调度的时机.切换与过程.方式 2.1.7.1 进程调度的时机 2.1.7.2 进程调度的方式 2.1.7.3 进程的切换和过程 2.1.7.4 小结 2.1.7 进程调度的时 ...

  8. 王道操作系统考研笔记——2.1.5 线程概念与多线程模型

    文章目录 2.1.5 线程概念与多线程模型 2.1.5.1 线程的来源 2.1.5.2 线程机制带来的变化 2.1.5.3 线程的属性 2.1.5.4 线程的实现方式 2.1.5.5 多线程模型 2. ...

  9. 王道操作系统考研笔记——1.1.6 系统调用

    如果这篇博客对您有用的话,可以给我点个赞吗,这对我很重要,谢谢!❤️ 文章目录 1.1.6 系统调用 1.1.6.1 系统调用和作用 1.1.6.2 系统调用和库函数 1.1.6.3 系统调用背后的过 ...

最新文章

  1. #实现互联网聊天_局域网内两台电脑如何实时语音聊天通话
  2. C++生成简单WAV文件(一)
  3. 【英语学习】【English L06】U02 Food L5 A vegetarian or meat lover
  4. linux脚本done报错,很简单的脚本程序,总是报错
  5. C++ eof()函数相关应用技巧分享
  6. Gephi教程——外观和布局
  7. Bad Rabbit
  8. windows进行udp端口转发
  9. steam链接社区_如何通过Steam链接上的Xbox One控制器启用振动
  10. 韦伯-费纳希定律,前景理论及其在数据科学中的应用
  11. jsp中你必须记住的379
  12. 怎么把电子书格式转换成word文档
  13. 利用C++的多态写一个电脑组装的具体实现
  14. 一文搞懂什么是神经网络Neural Network【详细介绍】
  15. Android 经典笔记之五:DownloadManager下载管理器介绍
  16. discuz论坛网站更换域名的方法及步骤
  17. [NN]前向神经网络的tf.keras详细实现教学
  18. 阿里云建站套餐怎么样?具体建站流程
  19. RealView Development Suite 4.0 Professional安装
  20. Linux 文档编辑 : ex 命令详解

热门文章

  1. 在gitlab 中使用webhook 实现php 自动部署git 代码
  2. C++中父类的虚函数必需要实现吗?
  3. 对MariaDB10.0的Sphinx进行扩展
  4. 添加dubbo xsd的支持
  5. 机器学习股票_使用概率机器学习来改善您的股票交易
  6. 剑指 Offer 32 - I. 从上到下打印二叉树
  7. Java中怎么把文本追加到已经存在的文件
  8. spring cloud(二)
  9. leetcode 860. 柠檬水找零(贪心算法)
  10. adb 多点触碰_无法触及的神话