1. P117页,练习15:最高响应比( HRRF)

2. P119页,练习22(2):时间片轮转( RR )

3. 现设定采用三级反馈队列调度算法,三个队列分别为0、1和2,对应时间片为2、4、8。现有四个进程A、B、C、D,到达时刻分别为0、5、7、12,执行时间分别为7、4、13、2。请写出整个进程调度过程,包括每个时间段,执行的进程,执行后进程状态,各个队列内进程的变化。

4. 从以下几个方面比较各个调度算法的优缺点:

(1).资源利用率  (2).吞吐率  (3).周转率  (4).响应时间  (5).公平性  (6).适用范围

一、先来先服务(FCFS)
  按照作业/进程进入系统的先后次序进行调度,先进入系统者先调度;即启动等待时间最长的作业/进程。是一种最简单的调度算法,即可用于作业调度,也可用于进程调度

  1.比较有有利于长作业进程,不利于段作业进程

  2.适合批处理系统,不适合分时系统  

  3.不利于I/0繁忙型作业而有利于CPU繁忙型作业
二、最短作业优先算法(SJF)
  从队列中选出一个估计运行时间最短的作业优先调度,即可用于作业调度,也可用于进程调度

  1.能够克服FCFS算法偏爱长作业的缺点,但执行效率也不高

  2.忽视了作业等待时间,进入系统时间长但计算时间长的长作业等待时间会很长,出现就饿现象

  3.缺少剥夺机制,对分时、实时处理不理想

  4.实现该算法要先知道作业运行时间,否则调度就没有依据

三、最短剩余时间优先算法(剥夺式SJF算法)

  若在进程运行过程中若有所需CPu时间比正在进行的进程时间更短的进程,则先执行最短CPU用时的进程

  1.相比非剥夺式SJF算法,剥夺式算法所需的平均等待时间和平均周转时间都更短
四、最高响应比优先算法(HRRF)

  HRRF式算法是一种介于FCFS算法和SJF算法之间的一种非剥夺式算法,既考虑作业等待时间有考虑作业处理时间。

  响应比 = 作业周转时间  /作业处理时间

      = (作业等待时间 + 作业处理时间 ) / 作业处理时间

      = 1+ 作业等待时间 / 作业处理时间

  1.既照顾短作业又不会使长作业的等待时间过长,能有效改善调度性能

  2.每次计算各道作业的响应会导致一定时间开销,性能比SJF算法略差

五、优先级调度算法

  根据确定的优先级来选取进程/进程,总是选择就绪队列中优先级最高者投入运行。通过用户定义的非剥夺式或剥夺式算法分为 静态和动态 优先级算法

  1.静态优先级算法简单,但是会出现饥饿现象,是某些低优先级/线程无限期地被推迟执行

  2.动态优先级会使个进程的优先级随时间而改变,原则上是:正在运行的进程随着CPU占有时间增加,逐渐降低其优先级;就绪队列中等待的CPU进程随等待时间的增加而逐渐提高其优先级,克服了静态优先级的饥饿问题

六、轮转调度算法(BR)

  也称时间片调度。调度程序每次把CPU分配个就绪队列首进程使用规定的时间间隔,称为时间片,就绪队列中的每个进程/线程轮流地运行一个时间片,当时间片耗尽时就强迫当前运行进程让出处理器,转而排列到就绪队列尾部,等待下一轮调度。、

  1.BR调度是一种剥夺式调度,系统在进程切换上的开销比较大,开销与时间片大小有关。

  2.若时间片取值太小,将导致大多数进程都不可能在一个时间片内运行完毕,就会频繁的切换。开销显著增大,所以从系统效率看,时间片取大一点好。

  3.若时间片长度较大,那么随着就绪队列中进程数目增加,轮转一次所耗费总时长变长,即对每个进程的响应速度放慢,甚至时间片大到让进程足以完成其所有任务,RR调度算法便退化成FCFS算法。

  4.为满足用户对响应时间的要求,要么限制就绪队列中进程数量,要么采用变化的时间片长度,根据当前负载状况及时调整时间片大小。所以,确定时间片长度要从数目、切换开销、系统效率和响应时间等多方面因素加以考虑。

七、多级反馈队列调度算法(MFQL)

  又称反馈循环队列,主要思想是:由系统建立多个就绪队列,每个队列对应于一个优先级,第一个队列的优先级最高,第二个队列的优先级次之,其后队列的优先级依次降低。较高优先级队列分配较短时间片,较低优先级队列分配较长时间片。

  1.可能会导致“饥饿”问题,假如有一个长作业进入系统,它最终必将移入优先级最低的就绪队列当中,若其后又源源不断的短作业进入系统,且形成稳定的作业流,则长作业一直等待,陷入“饥饿状态”。解决方法是对于低优先级中等待时间较长的,进程提升其优先级,从而让它获得运行机会。

  2.MLFQ算法具有良好性能,能满足各类应用需要。对于分时交互型短作业,系统通常刻在第一队列规定的时间片内完成工作。

