操作系统的常见调度算法

article/2025/9/16 0:23:38

1.先来先服务调度算法(FCFS)

特性:相对其他调度算法最简单、具有非抢占性、不可剥夺、可用于作业调度和进程调度。

使用特点:用于长作业,不利于短作业(对于SJF(短作业)的高响应比);利于CPU繁忙型作业,不利于I/O繁忙型作业。

运行:(1)在作业调度中,系统按照作业到达的先后次序来进行调度,或者说它会优先考虑在系统中等待时间最长的作业,无需考虑作业执行时间。(2)在进程调度中采用FCFS调度算法时,每次调度都是从就绪的进程队列中选择一个最先进入该队列的进程,并为之分配处理机,使之投入运行。在该进程一直运行到完成或发生某事件而阻塞后,进程调度程序才会将处理机分配给其他进程。

FCFS调度算法会从后备作业队列中选择几个最先进入该队列的作业,将它们调入内存,并为它们分配资源和创建进程,最后,把它们放入就绪进程。

总结:先来的先给它服务。

注解:这个算法虽然简单并且公平,但是总体来讲,对长作业或者长进程有利,而且效率比较低,特别是当一个进程需要多次请求I/O的时候,会对后面排队的进程造成很大的影响

例题:各进程到达就绪队列的时间、需要的运行时间如下表所示。使用FCFS算出各进程的等待时间、平均等待时间、周转时间、平均周转时间、带权周转时间、平均带权周转时间。

进程到达时间运行时间
p107
p224
p341
p454

周转时间 = 完成时间(运行时间+开始时间) - 到达时间                                                           

p1=7-0=7; p2=11(7+4)-2=9; p3=12(7+4+1)-4=8; p4=16(7+4+1+4)-5=11                                         

带权周转时间 = 周转时间 / 运行时间                                                                                                 

p1=7/7=1;  p2=9/4=2.25;  p3=8/1=8;  p4=11/4=2.75                                                                         

等待时间 = 周转时间 - 运行时间                                                                                                         

p1=7-7=0;  p2=9-4=5; p3=8-1=7;  p4=11-4=7   

 

如果是又有计算、又有I/O操作的进程,其等待时间就是周转时间 - 运行时间 - I/O操作的时间。                                                                              

平均周转时间 = (7+9+8+11)/4 = 8.75                                                                                           

平均带权周转时间 = (1+2.25+8+2.75)/4=3.5                                                                               

平均等待时间 = (0+5+7+7)/4 = 4.75

2.短作业优先算法(SJF)

运行:SJF是从后备队列中选择一个或若干个估计运行时间最短的作业,将它们调入内存运行。               SPF(短进程优先)是从就绪队列中选择一个估计运行时间最短的进程,将处理机分配给               它,使之立即执行,直到完成或发生某事件而阻塞时,才释放处理机。

特点:(1)SJF对长作业不利,会导致作业/进程饥饿。(2)不可保证紧迫作业会被及时处理,                非抢占。 (3)作业长短根据用户的估计执行时间决定,该算法不一定能做到短作业优先                 调度。(4)使用SJF时,无法实现人机交互。

注意:SJF调度算法的平均等待时间、平均周转时间最少。

例题:各进程到达就绪队列的时间、需要的运行时间如下表所示。使用SJF算出各进程的等待时间、平均等待时间、周转时间、平均周转时间、带权周转时间、平均带权周转时间。

进程到达时间运行时间
p107
p224
p341
p454

短作业/进程优先调度算法:每次调度时选择当前已到达且运行时间最短的作业/进程

调度顺序为:p1 ->  p3  ->  p2  ->  p4

周转时间 = 完成时间(运行时间+开始时间) - 到达时间                                                                       

 p1=7-0=7; p3=8(7+1)-4=4; p2=12(7+1+4)-2=10; p4=16(7+1+4+4)-5=11                                         

带权周转时间 = 周转时间 / 运行时间                                                                                                 

p1=7/7=1;  p3=4/4=1;  p2=10/4=2.5;  p4=11/4=2.75                                                                         

等待时间 = 周转时间 - 运行时间                                                                                                         

p1=7-7=0;  p3=4-1=3; p2=10-4=6;  p4=11-4=7                       

平均周转时间 = (7+4+10+11)/4 = 8                                                                                           

平均带权周转时间 = (1+4+2.5+2.75)/4=2.56                                                                               

平均等待时间 = (0+3+6+7)/4 = 4

