经典的操作系统调度算法-多级反馈队列(MLFQ)
这里介绍一种著名的调度算法,多级反馈队列(multi-level feedback queue,MLFQ),这种调度策略不但应用在Solaris和FreeBSD和Linux Schedule_RR Policy等Unix家族操作系统中,几乎所有的 RTOS操作系统使用的基于优先级的时间片轮转调度算法,也是MLFQ的一个精简化的变种.
多级反馈队列要解决两个方面的问题,首先,它要优化周转时间,这通过先执行短工作来实现,然而,操作系统通常不知道工作要运行多久,而这又是SJF(或者STCF)等算法所必须的,其次,MLFQ希望给交互用户(例如用户坐在屏幕前,等着进程响应)很好的交互体验,因此需要降低响应时间,然而,像轮转这样的算法虽然降低了响应时间,周转时间却很差,所以这里的问题是,通常我们对进程一无所知,应该如何构建调度程序来实现这些目标?调度程序如何在运行过程中学习进程的特征,从而作出更好的调度决策?
关键问题是:没有完备的知识如何调度?没有工作长度的先验知识,如何实现一个能够同时减少响应时间和周转时间的调度程序?这个问题的答案是,从历史中学习,多级反馈队列是用历史经验预测未来的一个典型例子,操作系统中有很多地方采用了这种技术(同样的问题存在于计算机科学领域的很多地方,比如硬件的分支预测以及缓存算法),如果工作有明显的阶段性行为,因此可以预测,这种方式会很有效.
MLFQ:基本规则
MLFQ中有许多独立的队列,每个队列有不同的优先级,任何时刻,一个工作只能存在与一个队列中.
经典的操作系统调度算法-多级反馈队列(MLFQ)相关推荐
- 多级队列调度算法可视化界面_操作系统:多级反馈队列调度算法模拟(Java实现)...
package com.algorithm.multiStageFeedback; import java.util.*; /** * @Class MSFQS * @Description 多级反馈 ...
- 操作系统_多级反馈队列调度算法
1.设置 N 个就绪进程队列,即队列 0,队列 1,--,队列 N-1,用于存放就绪进程.每个队列 优先级不同,且从队列 0 到队列 N-1,优先级依次递减. 2.不同队列中的进程所赋予的时间片长度 ...
- 调度算法-多级反馈队列+例题详解
1. 调度机制 (1) 设置多个就绪队列. 优先级从高到低,时间片从小到大. (2) 每个队列都采用FCFS算法. 当新进程进入内存后,首先将它放入第一队列的末尾,按FCFS原则等待调度.当轮到该进程 ...
- 【操作系统】调度算法(FCFS、SJF、HRRN、RR、优先级调度、多级反馈队列)
目录 1. 批处理.分时.实时系统 1. 批处理系统 2. 分时系统 3. 实时系统 2. 处理机调度级别 2.1 高级调度(作业调度) 2.2 中级调度 2.3 低级调度(进程调度) 3. 调度算法 ...
- 2.2.5 调度算法:时间片轮转 优先级调度 多级反馈队列
目录 思维导图 时间片轮转算法(RR) 优先级调度算法 多级反馈队列调度算法 思维导图 时间片轮转算法(RR) 当时间片为2时 当时间片为5时 优先级调度算法 多级反馈队列调度算法 运行的动态图如下:
- 多级反馈队列调度算法(附Python3实现代码)
一.多级反馈队列调度算法 多级反馈队列调度算法是进程调度的一种算法,该调度算法可以不用事先知道各种进程所需的执行时间,还可以较好的满足各种类型进程的需要,是目前共认的一种较好的进程调度算法. 那你可能 ...
- python实现进程调度算法_多级反馈队列调度算法(附Python3实现代码)
一.多级反馈队列调度算法 多级反馈队列调度算法是进程调度的一种算法,该调度算法可以不用事先知道各种进程所需的执行时间,还可以较好的满足各种类型进程的需要,是目前共认的一种较好的进程调度算法. 那你可能 ...
- 操作系统 --多级反馈队列调度算法
操作系统 --多级反馈队列调度算法 转载地址:https://blog.csdn.net/qq_29342297/article/details/83538828 多级反馈队列算法:不需要事先知道各种 ...
- 2.2.5 操作系统之调度算法(时间片轮转调度算法、优先级调度算法、多级反馈队列调度算法)
文章目录 0.思维导图 1.时间片轮转---RR 2.优先级调度算法 3.多级反馈队列调度算法 4.三种算法的对比总结 0.思维导图 1.时间片轮转-RR Round-Robin 时间片为2举例 以时 ...
最新文章
- 【php】windows安装PHP5.5+Apache2.4
- KlayGE 4.0中Deferred Rendering的改进(五)完结篇:Post process
- 总奖金近9万!视频超分辨率大赛等你来战!
- ThreadLoacl,InheritableThreadLocal,原理,以及配合线程池使用的一些坑
- php 蓝奏网盘上传文件,蓝奏云_文件上传_API
- HA机制的大数据集群的搭建过程
- vps搭建网站服务器,vps如何架设网站服务器
- PL/SQL Developer 13.0设置中文
- 比较两个文档的相似程度_您的文档对读者的友好程度如何?
- C中的C文件与h文件辨析(转)
- 一个很难的sql面试题
- 森林防火监控系统解决方案
- emouse思·睿—评论与观点整理之一
- 微信语音麦克风静音_微信语音关闭麦克风对方知道吗
- office在线编辑 html,Office在线编辑功能实现.doc
- 第十节、grep、find、sed和awk
- 麻省理工学院公开课:经典力学
- 2017 寒假作业 (一) 随笔
- nand2tetris 第二章 布尔运算
- r34300u和r53500u 哪个好
热门文章
- NOJ-求广义表深度-西工大数据结构
- vue+axios+el-upload实现文件上传(带参数):
- 数据库系统原理第五节
- Jquery获取不到元素
- java 0x80000000_android显示setDataSourceFD失败,播放本地m3u8文件: status=0x80000000
- 帮我写一个复杂的爱心树html代码
- CAD多段线在布局视口中为什么会是“空心”的?
- Angular 服务的创建及使用
- HRNet-C32-3D
- [波波带你手动提取网页视频]05讲 实战Network提取m3u8链接