[操作系统笔记]处理机调度
创始人
2024-01-18 14:59:21
0

在这里插入图片描述

调度算法

名称英文作业调度进程调度说明特点
先来先服务First-come first-served, FCFS适用适用按作业到达先后顺序(即优先考虑等待时间最长的)非抢占式
短作业优先short job first, SJF适用适用作业越短(即运行时间越短)优先级越高非抢占式(有抢占式)
优先级调度算法priority-scheduling algorithm, PSA适用适用优先级由作业紧迫程度决定抢占式和非抢占式两种
高响应比优先调度算法Highest Response Ratio Next, HRRN适用优先级动态改变且与时间关联,响应比的计算增加系统开销非抢占式
时间片轮转Round Robin, RR适用就绪队列的进程每次运行一个时间片抢占式
多级反馈队列调度算法multi level feedback queue, MLFQ适用多个优先级队列,每个队列采用FCFS,优先级高的队列空了再从低的队列调度抢占式

*SJF算法有抢占式版本,后文可见


基于公平性角度考虑还有保证调度算法公平分享调度算法

保证调度算法的目标是:保证对于n个进程,每个进程都获得1/n的处理机时间

平分享调度算法是针对用户而言的。若用户1有4个进程而用户二有1个,如果按RR调度,用户1则占用了80%的处理机时间,而用户2才占用20%。该算法的目的是确保用户1和用户2占用的处理机时间一样,而不是进程。


系统采用调度算法未必只有一个,可以结合使用

例如MLFQ就可以为每个队列使用FCFS

各算法详细说明

FCFS(最简单的非抢占式调度算法)

对短作业不利,对长作业有利

这里的是否有利的衡量标准是带权周转时间。只考虑等待时间意味着对长作业有利,只考虑运行时间则对短作业有利,

这个思路就是一个队列,队首是下一次要执行的,而要后加入的进入队尾。

具有Convoy 效应,又作护航效应:所有其他进程都等待一个大进程释放CPU资源。

SJF(具有抢占式版本SRTF)

可能存在饥饿问题(长进程得不到处理),具有抢占和非抢占两种方式

常用于长程调度

优点是在所有调度算法中平均等待时间最短,缺点是实际不可行(因为不知道执行时间),当然,可以用先前的估算。


Shortest Remaining Time First (SRTF)是SJF的抢占式版本,其中处理器被分配给最接近完成的作业。 但开销也更多。

PSA

为了照顾紧迫型进程,应采用PSA

貌似也有人管这个叫PR

可以模拟其他调度算法

HRRN

响应比的额外计算增加开销,但是避免了长作业饥饿的问题

优先权=等待时间+要求服务时间要求服务时间=响应时间要求服务时间优先权=\frac{等待时间+要求服务时间}{要求服务时间}=\frac{响应时间}{要求服务时间}优先权=要求服务时间等待时间+要求服务时间​=要求服务时间响应时间​

RR

分时系统一般采用RR

时间片太大,意味着每个进程都能在一轮执行完毕,则退化为FCFS。

上下文切换开销大。

新创建的进程被添加到就绪队列的末尾(有点像FCFS)

某种程度上算是FCFS的抢占式版本

MLFQ

只有当前一级别队列空时,才去调度后一级别队列

较低优先级队列中的进程可能会由于一些短进程占用所有 CPU 时间而遭受饥饿。

上述问题可以通过定期提高所有进程的优先级并将它们全部放入最高优先级队列中解决。

关键知识点

抢占与非抢占区别

抢占意味着可以被中断,非抢占意味着只要执行了就一定能执行完。

非抢占式开销小,实现简单。

在抢占式调度中,调度程序可根据某种原则暂停某个正在执行的进程,将已分配给它的CPU重新分配给另一进程。这种方式比较复杂,系统开销大。进程切换频繁,但是可防止单一进程长时间独占CPU。

主要原则有:

  1. 优先权原则
  2. 短进程优先原则
  3. 时间片原则

在非抢占式调度方式中,引起进程调度的原因有:

  1. 正在执行的进程执行完毕,或因发生某事件而使其无法执行
  2. 正在执行的进程因提出I/O请求而暂停执行
  3. 进程通信/同步过程执行了某种原语(如block)

非抢占式调度方式是进程主动让出,而抢占式由调度程序去操作它让出

各类“时间”

就绪队列里的是进程,不是作业

到达时间(Arrival Time):进程进入就绪队列的时间

运行时间(Burst Time/Execution time/Running time):进程在 CPU 上执行所需的时间,在执行进程之前无法预先知道该进程的运行时间。

周转时间(Turn Around Time):进程从提交到运行结束的全部时间(进程花费的总时间)

等待时间(Waiting Time):进程等待调度(没有运行)的时间片总和(等待获取CPU的时间)

响应时间(Response Time):从进程提交到首次运行的时间段(首次运行不意味着运行完毕)

带权周转时间:周转时间/执行时间


响应时间<=等待时间

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

周转时间=完成时间-等待时间

两道时间计算题解析

假设一个系统中有3个进程,到达时间依次为0,1,3。运行时间依次为3、5和2。若按照时间片轮转(时间片为2)调度算法调度CPU,那么各进程的平均周转时间为:____

6

在这里插入图片描述

其中竖着的黑线意思是到达时间,不难看出(7+3+9)/3≈6.3≈6

另外该图亦体现出RR很重要的一点:当时间片未用完且仅进程结束,时间片也会终止,进行下一轮


