王道操作系统考研笔记——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,曾带过五年多的用户体验设计团队。这篇文章是他带团队这几年沉淀下来的一些经验和思考。 “设计,必须是充满诗意的。” 带过五年多的用户体验设计团队,从几个人到二十几个…

js遍历 for-of

for-of遍历 entries() 返回一个遍历器对象,用来遍历[键名, 键值]组成的数组。对于数组,键名就是索引值;对于 Set,键名与键值相同。Map 结构的 Iterator 接口,默认就是调用entries方法。keys() 返回一个遍历器对象&…

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

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

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

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

关于个人防火墙的真相

原文作者:MaD 原文标题:The truth aboutpersonal firewalls电子邮件:mad-factormail.ru作者国籍:俄罗斯声明:1、本人翻译水平有限,有不当之请大家理解。如部分看不懂可以和原文对照。 2、欢迎转…

NOI2015 程序自动分析

Luogu 写个并查集来维护就行了。先合并所有相等的变量,如果有两个不相等的变量相等,那么就输出NO。注意得先合并所有相等的变量,再来判断。因为如果两个操作一起搞的话,可能会有两个变量在某次查询的时候不相等,但后面…

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

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

Linux(Ubuntu 16) 下Java开发环境的配置(二)------Tomcat的配置及常见问题

前言 相比于java JDK的配置,Tomcat的配置简单的多,简直就相当于直接运行了,本文以Tomcat8.0为例进行配置1.Tomcat的下载 地址:https://tomcat.apache.org/download-80.cgi下载上图标示文件即可.然后解压到一个方便的文件夹即可.2.Tomcat的启动 如果你的Tomcat的JDK配置好的话,理…

王道操作系统考研笔记——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 单标志法 单标志法的算法思想是:两个进程在访问完临界区后会把使用临界区的…

js处理上下文代码的2个阶段

1、进入执行上下文 当进入执行上下文(代码执行之前)时,VO里已经包含了下列属性(前面已经说了): 函数的所有形参(如果我们是在函数执行上下文中) — 由名称和对应值组成的一个变量对象的属性被创建;没有传递对应参数的话,那么由名称…

deep learning入门学习

根据知乎的一些大牛的回答总结出的deep learning入门学习的一些material: BE NOTED THAT SOME VIDEOS ARE ON YOUTUBE! I BELIEVE THAT YOU KNOW HOW TO ACESS THEM. 1. Andrew Ng的机器学习前四章的内容(线性回归与逻辑回归) http://open.163.com/special/opencour…

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 中断屏蔽方法 利用开/关中断指令实现中断屏蔽方法,可以使得某进程开始访问临界区到结束期间不允许…

Python Web框架Tornado的异步处理代码演示样例

1. What is Tornado Tornado是一个轻量级但高性能的Python web框架,与还有一个流行的Python web框架Django相比。tornado不提供操作数据库的ORM接口及严格的MVC开发模式,但能够提供主要的web server功能。故它是轻量级的;它借助non-blocking …

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…

MYSQL的空间查询(转帖)

SELECT x(location),y(location) FROM frddata.points; 本文将向各位介绍如何使用MySql5.x中的空间数据库,并展示一下它高效的性能(前提是正确使用)。 本文适合于对SQL和MYSQL熟悉的人员。 步骤1:创建支持空间查询的表 首先来说一…

数据库杂谈(五)——关系数据库语言

文章目录5 关系数据库语言5.1 MySQL简介5.1.1 MySQL的发展历史5.1.2 数据库的用户接口5.1.3 SQL及其概念辨析5.1.4 SQL查询语言的分类5.2 入手5.2.1 回顾——基本和虚表5.2.2 数据准备5.2.3 常用命令5.2.4 导入数据5.2.5 简单的查询5.2.6 条件查询5.2.6.1 条件查询格式5.6.2.1 …

ansible---基础

ansible特点:不需要安装客户端,通过sshd去通信基于模块工作,模块可以由任何语言开发不仅支持命令行使用模块,也支持编写yaml格式的playbook支持sudo安装:yum install -y epel-releaseyum install -y ansible 配置文件&…