3.高响应比优先调度算法(HRRN)

 特点:(1)是对FCFS调度算法和SJF调度算法的综合平衡;(2)当作业的等待时间相同时,要求服务时间越短,其响应比越高,适合短作业; (3)要求服务时间相同时,作业的响应比由其等待时间决定,等待时间越长,其响应比越高,适合先来先服务;(4)对于长作业,作业的响应比可以随等待时间的增加而提高,当其等待时间足够长时,其相应比便可升到很高,从而也可获得处理机。克服了饥饿状态,兼顾了长作业。

 响应比变化规律:                                                                                                                                       响应比Rp = (等待时间 + 要求服务时间) / 要求服务时间   

         响应比Rp = 响应时间 / 要求服务时间                                                                     

例题:各进程到达就绪队列的时间、需要的运行时间如下表所示。使用HRRN算出各进程的等待时间、平均等待时间、周转时间、平均周转时间、带权周转时间、平均带权周转时间。

进程到达时间运行时间
p107
p224
p341
p454

0时刻:只有p1到达就绪队列,p1上处理机                                                                                       

7时刻:(p1主动放弃CPU):就绪队列中有p2(响应比=(5+4) /4=2.25)、p3((3+1)/1=4)、                          p4((2+4) /4=1.5)                                                                                                                 

8时刻(p3完成):p2(2.5)、p4(1.75)                                                                                               

12时刻(p2完成):就绪队列中只剩下p4

4.轮转调度算法

特点:分时系统中常用的进程调度算法时基于时间片的轮转(RR)调度算法;抢占式; 

运行:在轮转(RR)法中,系统将所有的就绪进程按FCFS策略排成一个就绪队列。系统可设置每隔一定时间(如30 ms)便产生一次中断,去激活进程调度程序进行调度,把CPU分配给队首进程,并令其执行一个时间片。当它运行完毕后,又把处理机分配给就绪队列中新的队首进程,也让它执行一个时间片。
在RR调度算法中,应在何时进行进程的切换,可分为两种情况:① 若一个时间片尚未用完,正在运行的进程便已经完成,就立即激活调度程序,将它从就绪队列中删除,再调度就绪队列中队首的进程运行,并启动一个新的时间片。② 在一个时间片用完时,计时器中断处理程序被激活。如果进程尚未运行完毕,调度程序将把它送往就绪队列的末尾。
 

例题:q = 1和q = 4时进程的周转时间如下

cb579aa3e20a41cf8d13e7dd418240f0.png

 

解析如下:
以q=4为例,当进程A到达时间=0,服务时间=4,正好是一个时间片的时间q。所以完成时间=4,周转时间=完成时间-到达时间=4,带权周转时间=周转时间/提供服务的时间=4/4=1。
为了更好理解,我们看继续进程B:由于进程B在A执行一个时间片之后,所以B进程的等待时间=4,一个新的时间片到来,进行执行进程B,而进程B的服务时间为3,小于一个时间片,因此进程B可以在一个时间片内结束,而且可以提前激活调度程序。B进程的完成时间=等待时间+服务时间=4+3=7,周转时间=完成时间-到达时间=7-1=6,带权周转时间=周转时间/提供服务的时间=6/3=2。

对于时间片的计算:

计算表达式:q=R/Nmax                                       

q:时间片长度      Nmax:就绪队列要求的最大进程数量        R:系统对响应时间的要求  

 

 

 


http://chatgpt.dhexx.cn/article/YQrFLC0P.shtml

相关文章

常见的作业调度算法

目录 写在前面先来先服务算法短作业优先算法高响应比优先调度算法 写在前面 评价作业调度算法的优劣,通常看平均周转时间和带权周转时间周转时间 作业完成时间 - 作业到达时间平均周转时间 (作业完成时间 - 作业到达时间)/ 作业数量带权周…

进程(作业)调度算法

3.2 调度算法(重点!!!) 一、先来先服务和短作业(进程)优先调度算法二、高优先权优先调度算法三、基于时间片的轮转调度算法 一、先来先服务和短作业(进程)优先调度算法…

优先级调度算法

算法介绍 优先调度算法的类型(用于作业调度) 1)非抢占式优先权调度算法 系统一旦把处理机分配给优先权最高的进程后,便一直执行下去,至完成。 2)抢占式优先权调度算法 只要系统中出现一个新的就绪进程…

进程调度算法;先来先服务调度算法、短作业优先调度算法、时间片轮转调度算法

一、 实验目的和要求 1. 了解进程调度算法的特点 2. 掌握进程调度算法,如先来先服务调度算法(first come first served,FCFS)、短作业优先调度算法(shotjob first,SJF)、时间片轮转调度算法。 二、 实验内容 …

操作系统调度算法--高响应比优先调度算法解析

高响应比优先调度算法(Highest Response Radio Next,HRRN)是一种对CPU中央控制器响应比的分配的算法。HRRN是介于FCFS(先来先服务算法)与SJF(短作业优先算法)之间的折中算法。FCFS算法所考虑的只…

