一、时间片轮转调度算法

1、算法思想

公平地、轮流地为各个进程服务,让每个进程在一定时间间隔内都可以得到响应。

2、算法规则

按照各进程到达就绪队列的顺序,轮流让各个进程执行一个时间片,若进程未在一个时间片内执行完,则会剥夺处理机,将进程重新放到就绪队列队尾重新排队。

3、用于作业/进程调度

用于进程调度

4、是否可抢占

抢占式算法

5、是否会导致饥饿

不会

6、优缺点

优点:公平,响应快,适用于分时操作系统。

缺点:由于高频率的进程切换,因此有一定的开销,不区分任务的紧急程度。

7、例题

例:各进程到达就绪队列的时间、需要运行时间如下表,使用时间片轮转调度算法,分析时间片大小是2时的进程运行情况。

进程 到达时间 运行时间
P1 0 5
P2 2 4
P3 4 1
P4 5 6

答:

0时刻(P1运行):只有P1到达就绪对列,让P1运行一个时间片2.。

2时刻(P2运行):P2到达就绪对列,P1被剥夺CPU,放到队尾,P2运行。

4时刻(P1运行):P3到达,先插到就绪队列队尾,紧接着,P2也插到队尾。

5时刻(P1运行):P4到达,插到就绪队尾。

6时刻(P3运行):P1时间片用完,重新回到就绪队尾。

7时刻(P2运行):P3主动放弃CPU。

9时刻(P4运行):P2时间片用完,并刚好运行完。

11时刻(P1运行):P4时间片用完,回到就绪队尾。

12时刻(P4运行):P1运行完,主动放弃CPU,就绪队列只剩P4。

二、优先级调度算法

1、算法思想

根据任务的紧急程度来决定处理顺序。

2、算法规则

每个 作业/进程 有各自的优先级,调度时选择优先级最高的 作业/进程。

3、用于作业/进程调度

可用于作业调度,也可用于进程调度,还可以用于I/O调度。

4、是否可抢占

抢占式、非抢占式都有。

5、是否会导致饥饿

6、优缺点

优点:用优先级区分紧急程度、重要程度,适用于实时操作系统,可灵活调整对各作业/进程的偏好程度。

缺点:若源源不断的高优先级到来,会导致饥饿。

7、例题

例:各进程到达就绪队列的时间、需要运行时间、进程优先级如下表。使用非抢占式的优先级调度算法,分析进程运行情况。

进程 到达时间 运行时间 优先级
P1 0 7 1
P2 2 4 2
P3 4 1 3
P4 5 4 2

非抢占式

答:

0时刻(P1运行):只有P1到达。

7时刻(P3运行):P1运行完主动放弃处理机,其余进程都已到达,P3优先级最高。

8时刻(P2运行):P3完成,P2、P4优先级相同,由于P2先到达,P2优先。

12时刻(P4):P2完成,只剩P4。

16时刻:所有进程结束。

抢占式

答:

0时刻(P1运行):P1到达。

2时刻(P2运行):P2到达,优先级更高。

4时刻(P3运行):P3到达,优先级更高。

5时刻(P2运行):P3完成,主动释放,P4到达,由于P2更先进入就绪队列,P2上。

7时刻(P4运行):只剩P1、P4,P4优先级高。

11时刻(P1运行):P4完成,P1上。

注意:优先级未必只有一个,可以按照不同优先级来组织队列,高优先级在队头。

如何合理设置各进程优先级:

系统进程优先级高于用户进程

前台进程优先级高于后台进程

操作系统更偏好I/O型进程

三、多级反馈队列调度算法

1、算法思想

对其他调度算法的折中权衡。

2、算法规则

①设置多级就绪队列,各级队列优先级从高到低时间片从小到大。

②新进程到达时先进入第1级队列,按FCFS原则排队等待被分配时间片,若用完时间片进程未结束,则进程进入下一级队列队尾。如果此时已经是在最下级队列,则重新放回该队列队尾。

③只有第K级队列为空时,才会为k+1级队头的进程分配时间片。

3、用于作业/进程调度

进程调度

4、是否可抢占

抢占式

5、是否会导致饥饿

6、优缺点

对各进程公平,每个新到达的进程都可以很快得到响应,短进程只需较少的时间就可完成,不必实现估计进程的运行时间,可灵活调整对各进程的偏好程度。

7、例题

例:各进程到达就绪队列的时间、需要的运行时间如下表,使用多级反馈队列调度算法,分析各进程运行的过程。

进程 到达时间 运行时间
P1 0 8
P2 1 4
P3 5 1

答:

P1先到达,到第1级队列,使用1个时间片,然后进入下一个队列队尾。

P2到达,先到第1级队列,使用1个时间片,进入到下一队列队尾。

P1,在第2级队列,使用2个时间片,然后进入下一个队列队尾。

P2,在第2级队列,使用1个时间片后,P3到达第1级队列,P2被抢占,P2重新回到第2级队列队尾。

P3,在第1级队列,使用1个时间片,结束。

P2,在第2级队列,使用1个时间片,结束。

P1,在第3级队列,使用4个时间片,然后重新回到第3级队列队尾,重新调度。

上面三种调度算法适用于交互式系统。

