【操作系统】调度算法

article/2025/9/15 16:17:47

目录

🏫基本概念

🏥先来先服务(FCFS, First Come First Serve)

🏩短作业优先(SJF, Shortest Job First)

🍆细节

⛪️高响应比优先(HRRN,Highest Response Ratio Next)

🌇时间片轮转(RR,Round-Robin)

🏰时间片大小的影响

🗼优先级调度算法

🌄多级反馈队列调度算法

🌈实例 

🗽多级队列调度


 

🏫基本概念

非剥夺调度方式,又称非抢占方式。即,只允许进程主动放弃处理机。在运行过程中即便有更紧迫的任务到达,当前进程依然会继续使用处理机,直到该进程终止或主动要求进入阻塞态。
 

剥夺调度方式,又称抢占方式。当一个进程正在处理机上执行时,如果有一个更重要或更紧迫的进程需要使用处理机,则立即暂停正在执行的进程,将处理机分配给更重要紧迫的那个进程。
 

饥饿:某进程/作业长期得不到服务。

等待时间:指进程/作业处于等待处理机状态时间之和,等待时间越长,用户满意度越低。

周转时间:作业完成时间 - 作业提交时间
 

带权周转时间:作业周转时间 / 作业实际运行的时间

🏥先来先服务(FCFS, First Come First Serve)


🏩短作业优先(SJF, Shortest Job First)

  1. 短作业/进程优先调度算法:每次调度时选择当前已到达运行时间最短的作业/进程。
  2. 严格来说,用于进程调度应该称为短进程优先调度算法(SPF)
  3. 抢占式的短作业优先算法又称“最短剩余时间优先算法”(SRTN):每当有进程加入就绪队列改变时就需要调度,如果新到达的进程剩余时间比当前运行的进程剩余时间更短,则由新进程抢占处理机,当前运行进程重新回到就绪队列。另外,当一个进程完成时也需要调度。


🍆细节


⛪️高响应比优先(HRRN,Highest Response Ratio Next)

高响应比优先算法:非抢占式的调度算法,只有当前运行的进程主动放弃CPU时(正常/异常完成,或主动阻塞),才需要进行调度,调度时计算所有就绪进程的响应比,选响应比最高的进程上处理机。

以上三种算法主要关心对用户的公平性、平均周转时间、平均等待时间等评价系统整体性能的指标,但是不关心“响应时间”,也并不区分任务的紧急程度,因此对于用户来说,交互性很糟糕。因此这三种算法一般适合用于早期的批处理系统,当然,FCFS算法也常结合其他的算法使用,在现在也扮演着很重要的角色。

🌇时间片轮转(RR,Round-Robin)

时间片轮转调度算法:轮流让就绪队列中的进程依次执行一个时间片(每次选择的都是排在就绪队列队头的进程)





🏰时间片大小的影响

  1. 如果时间片太大,使得每个进程都可以在一个时间片内就完成,则时间片轮转调度算法退化为先来先服务调度算法,并且会增大进程响应时间。因此时间片不能太大。
  2. 另一方面,进程调度、切换是有时间代价的(保存、恢复运行环境),因此如果时间片太小,会导致进程切换过于频繁,系统会花大量的时间来处理进程切换,从而导致实际用于进程执行的时间比例减少。可见时间片也不能太小。

🗼优先级调度算法

  1. 非抢占式的优先级调度算法:每次调度时选择当前已到达优先级最高的进程。当前进程主动放弃处理机时发生调度。
  2. 抢占式的优先级调度算法:每次调度时选择当前已到达且优先级最高的进程。当前进程主动放弃处理机时发生调度。另外,当就绪队列发生改变时也需要检查是会发生抢占



