几种常见的调度算法

2023-05-16

文章目录

  • 1.先来先服务算法(FCFS,First Come First Service)
  • 2.短作业优先算法(SJF,Short Job First)
  • 3.高响应比优先算法
  • 4.时间片轮转算法
  • 5.优先级调度算法
  • 6.多级反馈队列算法


1.先来先服务算法(FCFS,First Come First Service)

算法规则:按照作业/进程先后顺序进行服务。顾名思义,就是先来的先为你服务,类似于生活中的银行叫号排队,和排队买奶茶。
算法思想:从公平的角度考虑
举个栗子:
10个人去买奶茶,第一个排队的人买100杯奶茶,后边的9个人都买1杯奶茶,但是因为第一个人是先到的,所以要先为第一个人打奶茶,这样的话,对后边的9个人很不友好,后边的9个人等待时间会很长。

在这里插入图片描述

优点:公平
缺点:不利于短作业进程
于是就引出了短作业优先算法

2.短作业优先算法(SJF,Short Job First)

算法规则:要求服务时间短的进程优先得到服务。
算法思想:追求最少的平均等待时间,平均周转时间和平均带权周转时间。
1.非抢占式的短作业优先算法:有服务时间更短的进程到达就绪队列时,要等待运行中的进程执行完,才调度这个服务时间更短的进程。
在这里插入图片描述

2.抢占式的短作业优先算法:又叫做,最短剩余时间优先算法,即就绪队列中,哪个进程剩余运行时间更短,哪个进程先被调度。
在这里插入图片描述

优点:平均等待时间,平均周转时间更短。
缺点:对短作业有利,对长作业不利,如果有与源源不断的短进程加入到就绪队列时,长进程会长时间得不到服务,会产生饥饿现象,如果一直得不到服务则服务被“饿死”。

先来先服务算法没有考虑作业的运行时间,如果先到的是一个服务时间很长的进程的话,对短进程很不利。
短作业优先算法没有考虑等待时间,如果有很多的短进程到达就绪队列时,长作业会等好久,对长作业很不利。

于是出现了一个同时考虑运行时间和等待时间的算法。

3.高响应比优先算法

算法规则:在每次准备调度时,计算各个进程的响应比(响应比:等待时间+服务时间 /服务时间)
算法思想:总和考虑进程的等待时间和服务时间。
在这里插入图片描述

优缺点:总和考虑了等待时间和服务时间的问题。
等待时间相同时,服务时间短的优先(短作业优先的优点),
服务时间相同时,等待时间长的优先(先来先服务的优点),对于长作业来说随着等待时间越来长,响应比也回越来越大,避免了长作业饥饿的问题。


总结:这三种算法只根据公平,平均等待时间,平均周转时间等来评价系统的整体性能指标,不关心响应时间和任务的紧急陈程度,对于用户来说,交互性很差,所以这三种算法只适用于早期的批处理系统。

4.时间片轮转算法

算法规则:按照各进程到达就绪队列的顺序,轮流让每个进程执行一个时间片,如果进程在一个时间片内没有执行完,则剥夺处理器,将进程重新放到就绪队列的尾部。
算法思想:公平地,轮流地为某个进程服务,让每一个进程在一定时间内都能得到响应。
在这里插入图片描述

5.优先级调度算法

算法规则:调度时选择优先级最高的进程或者作业。
算法思想:要根据任务的紧急程度来决定处理顺序。
在这里插入图片描述

6.多级反馈队列算法

算法规则:
1.设置多级就绪队列,各级队列优先级从高到低,时间片从小到大。
2.新进程到达时,放入第一级队列,按照先来先服务原则排队等待被分配时间片,若时间片用完进程还未执行完,则放到下一级就绪队列尾部,如果已经实在最低级队列,则重新放到队列尾。
3.只有第k级队列为空时,才会为k+1对头的进程分配时间片。

算法思想:对其他算法的这种权衡。
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

