操作系统(十七)调度算法(二)
2.2.5 调度算法(二)
在上一节中我们讲了三种调度算法,分别是先来先服务算法,短作业优先算法,高相应比优先算法,今天我们再来学习三种算法,分别是时间片轮转算法,优先级调度算法,多级反馈队列算法。
目录
2.2.5 调度算法(二)
2.2.5.1 时间片轮转算法(RR, Round-Robin)
2.2.5.2 优先级调度算法
2.2.5.3 多级反馈调度算法
2.2.5.4 三种调度算法比较
2.2.5.1 时间片轮转算法(RR, Round-Robin)
时间片轮转算法:按照各进程到达就绪队列的顺序,轮流让各个进程执行一个时间片(如 100ms)。若进程未在一个时间片内执行完,则剥夺处理机,将进程重新放到就绪队列队尾重新排队。我们需要注意的是时间片轮转算法应用的对象是进程,因为只有进程才会被分配时间片而作业并不会。时间片轮转算法是一种抢占式的算法,由时钟装置发出中断信号来通知CPU时间已到。
有一组进程,如下图所示,请用时间片轮转算法给出进程的执行顺序,时间片分别设为2以及5 。
时间片为2时,进程到达情况如下:
0时刻:只有P1这一个进程所以P1上处理机运行。
2时刻:P2到达,被存放在就绪队列的队头,刚好P1时间片完于是P1插入到队尾,P2上处理机运行。
4时刻:P3到达,P2时间片用完被插入到P3之后,但此时队头中为P1,于是将P1上处理机运行。
5时刻:P4到达,但是此时P1时间片还没完于是将P4插入到队尾
6时刻:P1的时间片完,下处理机并插入到队尾,处于队头的P3进行调度。
7时刻:虽然P3的时间片还没完但P3已经结束了运行,所以队头的P2发生调度
2.2.5.2 优先级调度算法
优先级调度算法:每个作业/进程有各自的优先级,调度时选择优先级最高的作业/进程。优先级调度算法既有抢占式又有非抢占式,总之一切都是根据优先级高低来决定的。
在如图所示的进程中,我们规定优先数越大,优先级越高,分别用抢占式以及非抢占式给出调度顺序:
非抢占式:(括号中是处于就绪队列中的进程)
0时刻(P1):只有P1到达,P1上处理机。
调度结果如下图所示:
抢占式:
0时刻(P1):只有P1到达,P1上处理机。
2时刻(P2):P2到达就绪队列,优先级比P1更高,发生抢占。P1回到就绪队列,P2上处理机。
2.2.5.3 多级反馈调度算法
多级反馈调度算法实际上是对以上各种算法的折中考虑,算法规则如下:
- 设置多级就绪队列,各级队列优先级从高到低,时间片从小到大
- 新进程到达时先进入第1级队列,按FCFS原则排队等待被分配时间片,若用完时间片进程还未结束,则进程进入下一级队列队尾。如果此时已经是在最下级的队列,则重新放回该队列队尾
- 只有第 k 级队列为空时,才会为 k+1 级队头的进程分配时间片
多级反馈调度算法只适用于进程调度,且也有抢占式和非抢占式两种:抢占式的算法。在 k 级队列的进程运行过程中,若更上级的队列(1~k-1级)中进入了一个新进程,则由于新进程处于优先级更高的队列中,因此新进程会抢占处理机,原来运行的进程放回 k 级队列队尾。
对于以下进程,我们采用抢占式的多级反馈进程调度算法来进行进程调度:(这个过程实在是太难弄了.....我想弄成GIF但失败了)
调度的顺序为P1(1) —> P2(1) —> P1(2)—> P2(1)—> P3(1)—> P2(2)—> P1(4) —> P1(1)(括号中为运行的时间片长度)。
2.2.5.4 三种调度算法比较
算法 | 抢占? | 优点 | 缺点 | 饥饿? | 补充 |
时间片轮转
|
抢占 |
公平,适用于分时系统
|
频繁切换有开销,不区分优先级
|
不会 | 时间片大小设计的影响 |
优先级调度
|
非抢占与抢占均可 |
区分优先级,适用于实时系统
|
可能导致饥饿
|
会 | 动态优先级设置 |
多级反馈队列
|
抢占 | 都是优点 | 会 |
操作系统(十七)调度算法(二)相关推荐
- 计算机操作系统——处理机调度算法
计算机操作系统--处理机调度算法 一.处理机调度的层次和调度算法的目标 1.处理及调度的层次 高级调度:(周期较长,大约几分钟一次) 又称为长程调度或作业调度 调度对象:作业 功能:根据算法决定将外存 ...
- 如何让你的操作系统更安全二
如何让你的操作系统更安全二 360+NOD32 将流氓病毒一扫光 360安全卫士的简介: 360是一款专门用于对付流氓软件的克星,目前成为装机必备的工具.([url]http://www.360.cn ...
- 操作系统--时间片轮转调度算法(RR算法)
操作系统–时间片轮转调度算法(RR算法) 实验内容: 模拟实现时间片轮转调度算法,具体如下: 设置进程体:进程名,进程的到达时间,服务时间,,进程状态(W--等待,R--运行,F--完成),进程间的链 ...
- 天津理工大学《操作系统》实验二,存储器的分配与回收算法实现,代码详解,保姆式注释讲解
天津理工大学<操作系统>实验二,存储器的分配与回收算法实现,代码详解,保姆式注释讲解 实验内容 1. 本实验是模拟操作系统的主存分配,运用可变分区的存储管理算法设计主存分配和回收程序,并不 ...
- 操作系统原理实验二(三)
继续完成操作系统原理的实验 4.5(实验目的:熟悉Window线程创建过程)在windows环境下,利用高级语言编程环境(限定为VS环境或VC环境)调用CreateThread函数实现"并发 ...
- ROS机器人操作系统学习(二)
ROS机器人操作系统学习(二) ROS概念 通信机制+开发工具+应用功能+生态系统 提高机器人研发中的软件复用率 通信机制 松耦合分布式通信 开发工具 应用功能 生态系统 节点与节点管理器 话题与服务 ...
- 操作系统权限提升(二十三)之Linux提权-通配符(ws)提权
系列文章 操作系统权限提升(十八)之Linux提权-内核提权 操作系统权限提升(十九)之Linux提权-SUID提权 操作系统权限提升(二十)之Linux提权-计划任务提权 操作系统权限提升(二十一) ...
- 操作系统作业调度算法c语言,操作系统课程设计报告电梯调度算法c语言实现.doc...
操作系统课程设计报告电梯调度算法c语言实现 操作系统课程设计报告电梯调度算法c语言实现 :调度 算法 电梯 课程设计 操作系统 操作系统课程设计报告 模拟操作系统课程设计 写一个简单的操作系统 篇一: ...
- 用一个创业故事串起操作系统原理(二)
来自:刘超的通俗云计算 上一节说到小马同学的公司已经创立了,还请来了周瑜和张昭作为帮手,所谓"兄弟齐心,其利断金".可是,现在这家公司,还得从接第一个外部项目开始. 第四回:首个项 ...
- 【操作系统】实验二 作业调度模拟程序
实验二作业调度模拟程序 一.目的和要求 1. 实验目的 (1)加深对作业调度算法的理解: (2)进行程序设计的训练. 2.实验要求 用高级语言编写一个或多个作业调度的模拟程序. 单道批处理系统的作业调 ...
最新文章
- ios单应用模式_如何为iOS 13暗模式设置应用
- 48本3D视觉领域学习书籍,请自取
- hibernate和jdbc的优缺点,概述
- 应用程序错误电脑黑屏_电脑黑屏了怎么办,电脑硬件win黑屏的6大原因以及解决方法...
- Nagios Apache报Internal Server Error错误的解决方法
- iOS微博项目(一)
- Unix操作系统目录存放内容
- 计算机科学技术专业解析,专业解读—计算机科学与技术
- EJB3.0零碎要点---在部署web本地客户端的时候org.apache.jasper.JasperException: java.lang.ClassCastException: $Proxy
- Nginx Unit 1.8.0 发布,动态 Web 应用服务器
- 10g手动创建数据库
- 牛客网编程练习之编程马拉松:发工资
- js原生attachEvent与addEventListener的用法
- 联想Thinkpad E430 原装win8改版win7的BIOS设置
- Python量化分析,计算KDJ
- “自贸云”+“自贸大数据”将加速辽宁自贸区建设与创新
- Leaflet地图 -- 绘制台风风圈
- appbase 和docbase
- 基于纠错编码的数字水印matlab,method robustness是什么意思
- 链塔智库|区块链产业要闻及动态周报(2020年10月第2周)