前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >处理机调度算法

处理机调度算法

作者头像
你的益达
发布于 2020-08-05 06:48:25
发布于 2020-08-05 06:48:25
9950
举报

处理机调度算法

由于进程的数量多于处理机,因此不能并行地处理各个进程,处理机调度就是从就绪队列中按一定的算法选择一个进程分配处理机给他。

先来先服务

先来先服务(first come first serve)调度算法从“公平”的角度考虑,按照进程/作业的先后顺序进行服务。

其最大的缺点是对长作业有利,对短作业不利,就像A和B同时去银行办业务,A的业务只需要2分钟,B的业务需要2个小时,但是B比A就早到一会儿,A要在这干等2个小时,这种算法真的是“公平”吗?

短作业优先

短作业优先(shortest job first)调度算法就是为了解决先来先服务对短作业不利的问题,执行时间最短的进程优先得到服务。

可能导致的问题,产生饥饿,若源源不断的短作业来到就绪队列,则会使长作业得不到服务;

高响应比优先

综合先来先服务和短作业优先,综合考虑短作业和长作业。

高响应比优先(highest response ratio next),每次选择响应比最高的进程为其服务首先给出响应比的定义:

响应比 = (等待时间 + 要求服务时间) / 要求服务时间

我们发现等待时间越长响应比越高,要求服务时间越短响应比越高。综合考虑到了长服务时间的进程和短服务时间的进程。其并不会产生饥饿,对于一长作业而言,随着其服务时间增加其响应比也会增加,总会得到满足的。

以上三种算法只关心用户的公平性,并未考虑响应时间,因此不适合实时交互性系统,只适合批处理系统。

时间片轮转

时间片轮转(Round Robin),公平,轮流为每个进程服务,按照到达顺序,轮流让每个进程执行一个时间片,若一个时间片不足以执行完所有任务,一个时间片执行完后,os回收处理机执行权利,将其插到队尾。

公平、响应快,但是由于高频率的进程切换产生额外的开销、并未考虑到任务的紧急程度。

优先级调度

调度时总是选择优先级最高的进程。

若不断有高优先级的进程进入就绪队列,会使得低优先级的进程迟迟不能得到处理机。

多级反馈调度

综合了上述算法的终极算法。

详细算法:

1)、设置多级队列,各队列优先级从高到低,时间片从小到大,操作系统调度时总是优先处理低优先级的队列的队首元素,只有上级队列为空时才会调度下级的队列。

2)、新的进程到达是首先进入一级队列,其很容易就可以得到操作系统的处理机,若其在当前时间片内没执行完,就将其放入下一级队列的队尾。

优缺点:

其对各种进程都是相对公平的,每个新来的进程都可以很快得到响应,短进程只需较少的时间就可以执行完,此外其还可以避免用户造假