几种常见的调度算法 的相关文章

  • ROS2读取realsense摄像头数据并发布topic到ros2

    环境 xff1a ubuntu18 04 ros2 写在前面 xff1a 最近在写项目的自动化测试 xff0c 需要实现先从realsense camera录制一段数据 xff0c 在test case中需要以发布topic的方式播放录制的
  • 研究型论文_基于自编码器和集成学习的半监督异常检测算法

    文章目录 基于自编码器和集成学习的半监督异常检测算法论文摘要论文解决的问题1 算法原理2 算法设计算法的创新点参考资料 基于自编码器和集成学习的半监督异常检测算法 论文摘要 异常检测用来预处理数据 xff0c 挖掘异类数据信息 xff0c
  • 直接上干货!为什么Flutter能最好地改变移动开发?成功拿下大厂offer

    前言 这里整理的是一些与技术没有直接关系的面试题 xff0c 但是能够考察你的综合水平 xff0c 所以不要以为不是技术问题 xff0c 就不看 xff0c 往往有时候就是这样一些细节的题目被忽视 xff0c 而错过了一次次面试机会 想要成
  • 云服务器上ros安装

    Ubuntu16 04安装ROS Kinetic详细过程 xff1a https blog csdn net weixin 43159148 article details 83375218 出现xx release not found x
  • 从驱动到转行到游戏开发的经验

    已经转行 xff0c 但是从自己熟悉的行业转入一个新行业 xff0c 各种心酸只有自己知道 以下是我转行中所读到的图形学相关书 xff1a 1 xff0c Opengl 编程指南 或者龙书 不管你是否志在游戏行业都推荐龙书 xff0c 书中
  • vtk 提取等值面并显示

    marchingcube是提取等值面比较通用的算法 xff0c 本文利用vtk 的marching cube接口提取等值面 xff0c 并通过其绘制管线把等值面绘制出来 其原理请参考下文 xff1a 1 等值面的定义及其三角面片近似 等值面
  • 关于Runnable 和 Thread的应用场景

    摘自StackOverflow 个人觉得比较靠谱的答案 xff0c 细节请看url http stackoverflow com questions 541487 implements runnable vs extends thread
  • JAVA 泛型中的<T> 和 <?> 的应用场景

    在JAVA 泛型中 xff0c 经常看到 lt gt 应用场景为当不确定类型时 因为泛型的输入参数是类型 xff0c 而有一些状况下我们并不能确定类型
  • 构造块和静态块的应用场景

    待补充 xff0c 有点懒
  • 在Github和Git上fork之简单指南

    from https linux cn article 4292 1 rss html 以我的经验来看 xff0c 刚接触Git和GitHub时 xff0c 最困扰的一件事情就是尝试解决下面的问题 xff1a 在Git和GitHub上 xf
  • java 同步原理

    还未来得及写文章呢
  • (华清远见)嵌入式学习月度总结

    文章声明 xff1a 本次总结仅代表个人观点 xff0c 至于哪一家培训机构怎么样 xff0c 同xxx培训比起来如何 xff0c 是否值得报名参加 xff0c 都应该由你自己去斟酌决定 xff0c 仅提供个人感受 xff0c 不提供建议
  • FreeRTOS学习记录 01--中断管理

    文章目录 0 前言1 Cortex M 中断管理1 1 中断配置1 2 优先级分组配置1 3 FreeRTOS中断 PendSv和Systick中断优先级配置 2 FreeRTOS的临界段代码保护和开关中断2 1 临界段代码保护2 2 中断
  • 通信网络中的透传到底什么意思?

    1 透传 xff1a 指与传输网络的介质 调制解调方式 传输方式 传输协议无关的一种数据传送方式 这就好比快递邮件 xff0c 邮件中间有可能通过自行车 汽车 火车 飞机的多种组合运输方式到达您的手上 xff0c 但您不用关心它们中间经历了
  • 2016年个人工作总结、生活总结 和 2017年个人工作计划、生活计划

    个人总结 xff0c 分别对2016年的工作生活总结和计划安排 xff0c 让自己在可预见的目标路线上前进 xff0c 为了自己也为了以后的幸福 一 2016年工作总结 1 2016年上半年 xff0c 完成小步环卫的智能手环 后台 APP
  • pip安装baidu-aip的方法

    记住你以后就有名字啦 万能小p xff1a pip install baidu aip i http pypi douban com simple trusted host pypi douban com 中间错误是这样的 xff1a Co
  • 计算机网络习题集_主打选择填空

    计算机网络习题 计算机网络习题第一章 概述第二章 物理层第三章 数据链路层第四章 网络层第五章 运输层第六章 应用层 附上电子版 链接 xff1a https pan baidu com s 1Y XyB3uAitkz0FtW6u1n0g
  • 不能错过的六大在线画图网站

    图表网站列表 xff1a 1 Highcharts2 online visual paradigm3 everviz4 echarts5 AntV6 fooplot 1 Highcharts Highcharts xff1a https w
  • ubuntu software database is broken问题解决

    ubuntu software database is broken 出现如下字样 xff1a ubuntu software database is broken It is impossible to install or remove
  • 批量处理:读取文件夹,将json文件转化为txt文件

    读取文件夹 xff0c 将json文件转化为txt文件 一 样例1 json文件只有一个样本1 json文件内容2 代码转化3 效果图 二 样例2 json文件中有多个样本1 json文件内容2 代码转化3 效果图 三 样例3 json文件