处理机调度算法( RR 、HRRF)的更多相关文章

  1. 关于CLOS架构的举例 网络级 设备级 FATTREE网络 网络级CLOS 以及CLOS涉及的调度算法RR

    1.概述 CLOS来自于传统电路交换概念,这个概念年代太久远,在当前数据通信网络中,内涵有所变化.本文主要谈的是实际上赋予的与原来略微有所差异的内涵. CLOS架构本身概念比较宽泛,有设备级的CLOS ...

  2. 调度器&负载均衡调度算法整理

    一.Linux 调度器   Linux中进程调度器已经经过很多次改进了,目前核心调度器是在CFS(Completely Fair Scheduler),从2.6.23开始被作为默认调度器.用作者Ing ...

  3. LVS部分调度算法的适应场景分析

    1.轮叫调度算法(RR)假设所有服务器处理性能均相同,不管服务器的当前连接数和响应速度.该算法相对简单,不适用于服务器组中处理性能不一的情况,而且当请求服务时间变化比较大时,轮叫调度算法容易导致服务器 ...

  4. 2.5w字 + 36 张图爆肝操作系统面试题,太牛逼了!

    欢迎各位大佬访问我的 github ,跪求 star bestJavaer 大家好,我是 cxuan,我之前汇总了一下关于操作系统的面试题,最近又重新翻阅了一下发现不是很全,现在也到了面试季了,所以我 ...

  5. Keepalived+LVS+nginx双机热备

    Keepalived简介 什么是Keepalived呢,keepalived观其名可知,保持存活,在网络里面就是保持在线了, 也就是所谓的高可用或热备,用来防止单点故障的发生. Keepalived采 ...

  6. LVS集群之NAT模式实现

    LVS集群之NAT模式实现 一.集群的种类 集群系统主要分为 1.HA:高可用集群,又叫双机热备.   (a)原理      2台机器A,B,正常是A提供服务,B待命闲置,当A宕机或服务宕掉,会切换至 ...

  7. keepalived+LVS 实现双机热备、负载均衡、失效转移 高性能 高可用 高伸缩性 服务器集群

    本章笔者亲自动手,使用LVS技术实现实现一个可以支持庞大访问量.高可用性.高伸缩性的服务器集群 在读本章之前,可能有不少读者尚未使用该技术,或者部分读者使用Nginx实现应用层的负载均衡.这里大家都可 ...

  8. Lvs之NAT、DR、TUN三种模式的应用配置案例

    LVS 一.LVS简介     LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟服务器集群系统.本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的 ...

  9. KVM虚拟机网络基础及优化说明

    一个完整的数据包从虚拟机到物理机的路径是: 虚拟机--QEMU虚拟网卡--虚拟化层--内核网桥--物理网卡 KVM的网络优化方案,总的来说,就是让虚拟机访问物理网卡的层数更少,直至对物理网卡的单独占领 ...

随机推荐

  1. PG数据库中用户权限

    每当在数据库中创建一个对象,所有者可以分配它访问权限.所有者通常是执行创建语句的用户.对于大多数类型的对象,初始状态是,只有所有者(或超级用户)可以修改或删除对象.为了让其他角色或用户使用它,特权或权 ...

  2. zabbix自动发现华为,H3C交换机

    一.添加自动发现规则 1.ip范围尽量别太大 zabbix是通过ARP来搜索符合条件的主机的 2.团体名和交换机要一样.这个OID值是提取系统信息的 在OID这块遇到个坑 我用Getif查询到的是1. ...

  3. python3下最简单的九九乘法表

    def minus(): print("=========================九九乘法表===========================") x=1 y=1 wh ...

  4. 深入理解Java虚拟机读书笔记3----类文件结构

    三 类文件结构 1 Java虚拟机的两种中立特性     · 平台无关性     · 语言无关性     实现平台无关性和语言无关性的基础是虚拟机和字节码存储格式(Class文件).   2 Clas ...

  5. Python12(接口继承,子类调用父类,多态)

    接口继承: 基类不用实现内部逻辑,只是为了规范子类,可以用abc模块中以添加装饰器的方式实现 import abc class All_file(metaclass=abc.ABCMeta): @ab ...

  6. python学习(一)--python解释器

    python学习模式,每篇都会有一些总结,然后根据总结去查一查,学一学,基础就会很扎实的 python解释器 1.python版本和安装 python2.x和python3.x https://www ...

  7. 我与OO (1)

    前言 “真正的勇士敢于面对惨淡的人生,敢于面对淋漓的鲜血” 我是谨慎拜读了鲁迅先生的名言,怀着崇敬的精神去接触这门课程的. 而当我真的经历了这门课程以后,我才发现,刘和珍君这样的觉悟,我们普通人,果然 ...

  8. Django04-模板系统Template

    一.模板支持的语法 Django模板中只需要记两种特殊符号: {{ }}表示变量,在模板渲染的时候替换成值{% %}表示逻辑相关的操作. 二. 变量(使用双大括号来引用变量) 1.语法格式:{{var ...

  9. MM-物料分类帐差异分摊

    物料分类帐差异分摊-MR21-MR22: https://wenku.baidu.com/view/6599e8f326fff705cc170ad8.html

  10. 【CZYZ 20160819】背包

    题目描述 蛤布斯有nn个物品和一个大小为mm的背包,每个物品有大小和价值,它希望你帮它求出背包里最多能放下多少价值的物品. 输入数据 第一行两个整数 n,mn,m. 接下来 nn 行每行两个整数 xi ...