其还是会导致饥饿的,当渊源不断进程进入,长时间要求是进程可能在下级队列久久得不到调度。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-07-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
1-1.调度算法
先来先服务和短作业优先调度算法 ​ 1.FCFS 特点:简单,有利于长作业 即CPU繁忙性作业 ​ 2.短作业进程优先调度算法:SJ(P)F 提高了平均周转时间和平均带权周转时间(从而提高了系统吞吐量) 特点:对长作业不利,有可能得不到服务(饥饿) 估计时间不易确定
见贤思齊
2020/08/05
8230
1-1.调度算法
2.2 处理机调度
若没有处理机调度,就意味着要等到当前运行的进程执行完毕后,下一个进程才能执行,而实际情况中,进程时常需要等待一些外部设备的输入,而外部设备的输入与处理机相比是非常缓慢的,如果让处理机总是等待外部设备,那么对处理机的资源是极大的浪费。而引入处理机调度后,可以在运行进程等待外部设备时,把处理机调度给其他进程,从而提高处理机的利用率,用一句简单的话说,就是为了合理地处理计算机软硬件资源。
week
2018/08/24
4550
三分钟基础:有哪些经典的进程调度算法?
想当初,操作系统创造我时,只是打算让我用 FCFS 调度算法,简单维护下进程的秩序。但我后来的发展,远远超过了他的想象。
帅地
2019/12/05
6K0
三分钟基础:有哪些经典的进程调度算法?
操作系统中进程调度算法详解及例题解释「建议收藏」
用于作业调度时,考虑的是哪个作业先到达后备队列;用于进程调度时,考虑的是哪个进程先到达就绪队列
全栈程序员站长
2022/11/10
1.6K0
操作系统中进程调度算法详解及例题解释「建议收藏」
处理器调度一、CPU调度的相关概念三、批处理系统中常用的调度算法四、交互式系统的调度算法五、多级反馈队列调度算法(重点)七、多处理器调度算法设计
一、CPU调度的相关概念 1.1 cpu调度 其任务是控制、协调进程对cpu的竞争,即按一定的调度算法从就绪队列中选择一个进程,把cpu的使用权交给被选中的进程。如果没有就绪进程,系统会安排一个系统空闲进程或idle进程进入cpu运行。 1.2 系统场景 * N个进程就绪、等待上cpu运行 * M个cpu, M>=1 * 需要决策:给哪个进程分配哪一个cpu? 1.3 cpu调度要解决的三个问题 1、按什么原则选择下一个要执行的进程:调度算法 2、何时进行选择:调度时机 3、如何让被选中的进程上cpu中运行
JavaEdge
2018/05/16
2.7K0
处理机调度及常用的几个调度算法
当有一堆任务要处理,但由于资源有限,这些事情没法同时处理。这就需要确定某种规则来决定处理这些任务的顺序,这就是 “调度” 研究的问题。
wsuo
2020/11/03
2.7K0
处理机调度及常用的几个调度算法
进程的调度算法有哪些
进程的调度算法是操作系统用来决定哪个进程可以执行的一种策略,常见的进程调度算法包括:
程序员朱永胜
2023/12/05
6890
【操作系统不挂科】<CPU调度(13)>选择题(带答案与解析)
A.T1+T2+T3 B.(T1+T2+T3)/3 C.(3T1+2T2+T3)/3 D.(T1+2T2+3T3)/3
YY的秘密代码小屋
2024/11/24
2370
进程调度算法
1. 先来先服务调度算法。先来先服务(FCFS)调度算法是一种最简单的调度算法,该算法既可用于作业调度, 也可用于进程调度。FCFS算法比较有利于长作业(进程),而不利于短作业(进程)。由此可知,本算法适合于CPU繁忙型作业, 而不利于I/O繁忙型的作业(进程)。
黄规速
2022/04/14
1.2K0
大厂面试爱问的「调度算法」,20 张图一举拿下
然后发现,操作系统的知识点考察还是比较多的,大厂就是大厂就爱问基础知识。其中,关于操作系统的「调度算法」考察也算比较频繁。
小林coding
2020/09/10
1.5K0
大厂面试爱问的「调度算法」,20 张图一举拿下
操作系统笔记【处理机调度知识】
CPU 在计算机系统中是非常重要的,但是早期的时候非常简单,是因为它像其他资源一样被一个作业所独占,不存在什么处理及分配或者调度的问题,但是随着各种多道程序的设计以及不同类型的操作系统的出现,不同的CPU的管理方法将会为用户提供不同性能的操作系统
BWH_Steven
2020/06/03
1.4K0
操作系统简介,中断,通道,调度算法
操作系统(英语:operating system,缩写作 OS)是管理计算机硬件与软件资源的计算机程序,同时也是计算机系统的内核与基石。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入设备与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。(来源于百度)
zhangjiqun
2024/12/16
2080
进程调度的原理和算法探析
进程的调度是由操作系统完成的,其目的是为了在一个进程占用CPU执行自己的操作后,选择下一个进程来占用CPU。调度发生的原因很简单,每个进程都希望能够占用CPU进行工作。因此,调度程序会进行上下文切换,并选择一个进程来执行其功能。
努力的小雨
2023/11/16
5570
常用的进程调度算法
进程调度是由操作系统的进程调度程序按照某种策略和算法从就绪态进程中为当前空闲的CPU选择要运⾏的新进程,常用的进程调度算法有以下几种:
越陌度阡
2020/11/26
2.5K0
常用的进程调度算法
Java核心知识点整理大全10-笔记
Java 里面进行多线程通信的主要方式就是共享内存的方式,共享内存主要的关注点有两个:可见 性和有序性原子性。Java 内存模型(JMM)解决了可见性和有序性的问题,而锁解决了原子性的 问题,理想情况下我们希望做到“同步”和“互斥”。有以下常规实现方法:
用户10920956
2024/01/18
1140
Java核心知识点整理大全10-笔记
操作系统中常用的进程调度算法有_调度算法有哪些
先来先服务(FCFS)调度算法是一种最简单的调度算法,该算法既可用于作业调度,也可用于进程调度。当在作业调度中采用该算法时,每次调度都是从后备作业队列中选择一个或多个最先进入该队列的作业,将它们调入内存,为它们分配资源、创建进程,然后放入就绪队列。在进程调度中采用FCFS算法时,则每次调度是从就绪队列中选择一个最先进入该队列的进程,为之分配处理机,使之投入运行。该进程一直运行到完成或发生某事件而阻塞后才放弃处理机。
全栈程序员站长
2022/11/10
3.1K0
进程的调度常用算法
系统将按照作业到达的先后次序来进行作业调度,或者说它是优先考虑在系统中等待时间最长的作业,而不管该作业所需执行时间的长短,从后备作业队列中优先选择几个最先进入该队列的作业,将他们调入内存,为他们分配资源和创建进程。然后把它放入就绪队列。当在进程调度中采用FCFS算法时,每次调度是从就绪的进程队列中选择一个最先进入该队列的进程,为之分配处理机,使之投入运行。该进程一直运行到完成或发生某事件而组赛后,进程调度程序才将处理机分配给其他进程。 在进程调度中采用先来先服务算法的时候,每次调度就从就绪队列中选一个最先进入该队列的进程,为之分配处理机,即谁第一排队谁就先被执行。
一个风轻云淡
2023/10/15
3420
进程的调度常用算法
进程调度算法
**高响应比优先算法规则**:在每次调度时先计算各个作业/进程的*相应比*,选择*相应比最高的*作业/进程为其服务
用户3906509
2020/06/12
2K0
操作系统常用算法
介绍:又称为高级调度或长程调度,调度对象是作业。根据作业控制块(JCB)中的信息,审查系统能否满足用户作业的资源需求,以及按照一定的算法,从外存的后备队列中选取某些作业调入内存,并为他们创建进程、分配必要的资源。然后再将新创建的进程插入到就绪队列,准备执行。
_春华秋实
2018/08/17
2.6K0
进程调度说说吧?讲讲进程调度算法?
不管啥系统,进程的数量一般多余处理机数,那她们就会对处理机争抢,指望着处理机今晚能翻自己的牌子。系统自带的进程也会参与这场争抢,所以后宫太监长进程调度程序会按一定的策略,动态地把处理机分配给处于就绪队列中的某一个进程,以使之执行。
崩天的勾玉
2021/12/20
1.2K0
推荐阅读
相关推荐
1-1.调度算法
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档