随机推荐

  • Ubuntu18.04对应的ROS安装步骤教程

    Ubuntu18 04对应的ROS安装教程 一 ROS配置1 配置Ubuntu18 04 软件仓库2 开始安装3 测试 二 遇到的问题1 ROS无法下载问题2 sudo rosdep command not found3 rosdep up
  • 最简ubuntu18.04系统分区教程

    最简ubuntu18 04系统分区教程 一 在分区之前先介绍一下ubuntu的文件系统二 分区详情 一 在分区之前先介绍一下ubuntu的文件系统 1 swap xff1a 用作虚拟内存 xff0c 这个要和自己的物理内存一样大 2G 10
  • Ubuntu系统永久设置串口权限

    Ubuntu系统永久设置串口权限 1 查看串口2 查看当前用户名3 设置串口永久权限 1 查看串口 s l dev ttyUSB0 注 所属用户组为 dialout xff0c root用户才具有操作权限 2 查看当前用户名 span cl
  • 【ROS简介】

    ROS简介 1 ROS是什么 xff1f 2 ROS能干什么 xff1f 3 存在的瓶颈 xff1f 4 涉及的技术 xff08 概率机器人技术 xff09 5 内部构造 1 ROS是什么 xff1f ROS的核心是一个分布式 低耦合的通讯
  • 【上传官方服务器评估TrackingNet数据集】

    1 官方链接 数据集评估链接 xff1a https eval ai web challenges challenge page 1805 overview 2 以zip压缩包的形式提交测试结果 3 查看提交结果 4 在排行榜查看排名
  • 【git常用操作】git的分支创建、切换、提交与关联分支操作

    1 下拉项目 下拉代码建议用ssh密钥方式下拉 xff0c 配置好之后后续操作不需要输入密码等权限验证操作 xff0c 很方便 git clone span class token punctuation span 代码链接 span cl
  • 【国际学术会议举办的城市和国家】

    与计算机视觉相关的国际学术会议在不同年份举办的城市和国家列表 xff08 持续更新中 xff09 会议名 城市和国家 IJCAI2019 Macau China IJCAI2021 Montreal Canada CVPR2005 San
  • 【简历下载教程】

    这里有几个不错的简历下载网站 xff1a 1 https jianlixiazai cn 2 http www yyfangchan com 3 https sc chinaz com jianli free html 4 https sc
  • 软件工程—需求分析阶段

    第一步 需求获取 为了保证能全面地获取信息 xff0c 以更好地服务于产品设计和迭代 xff0c 产品经理必须利用内部外部等多种渠道来获取用户需求 并且因渠道差异 xff0c 产品经理所采取的方式与方法也相应会有所差异 xff0c 所以产品
  • c大小为0的数组

    大小为0的数组 Q xff1a 数组大小为0应该怎么理解 xff1f 比如 xff1a struct page page 0 unsigned long private 0 cacheline aligned A xff1a 一个很好的例子
  • 【安装ROS执行rosdep init、rosdep update失败-本地解决方法】

    Ubuntu系统安装ROS时 xff0c 执行rosdep init rosdep update失败 本地解决方法 1 克隆镜像文件2 修改20 default list文件3 修改sources list py文件文件3 1 执行命令3
  • 中兴2016校招软件在线笔试题

    面试经验可以参考我的另一篇文章 xff0c 是7月初参加openday面试的 xff0c 文章链接http blog csdn net dandelion1314 article details 47009585 招聘群里有人发的招聘时间安
  • docker 图形化界面portainer

    portainer 官方地址 https portainer readthedocs io en latest deployment html 网易镜像网站https c 163yun com hub m home 国内拉去镜像 docke
  • ST电机库v5.4.4源代码分析(6): PID以及相关参数

    编者 xff1a 沉尸 5912129 64 qq com 前言 xff1a 本文章探索st电机库自动生成的PID参数的由来 xff0c 采用的控制板为野火407电机板 43 BLDC带Hall的电机 在 Mcboot 函数中初始化变量 P
  • 【Pixhawk】注册一个字符型驱动设备

    最近学习Pixhawk的SPI xff0c 本以为PX4是STM32单片机而已 xff0c 写个SPI驱动应该很简单 但是当我看到mpu9250的那些cpp文件 xff0c 我一下就蒙了 由于PX4用的NUTTX系统 xff0c 类似Lin
  • 电脑开机过程(腾讯08年面试题)

    打开电源启动机器几乎是电脑爱好者每天必做的事情 xff0c 面对屏幕上出现的一幅幅启动画面 xff0c 我们一点儿也不会感到陌生 xff0c 但是 xff0c 计算机在显示这些启动画面时都做了些什么工作呢 xff1f 相信有的朋友还不是很清
  • 卡尔曼滤波的理解以及推导过程

    针对的系统为 xff1a 状态方程 X k 61 AX k 1 43 Bu k 1 43 W k 1 测量方程 Z k 61 HX k 43 V k 0 W是状态预测的噪声 符合正态分布N 0 Q V 是测量的噪声 符合正态分布N 0 R
  • 车载网络技术——CAN总线基础

    在之前一文 xff0c 简单介绍了一下具有概括性的车载网络技术的基础知识点 xff0c 那么在本文 xff0c 将专注于介绍CAN总线的相关知识 首先 xff0c 回忆一下之前提到的现场总线 xff0c 它是工业环境下的一种应用技术 xff
  • 树莓派3B装系统后无法正常启动的可能原因

    新入手树莓派3B xff0c 按照网上的教程尝试用NOOBS和Raspbian两种方式安装系统 教程里的过程是很简单的 xff0c 但无论用哪种方法 xff0c 我的树莓派3B都无法正常启动 上电后只有红灯亮 xff0c 绿色指示灯不亮 网
  • 几种常见的调度算法

    文章目录 1 先来先服务算法 xff08 FCFS First Come First Service xff09 2 短作业优先算法 xff08 SJF Short Job First xff09 3 高响应比优先算法4 时间片轮转算法5