【操作系统】-- 时间片轮转调度算法、优先级调度算法、多级反馈队列调度算法相关推荐

  1. 进程调度算法-时间片轮转、最高优先级和多级反馈队列调度算法

    文章目录 前言 一.时间片轮转 二.最高优先级 三.多级反馈队列 总结 前言 从上一篇文章中已经介绍了几种常见的单核CPU进程调度算法,本篇文章顺着上一篇文章的节奏,继续讲解几种剩余常见的进程调度算法 ...

  2. c语言模拟多级反馈队列调度算法实验报告,多级反馈队列调度算法的实现-20210323055826.docx-原创力文档...

    This model paper was revised by LINDA on December 15, 2012. This model paper was revised by LINDA on ...

  3. 【学习笔记】第二章——时间片轮转RR、优先级调度、多级反馈队列调度算法

    文章目录 一. 时间片轮转 二. 优先级调度 三. 多级反馈队列调度算法 四. 总结 一. 时间片轮转 公平,轮流给进程提供时间片 只用于进程调度(只有进程才能被分配时间片) 抢占式,由时钟装置发出时 ...

  4. java多级反馈队列进程调度,多级队列反馈调度算法 请教多级反馈队列调度算法...

    请教多级反馈队列调度算法???????????? 在某一操作系统中对进程调度采用多级反馈队列调度算法.现设定采用三级分数给小编了,小编来 0时刻A到达,进入I队列,执行2个时间段后,转向队列II,再执 ...

  5. 2.2.5 操作系统之调度算法(时间片轮转调度算法、优先级调度算法、多级反馈队列调度算法)

    文章目录 0.思维导图 1.时间片轮转---RR 2.优先级调度算法 3.多级反馈队列调度算法 4.三种算法的对比总结 0.思维导图 1.时间片轮转-RR Round-Robin 时间片为2举例 以时 ...

  6. 时间片轮转(RR)、优先级调度算法以及多级反馈队列调度算法

    一.调度算法 (一)时间片轮转(RR, Round-Robin) 例题:各进程到达就绪队列的时间.需要的运行时间如下表所示.使用时间片轮转调度算法,分析时间片大小分别是2.5时的进程运行情况. 常用于 ...

  7. 调度算法(时间片轮转,优先级调度,多级反馈队列)【操作系统学习笔记】

    16.调度算法(时间片轮转,优先级调度,多级反馈队列) 文章目录 16.调度算法(时间片轮转,优先级调度,多级反馈队列)

  8. 十、调度算法----时间片轮转、优先级调度、多级反馈队列

    一.知识总览 二.时间片轮转法 注意: 如果时间片太大,使得每个进程都可以在一个时间片内完成,则时间片轮转调度算法退化为先来先服务调度算法,并且会增大进程的响应时间,因此时间片不能太大. 另一方面,进 ...

  9. 【进程调度算法】时间片轮转调度算法、多级反馈队列调度算法(Java实现)

    时间片轮转调度算法(RR)是十分简单的进程调度算法. 进程在执行时的情况 在该时间片内进程执行完毕,这种情况调度程序将立即把该进程弹出队列,并把CPU分配给新的队首进程 在该时间片内进程未执行完毕,调 ...

  10. 操作系统 --多级反馈队列调度算法

    操作系统 --多级反馈队列调度算法 转载地址:https://blog.csdn.net/qq_29342297/article/details/83538828 多级反馈队列算法:不需要事先知道各种 ...

最新文章

  1. 网络学习:VLAN和独臂路由
  2. 转- prototype
  3. gdb调试问题Missing separate debuginfos, use: debuginfo-install
  4. java demo在哪里下载_[Java教程]Java学习 (一)、下载,配置环境变量,第一个demo...
  5. 基本概念/MM相关概念
  6. 向量空间模型(Vector Space Model)的理解
  7. IM推送保障及网络优化详解(二):如何做长连接加推送组合方案
  8. pythonsqlite视图_SQLite VIEW/视图
  9. Advapi 登录类型8的错误
  10. 设置ArcGIS的外观改回到出厂
  11. ubuntu20输入法qiehuan_UBUNTU 20 输入法问题
  12. LGD模型开发细节|全网首发
  13. Yii Framework2.0开发教程(5)数据库mysql函数
  14. CentOS安装NVidia驱动提示kernel source path问题
  15. 【2022最新Java面试宝典】—— SpringBoot面试题(44道含答案)
  16. 从客户需求到产品立项六步法
  17. 中国商界的顶级秘法之一:民营企业的五层次策划
  18. redis的高级教程
  19. 软件项目管理 3.5.敏捷生存期模型
  20. Spring定时任务(计划任务)

热门文章

  1. Eucalyptus学习汇总
  2. JTAG接口针脚定义及含义
  3. # 18医工独家|学习方法分享·学游戏打英语
  4. [含论文+源码等]基于java+ssh+mysql实现的共享自行车租赁|出租管理系统
  5. ting56 下载 有声小说 超禁忌游戏
  6. 经典面试题 TCP和UDP有什么区别?
  7. 个人号微信API接口
  8. 一款比较好看的javascript轮播图代码
  9. php tableau,Tableau函数
  10. R语言与抽样技术学习笔记(Randomize)