这里介绍一种著名的调度算法,多级反馈队列(multi-level feedback queue,MLFQ),这种调度策略不但应用在Solaris和FreeBSD和Linux Schedule_RR Policy等Unix家族操作系统中,几乎所有的 RTOS操作系统使用的基于优先级的时间片轮转调度算法,也是MLFQ的一个精简化的变种.

多级反馈队列要解决两个方面的问题,首先,它要优化周转时间,这通过先执行短工作来实现,然而,操作系统通常不知道工作要运行多久,而这又是SJF(或者STCF)等算法所必须的,其次,MLFQ希望给交互用户(例如用户坐在屏幕前,等着进程响应)很好的交互体验,因此需要降低响应时间,然而,像轮转这样的算法虽然降低了响应时间,周转时间却很差,所以这里的问题是,通常我们对进程一无所知,应该如何构建调度程序来实现这些目标?调度程序如何在运行过程中学习进程的特征,从而作出更好的调度决策?

关键问题是:没有完备的知识如何调度?没有工作长度的先验知识,如何实现一个能够同时减少响应时间和周转时间的调度程序?这个问题的答案是,从历史中学习,多级反馈队列是用历史经验预测未来的一个典型例子,操作系统中有很多地方采用了这种技术(同样的问题存在于计算机科学领域的很多地方,比如硬件的分支预测以及缓存算法),如果工作有明显的阶段性行为,因此可以预测,这种方式会很有效.

MLFQ:基本规则

MLFQ中有许多独立的队列,每个队列有不同的优先级,任何时刻,一个工作只能存在与一个队列中.

经典的操作系统调度算法-多级反馈队列(MLFQ)相关推荐

  1. 多级队列调度算法可视化界面_操作系统:多级反馈队列调度算法模拟(Java实现)...

    package com.algorithm.multiStageFeedback; import java.util.*; /** * @Class MSFQS * @Description 多级反馈 ...

  2. 操作系统_多级反馈队列调度算法

    1.设置 N 个就绪进程队列,即队列 0,队列 1,--,队列 N-1,用于存放就绪进程.每个队列 优先级不同,且从队列 0 到队列 N-1,优先级依次递减.  2.不同队列中的进程所赋予的时间片长度 ...

  3. 调度算法-多级反馈队列+例题详解

    1. 调度机制 (1) 设置多个就绪队列. 优先级从高到低,时间片从小到大. (2) 每个队列都采用FCFS算法. 当新进程进入内存后,首先将它放入第一队列的末尾,按FCFS原则等待调度.当轮到该进程 ...

  4. 【操作系统】调度算法(FCFS、SJF、HRRN、RR、优先级调度、多级反馈队列)

    目录 1. 批处理.分时.实时系统 1. 批处理系统 2. 分时系统 3. 实时系统 2. 处理机调度级别 2.1 高级调度(作业调度) 2.2 中级调度 2.3 低级调度(进程调度) 3. 调度算法 ...

  5. 2.2.5 调度算法:时间片轮转 优先级调度 多级反馈队列

    目录 思维导图 时间片轮转算法(RR) 优先级调度算法 多级反馈队列调度算法 思维导图 时间片轮转算法(RR) 当时间片为2时 当时间片为5时 优先级调度算法 多级反馈队列调度算法 运行的动态图如下:

  6. 多级反馈队列调度算法(附Python3实现代码)

    一.多级反馈队列调度算法 多级反馈队列调度算法是进程调度的一种算法,该调度算法可以不用事先知道各种进程所需的执行时间,还可以较好的满足各种类型进程的需要,是目前共认的一种较好的进程调度算法. 那你可能 ...

  7. python实现进程调度算法_多级反馈队列调度算法(附Python3实现代码)

    一.多级反馈队列调度算法 多级反馈队列调度算法是进程调度的一种算法,该调度算法可以不用事先知道各种进程所需的执行时间,还可以较好的满足各种类型进程的需要,是目前共认的一种较好的进程调度算法. 那你可能 ...

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

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

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

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

最新文章

  1. 【php】windows安装PHP5.5+Apache2.4
  2. KlayGE 4.0中Deferred Rendering的改进(五)完结篇:Post process
  3. 总奖金近9万!视频超分辨率大赛等你来战!
  4. ThreadLoacl,InheritableThreadLocal,原理,以及配合线程池使用的一些坑
  5. php 蓝奏网盘上传文件,蓝奏云_文件上传_API
  6. HA机制的大数据集群的搭建过程
  7. vps搭建网站服务器,vps如何架设网站服务器
  8. PL/SQL Developer 13.0设置中文
  9. 比较两个文档的相似程度_您的文档对读者的友好程度如何?
  10. C中的C文件与h文件辨析(转)
  11. 一个很难的sql面试题
  12. 森林防火监控系统解决方案
  13. emouse思·睿—评论与观点整理之一
  14. 微信语音麦克风静音_微信语音关闭麦克风对方知道吗
  15. office在线编辑 html,Office在线编辑功能实现.doc
  16. 第十节、grep、find、sed和awk
  17. 麻省理工学院公开课:经典力学
  18. 2017 寒假作业 (一) 随笔
  19. nand2tetris 第二章 布尔运算
  20. r34300u和r53500u 哪个好

热门文章

  1. NOJ-求广义表深度-西工大数据结构
  2. vue+axios+el-upload实现文件上传(带参数):
  3. 数据库系统原理第五节
  4. Jquery获取不到元素
  5. java 0x80000000_android显示setDataSourceFD失败,播放本地m3u8文件: status=0x80000000
  6. 帮我写一个复杂的爱心树html代码
  7. CAD多段线在布局视口中为什么会是“空心”的?
  8. Angular 服务的创建及使用
  9. HRNet-C32-3D
  10. [波波带你手动提取网页视频]05讲 实战Network提取m3u8链接