处理机调度算法( RR 、HRRF)
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)的更多相关文章
- 关于CLOS架构的举例 网络级 设备级 FATTREE网络 网络级CLOS 以及CLOS涉及的调度算法RR
1.概述 CLOS来自于传统电路交换概念,这个概念年代太久远,在当前数据通信网络中,内涵有所变化.本文主要谈的是实际上赋予的与原来略微有所差异的内涵. CLOS架构本身概念比较宽泛,有设备级的CLOS ...
- 调度器&负载均衡调度算法整理
一.Linux 调度器 Linux中进程调度器已经经过很多次改进了,目前核心调度器是在CFS(Completely Fair Scheduler),从2.6.23开始被作为默认调度器.用作者Ing ...
- LVS部分调度算法的适应场景分析
1.轮叫调度算法(RR)假设所有服务器处理性能均相同,不管服务器的当前连接数和响应速度.该算法相对简单,不适用于服务器组中处理性能不一的情况,而且当请求服务时间变化比较大时,轮叫调度算法容易导致服务器 ...
- 2.5w字 + 36 张图爆肝操作系统面试题,太牛逼了!
欢迎各位大佬访问我的 github ,跪求 star bestJavaer 大家好,我是 cxuan,我之前汇总了一下关于操作系统的面试题,最近又重新翻阅了一下发现不是很全,现在也到了面试季了,所以我 ...
- Keepalived+LVS+nginx双机热备
Keepalived简介 什么是Keepalived呢,keepalived观其名可知,保持存活,在网络里面就是保持在线了, 也就是所谓的高可用或热备,用来防止单点故障的发生. Keepalived采 ...
- LVS集群之NAT模式实现
LVS集群之NAT模式实现 一.集群的种类 集群系统主要分为 1.HA:高可用集群,又叫双机热备. (a)原理 2台机器A,B,正常是A提供服务,B待命闲置,当A宕机或服务宕掉,会切换至 ...
- keepalived+LVS 实现双机热备、负载均衡、失效转移 高性能 高可用 高伸缩性 服务器集群
本章笔者亲自动手,使用LVS技术实现实现一个可以支持庞大访问量.高可用性.高伸缩性的服务器集群 在读本章之前,可能有不少读者尚未使用该技术,或者部分读者使用Nginx实现应用层的负载均衡.这里大家都可 ...
- Lvs之NAT、DR、TUN三种模式的应用配置案例
LVS 一.LVS简介 LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟服务器集群系统.本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的 ...
- KVM虚拟机网络基础及优化说明
一个完整的数据包从虚拟机到物理机的路径是: 虚拟机--QEMU虚拟网卡--虚拟化层--内核网桥--物理网卡 KVM的网络优化方案,总的来说,就是让虚拟机访问物理网卡的层数更少,直至对物理网卡的单独占领 ...
随机推荐
- Linux 系统状态检测命令
介绍快速查看Linux系统运行状态的能力(网络网卡.系统内核.系统负载.内存使用情况.启用终端数量.历史登录记录.命令执行记录.救援诊断)等命令使用方法 1.ifconfig 用于获取网卡配置和网络 ...
- sql语句应用
laravel5.6框架中用到的sql语句 //排序 $data=DB::table('admin')->select(array('id','name','password'))->or ...
- ubuntu安装rabbitmq(转)
查看ubuntu当前版本命令: cat /etc/issue 由于rabbitMq需要erlang语言的支持,在安装rabbitMq之前需要安装erlang,执行命令: sudo apt-get in ...
- SQL游标在递归是的时候提示 "游标" 名称已经存在的问题
游标的语法: DECLARE cursor_name CURSOR [ LOCAL | GLOBAL ] [ FORWARD_ONLY | SCROLL ] [ STATIC | KEYSET | D ...
- inline-block的理解
首先我们大概区分下 inline与inline-block.block的区别, 官方定义如下: inline:内联元素,从左到右依次排列,宽度高度由内容决定: block:块级元素,独占一行,可以设定 ...
- cf1047C-Enlarge GCD-(欧拉筛+map+gcd+唯一分解定理)
https://vjudge.net/problem/CodeForces-1047C 题意:有n个数,他们有个最大公约数设为maxxgcd,要删去一些数,使得剩下的数的gcd大于maxxgcd. 解 ...
- Linux 用户与组
在 Linux 操作系统下,如何添加一个新用户到一个特定的组中?如何同时将用户添加到多个组中?又如何将一个已存在的用户移动到某个组或者给他增加一个组?对于不常用 Linux 的人来讲,记忆 Linux ...
- 机器学习--Xgboost调参
Xgboost参数 'booster':'gbtree', 'objective': 'multi:softmax', 多分类的问题 'num_class':10, 类别数,与 multisoftma ...
- Spring <mvc:default-servlet-handler/>
优雅REST风格的资源URL不希望带 .html 或 .do 等后缀.由于早期的Spring MVC不能很好地处理静态资源,所以在web.xml中配置DispatcherServlet的请求映射,往往 ...
- 云笔记项目- 上传文件报错"java.lang.IllegalStateException: File has been moved - cannot be read again"
在做文件上传时,当写入上传的文件到文件时,会报错“java.lang.IllegalStateException: File has been moved - cannot be read again ...