🌄多级反馈队列调度算法

  1. 设置多级就绪队列,各级队列优先级高到低时间片小到大
  2. 新进程到达时先进入第1队列,按FCFS原则排队等待被分配时间片。若用完时间片进程还未结束,则进程进入下一级队列队尾。如果此时已经在最下级的队列,则重新放回最下级队列队尾
  3. 只有第 k 级队列为空时,才会为 k+1 级队头的进程分配时间片
  4. 被抢占处理机的进程重新放回原队列队尾  

🌈实例 

  1. 进程1在第1级队列执行一个时间片,进程1未结束,进入第2级队列
  2. 进程2在第1级队列执行一个时间片,进程2未结束,进入第2级队列
  3. 进程1在第2级队列执行两个时间片,进程1未结束,进入第3级队列
  4. 进程2在第2级队列执行一个时间片,由于此时进程3进入第1级队列,故执行优先级更高的进程3一个时间片,进程3执行完毕。
  5. 第1级队列为空,为第2级队列分配时间片,此时只有进程2,进程2在第2级队列执行两个时间片,进程2执行完毕。
  6. 进入第3级队列,进程1在第3级队列执行四个时间片,进程1尚未结束,但是进程1已经处于最后一个队列,则重新放回最下级队列队尾,执行最后一个时间片,结束进程1。

比起早期的批处理操作系统来说,由于计算机造价大幅降低,因此之后出现的交互式操作系统(包括分时操作系统、实时操作系统等)更注重系统的响应时间、公平性、平衡性等指标。而后三种算法恰好也能较好地满足交互式系统的需求。因此这三种算法适合用于交互式系统

🗽多级队列调度


http://chatgpt.dhexx.cn/article/6SEyue41.shtml

相关文章

调度算法

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格式视频

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

Android m3u8网络视频播放

最近在做 m3u8网络视频播放,踩了不少坑,也试了不少的 框架,特别记录一下其中用的比较多的三种 第一种:media:ijkplayer media:ijkplayer 是由 bilbil 提供的开源的视频 框架,但是由过之后感觉不太好用: …

网页在线视频下载教程(m3u8格式介绍及下载教程)

简介: m3u8文件是苹果公司使用的HTTP Live Streaming(HLS)协议格式的基础。HLS是新一代流媒体传输协议,其基本实现原理为将一个大的媒体文件进行分片,将该分片文件资源路径记录与m3u8文件(即playlist&…

什么是m3u8?

什么是m3u8? ​  m3u8是苹果公司推出的视频播放标准,是m3u8的一种,只是编码格式采用的是UTF-8。 m3u8准确来说是一种索引文件,使用m3u8文件实际上是通过它来解析对应的放在服务器上的视频网络地址,从而实现在线播放。使用m3u8…

M3U8是什么

m3u8是苹果公司推出的视频播放标准,是m3u8的一种,只是编码格式采用的是UTF-8。   m3u8准确来说是一种索引文件,使用m3u8文件实际上是通过它来解析对应的放在服务器上的视频网络地址,从而实现在线播放。使用m3u8格式文件主要因为…

video.js播放m3u8视频

m3u8 是一种基于HTTP Live Streaming(HLS)文件视频格式,它主要是存放整个视频的基本信息和分片(Segment)组成。目前 由 Apple.inc 率先提出的 HLS 协议在 Mac 的 Safari 上原生支持。 video.js是H5视频播放器,支持播放m3u8视频。这…

下载 .m3u8视频文件

简介 M3U8 是 Unicode 版本的 M3U,用 UTF-8 编码。"M3U" 和 "M3U8" 文件都是苹果公司使用的 HTTP Live Streaming(HLS) 协议格式的基础,这种协议格式可以在 iPhone 和 Macbook 等设备播放。 上述文字定义来自…

前端播放m3u8格式视频

m3u8是苹果公司推出的视频播放标准,是m3u的一种,只是编码格式采用的是UTF-8。m3u8准确来说是一种索引文件,使用m3u8文件实际上是通过它来解析对应的放在服务器上的视频网络地址,从而实现在线播放。 m3u8格式的视频是将文件分成一小…