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

文章目录

      • 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 调度算法的评价指标

知识总览

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

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
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.55h平均周转时间 =\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.05h平均带权周转时间 = \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.3h平均周转时间 = [(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.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 等待时间

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

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

image-20220123150851180

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

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


2.1.8.5 响应时间

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

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


2.1.8.6 小结

image-20220123152711013

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/398731.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jenkins自动化构建iOS应用配置过程中遇到的问题

最近配置jenkins来自动构建iOS应用,期间遇上不少问题。在这里分享给大家,也给自己留个底,方便下次解决问题。 首先说明下基本情况,我们因为部署jenkins的机器不是Mac,所以不能安装Xcode插件,我不知道这个插件能给我们带来多少便捷…

用户体验设计的五个原则(转)

【编者按】本文作者,现Aura Marker Studio创始人路意Louis,曾带过五年多的用户体验设计团队。这篇文章是他带团队这几年沉淀下来的一些经验和思考。 “设计,必须是充满诗意的。” 带过五年多的用户体验设计团队,从几个人到二十几个…

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

2.1.9 调度算法 知识总览 学习各种调度算法的思路 算法思想算法规则这种调度算法是用于作业调度还是进程调度?抢占式或是非抢占式优点和缺点是否会导致饥饿(某进程/作业长期得不到服务) 2.1.9.1 先来先服务 知识点说明英文名FCFS&#xff0…

程序员的春天来了,赏花去!说走就走

2019独角兽企业重金招聘Python工程师标准>>> 经历了寒冷的隆冬,阳春三月终于到来,在温暖如棉的风里,赶紧去户外走走吧,享受大自然赐予我们的无限美……春意盎然,正是赏花好时节,每天久坐电脑前的…

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

2.2.0 交互式系统调度算法 知识总览 2.2.0.1 时间片轮转 知识点说明英文名RR,Round-Robin算法思想公平地、轮流地为各个进程服务,让每个进程在一定时间间隔内都可以得到响应算法规则按照各进程到达就绪队列的顺序,轮流让各个进程执行一个时…

王道操作系统考研笔记——2.3.1 进程同步和进程互斥

文章目录2.3.1 进程同步和进程互斥2.3.1.1 什么是进程同步?2.3.1.2 什么是进程互斥2.3.1.3 小结2.3.1 进程同步和进程互斥 知识总览 2.3.1.1 什么是进程同步? 在前面,我们说过进程具有异步性的特征。 而我们想让进程执行的顺序是可预知的&…

王道操作系统考研笔记——2.3.2 进程互斥的软件实现方法

文章目录2.3.2 进程互斥的软件实现方法2.3.2.1 单标志法2.3.2.2 双标志先检查法2.3.2.3 双标志后检查法2.3.2.4 Peterson算法2.3.2.5 小结2.3.2 进程互斥的软件实现方法 知识总览 2.3.2.1 单标志法 单标志法的算法思想是:两个进程在访问完临界区后会把使用临界区的…

QTP基础学习(二)启动与设置

1、启动QTP选择要求的Add-in 默认带有3个Add-in,之后可以安装其他的Add-in,如.net的Add-in 2、设置QTP的选项 点击Tools-Options,弹出如下框: 3、建立记录和运行设置 点击Automatic-Record and Run Settings,如下图&am…

王道操作系统考研笔记——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 进程互斥的硬件实现方法 知识总览 2.3.3.1 中断屏蔽方法 利用开/关中断指令实现中断屏蔽方法,可以使得某进程开始访问临界区到结束期间不允许…

Linux基础--MBR/GPT与parted

关于MBR和GPT这两种分区表,wiki上讲的很清楚。不过有些同学可能看不了,你需要先了解科学上网。这里我就只把它们的结构图贴上,简要说明了。https://zh.wikipedia.org/wiki/%E4%B8%BB%E5%BC%95%E5%AF%BC%E8%AE%B0%E5%BD%95https://zh.wikipedi…

css斜角覆盖阴影

Demo下载 效果如图: css: #box { width: 280px; height: 150px; background: #ff6565; padding: 20px; position: relative; overflow: hidden; } #content { width: 280px; height: 15…

王道操作系统考研笔记——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年,荷兰学着Dijkstra提出了一种卓有成效的实现进程互斥、同步的方法——信号量机制。 2.3.4.1 引入 用户进程可以通过使用操作系统提供…

QT分析之WebKit

该文章整理自 网易博客 http://blog.163.com/net_worm/blog/static/12770241920101831312381/ 转载请注明出处 WebKit是QT4新整合的第三方构件。按照惯例动手分析之前,先了解大概 WebKit由三个模块组成:JavaScriptCore、WebCore 和 WebKit WebKit作为了整…

ViewPager循环

android.support.v4.view.ViewPager ViewPager的使用跟AbsListView,AbsSpinner类似,需要用一个adapter填充数据,同时实现了onPagerChangeListener接口。 ViewPager需要的adapter继承自android.support.v4.view.PageAdapter,getCount返回adapt…

MIT算法导论(一)——算法分析和引论

文章目录1 算法分析及引论1.1 算法1.2 排序1.2.1 插入排序1.2.1.1 插入排序原理1.2.1.2 时间复杂度1.2.1.3 渐进时间复杂度1.2.1.4 回到算法1.2.2 归并排序1.2.2.1 归并排序原理1.2.2.2 归并排序时间复杂度1 算法分析及引论 1.1 算法 算法是一门关注性能的学科,也…

使用Apache Tomcat Maven插件部署运行 Web 项目

2019独角兽企业重金招聘Python工程师标准>>> 什么是Apache Tomcat Maven Plugin? Maven Plugin 是Apache Tomcat 提供的一个Maven插件,它可以在你没有tomcat容器时将任何一个war项目文件部署在该插件上提供访问。 为什么要用Apache Tomcat Ma…

POJ2104 (平方分割)二分查找理解。

题意:任意区间求第k大数 思路: 预处理:利用平方分割(分桶法)把区间切割成B sqrt(n)大小的一块块,然后每个各自排序。 二分第k大数x,接着就需要求[l,r]区间中x的排名,与k比较&#x…

每日一题——leetcode237 删除链表中的结点

1 题目 237. 删除链表中的节点 难度简单 请编写一个函数,用于 删除单链表中某个特定节点 。在设计函数时需要注意,你无法访问链表的头节点 head ,只能直接访问 要被删除的节点 。 题目数据保证需要删除的节点 不是末尾节点 。 示例 1&am…

机器学习的练功心法(一)——机器学习概述

1 机器学习概述 文章目录1 机器学习概述1.1 学习方法1.2 什么是机器学习1.3 监督学习1.4 无监督学习1.5 强化学习1.6 机器学习的开发流程1.1 学习方法 引入:对于机器学习来说,我们需要有一个大局观,什么是大局观?你站的比别人高&…

项目管理规范

从鼬加入的那一周开始,四代就开始着手准备起草代码规范了。代码规范不可少很多人理直气壮的认为,创业团队,或者说人数少的团队根本不需要代码规范。他们的口头禅经常是:“没办法啊!我们需要快速的完成客户的需求啊&…