假设一个系统中有5个进程,它们到达的时间依次为0、1、2、3和4,运行时间依次为2、3、2、4和1,优先数分别为3、4、2、1、5。若按照非抢占优先数调度算法(优先数小则优先级高)调度CPU,那么各进程的平均周转时间为:____

5.4

先明确一点:非抢占式,也就是每个进程只要运行就能一次运行完,不会被中断。

在这里插入图片描述
(2+10+2+5+8)/5=5.4

短程调度和长程调度之差异

短程调度:频率高、速度快、开销小
长程调度:频率低、速度慢、开销大

*长程调度主要用于多道批处理系统,分时和实时系统不设置这个

CPU调度时机

从运行转到等待(非抢占式)

从运行转到就绪(抢占式)

从等待转到就绪(抢占式)

终止运行(非抢占式)

调度层次

名字又作又作调度对象
高级调度长程调度作业调度作业
中级调度内存调度进程
低级调度短程调度进程调度进程(或内核级线程)

中程调度将进程在内存和外存间换进换出(暂时不能用的进程调入外存,即挂起),以提高内存利用率。

习题

下列进度调度算法中,( )可能出现进程长期得不到运行的情况。

A、静态优先数算法

B、抢占式短作业优先算法

C、时间片轮转调度算法

D、先来先服务算法

A


抢占式CPU调度可能发生在一个进程()时。

A、从运行转到就绪

B、从运行转到等待

C、从运行转到终止

D、新建进程

A

其实意思是,从运行态,发生了抢占之后,会到哪个状态,显然是就绪态。


当系统中( )时,将不会引起系统执行进程调度原语。

A、一个新进程被创建

B、在非抢占调度中,进程A正在运行而进程B恰好被唤醒

C、当前进程执行了P操作

D、分时系统中的时间片用完

B

当然,对于A,如果当前系统的是抢占式,新进程优先级又是最高的,那其实A也不对,当然,答案给的是B。二来新进程被创建,如果是创建->静止就绪,那么被安置在外存,不参与调度(汤晓丹计算机操作系统第四版P43页上方)

B的唤醒,只是说它在就绪队列排好队了,但是不涉及调度

P操作是:当进程在等待资源的时候执行p操作,将信号量减1,如果执行减1后的信号量大于等于0,则该进程则进入执行环节,否则会继续等待。

参考与一些有学习价值的网页

geekforgeeks

[易百教程]操作系统教程

相关内容

热门资讯

九月九重阳节主题活动方案 九月九重阳节主题活动方案(精选15篇)  九月九,插茱萸,登高望远喝小酒;九月九,吃花糕,赏菊品茗会...
小学师生书法比赛活动方案 小学师生书法比赛活动方案“文心领秀,云墨飘香”----胜利教育集团育秀小学师生书法比赛活动方案结合市...
学习笔记20230319 目录 一、final 二、List和Set 三、HashMap扩容机制原理 四、ArrayList...
arcpy基础篇(2)-访问空... 1.检查数据的存在性 在Python脚本中,可以使用Exists函数来检查当前工作空间...
幼儿园毕业典礼活动方案 关于幼儿园毕业典礼活动方案(通用10篇)  为有力保证事情或工作开展的水平质量,常常需要预先准备方案...
消防应急培训演练方案 消防应急培训演练方案  为了确保工作或事情顺利进行,通常需要预先制定一份完整的方案,方案是综合考量事...
同学聚会活动方案 同学聚会活动方案(精选15篇)  为了确保工作或事情能高效地开展,预先制定方案是必不可少的,方案的内...
国务院关于职工工作时间的规定 (1994年2月3日中华人民共和国国务院令第146号发布 根据1995年3月25日《国...
部门团建活动方案 部门团建活动方案(2篇)  为了确保事情或工作得以顺利进行,常常需要预先制定方案,方案指的是为某一次...
C语言函数:判断字符函数,判断... iscntrl:判断是否是控制字符isspace:判断是否是空白字符...这些函数的参数都是一个字符...
内核实验(八):实现O-NON... 一、篇头 继续使用qemu调试内核的实验。本章复习阻塞与非阻塞IO的概念和机制,然后对...
门店运营计划书 门店运营计划书(通用8篇)  光阴迅速,一眨眼就过去了,又迎来了一个全新的起点,此时此刻我们需要开始...
JavaWeb——Idea模板... Idea模板创建Servlet 第一步  第二步  第三步  此处的Servlet模板也可以定...
综合实践活动方案 综合实践活动方案(通用23篇)  为了确保工作或事情有序地进行,往往需要预先制定好方案,方案是从目的...
青少年体能训练计划方案 青少年体能训练计划方案  青少年体能训练计划方案(通用10篇)  为有力保证事情或工作开展的水平质量...
全国爱牙日活动方案   2014年9月20日是我国第二十四个全国“爱牙日”,为发挥家庭的优势和作用,提高家庭成员口腔保健...
第5讲 cameraserve... 本讲是Android Camera Native Framework专题的第5讲,我们...
11-STM32F1 -DMA... 11-STM32F1 -DMA(1) DMA:Data Memory A...
促销活动方案 实用的促销活动方案集锦9篇  为了确保工作或事情有序地进行,常常需要预先制定方案,方案是书面计划,是...
清明节主题党日活动方案 清明节主题党日活动方案(通用7篇)  为了确保活动有序有效开展,我们需要事先制定活动方案,活动方案是...