进程调度算法

操作系统常见的进程调度算法 调度算法是指:根据系统的资源分配策略所规定的资源分配算法。常见的进程调度算法有: 1.先来先去服务 2.时间片轮转法 3.多级反馈队列算法 4.最短进程优先 5.最短剩余时间优先 6.最高响应比优先 7.多级反馈队列调度算法 一、…

【操作系统】调度算法

目录 🏫基本概念 🏥先来先服务(FCFS, First Come First Serve) 🏩短作业优先(SJF, Shortest Job First) 🍆细节 ⛪️高响应比优先(HRRN,Highest Response Ratio Next) &#x…

调度算法

1.先来先服务调度算法(FCFS): 按照到达的先后顺序进行调度。 周转时间完成时间 - 到达时间 带权周转时间周转时间 / 运行时间 等待时间周转时间 - 运行时间 特殊情况:当有I/O操作(输入/输出)的进程的时候…

操作系统——调度算法

文章目录 前言一、先来先服务(FCFS)二、最短时间优先(SJF)三、最高响应比优先(HRRN)四、时间片轮转(RR)五、优先级调度六、多级反馈队列总结 前言 本文的主要内容是调度算法的介绍,包括先来先服务(FCFS)、最短时间优先(SJF)、最高响应比优先(HRRN)、时间片轮转(RR)…

调度算法-优先级调度算法+例题详解

1. 优先级调度算法的类型 优先级进程调度算法,是把处理机分配给就绪队列中优先级最高的进程。这时,又可进一步把该算法分成如下两种。 非抢占式优先级调度算法。抢占式优先级调度算法。 2. 优先级的类型 静态优先级 静态优先级是在创建进程时确定的&…

【操作系统】常用的调度算法

文章目录 前言先来先服务调度算法(FCFS)短作业/短进程优先算法(SJF/SPF)时间片轮转调度算法(RR)高响应比优先调度算法(HRRF)优先级调度算法(PSA)静态优先级动…

【操作系统】几种常用调度算法

文章目录 一、先来先服务调度算法(FCFS)二、短作业优先调度算法(SJF)最短作业优先调度算法(SJF)最短剩余时间优先调度算法(SRTF) 三、响应比最高者优先调度算法(HRRF&…

【操作系统】_7种进程调度算法

书中一共描述了七种进程调度算法,为了学到这几种调度算法,后边做了几道练习题。 1. 先来先服务(FCFS)调度算法 先来先服务调度算法是最简单的调度方法。其基本原则是,按照进程进入就绪队列的先后次序进行选择。对于进…

常用的调度算法(包含实例)|操作系统

目录 1.先来先服务调度算法(FCFS)2.优先级调度算法3.最短作业优先调度算法(SJF)4.最高响应比优先调度算法(HRRN)5.轮转调度算法(RR)6.多级反馈轮转调度算法7.实时系统的调度算法 1.先…

几种常见的调度算法

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

videojs播放m3u8格式视频

videojs 是不支持m3u8格式,需要配合videojs-contrib-hls插件 npm install --save video.js npm install --save videojs-contrib-hls 不加muted 刷新时不会自动播放,但是加上就会没有声音了,因为业务不需要声音所以没有影响

一个可以在线播放解析m3u8,mp4的网站 m3u8player.lantianye3.top

自己写的一个可以在线播放m3u8的网页,在这里分享一下。借助m3u8 player网页播放器,只需将您的M3U8文件地址或者mp4链接复制粘贴到播放器地址栏中然后点击播放即可。 网站 http://m3u8player.lantianye3.top/ 如有不足,多多指教。 首页截图&am…

视频工具下载(m3u8、MP4)

下载视频m3u8工具 FFmpeg 转 ts 格式 笔记有点乱 都是一笔带过(有链接),可以参考别人教程 1、下载m3u8工具(支持win和liunx) 下载链接 20201019 (都是2020年的,还是可以用) 使用…

前端如何播放m3u8格式的视频

m3u8格式的视频是将文件分成一小段一小段的ts文件,播放完一个在播放下一个,由于每次请求的ts文件都很小,所以基本可以做到无延时播放。目前WEB上主流的直播方案主要是HLS和RTMP,移动端主要是HLS,PC端主要是RTMP。 HLS…

如何下载m3u8格式视频

小编记得以前手机流量少的时候,电脑上下课程或电影再存到手机上看还是很容易的 现在虽然这种需求比较少,但还是有一些视频想下载下来,不过却发现下不了了因为很多的视频都不提供下载地址或下载的是加密的视频格式 即使我们能通过工具采集到…