【操作系统篇】第五篇——调度(概念,层次,调度时机,切换与过程,方式,评价指标)

​基本概念

​三个层次

​高级调度(作业调度)

​中级调度(内存调度)

​低级调度(进程调度) 

​三层调度的联系,对比

​补充知识

​进程的"挂起态"与七状态模型

​时机

​什么时候需要进程调度

​什么时候不能进行进程调度

​切换与过程

​"狭义的调度"

​方式

​非剥夺调度方式(非抢占式)

​剥夺调度方式(抢占式)

​调度器

闲逛进程

调度算法的评价指标

​CPU利用率

​系统吞吐量

​周转时间

​等待时间

​响应时间


基本概念

当有一堆任务要处理,但由于资源有限,这些事情无法同时处理。这就需要确定某种规则决定处理这些任务的顺序,这就是"调度"研究的问题。

 处理机调度是对处理机进行分配,就是从就绪队列中,按照一定的算法(公平,高效)选择一个进程并将处理机分配给它运行,以实现进程并发地执行。

处理机调度是多道程序操作系统的基础,它是操作系统设计的核心问题。

三个层次

高级调度(作业调度)

作业调度。又称高级调度,.其主要任务是按一定的原则从外存上处于后备状态的作业中挑选一个(或多个)作业,给它(们)分配内存、输入/输出设备等必要的资源,并建立相应的进程,以使它(们)获得竞争处理机的权利。简言之,就是内存与辅存之间的调度。对于每个作业只调入一次、调出一次。

作业:一个具体的任务

用户向系统提交一个作业=用户让操作系统启动一个程序(来处理一个具体的任务)

 由于内存空间有限,有时无法将用户提交的作业全部放入内存,这时候操作系统就要进行高级调度

高级调度(作业调度)。按照一定的原则从外存的作业后备队列中挑选一个作业调入内存,并创建进程。每个作业只调入一次,调出一次。作业调入时会建立PCB,调出时才撤销PCB。

 

中级调度(内存调度)

内存不够时,可将某些进程的数据调出外存。等内存空闲或者进程需要运行时再重新调入内存。
暂时调到外存等待的进程状态为 挂起状态 。被挂起的进程 PCB 会被组织成 挂起队列
中级调度(内存调度) —— 按照某种策略决定将哪个处于挂起状态的进程重新调入内存。
一个进程可能会被多次调出、调入内存,因此 中级调度 发生的 频率 要比高级调度 更高
 

低级调度(进程调度) 

进程调度。又称为低级调度,其主要任务是按照某种方法和策略从就绪队列中选取一个进程,将处理机分配给它。进程调度是操作系统中最基本的一种调度,在一般操作系统中都必须配置进程调度。进程调度的频率很高,一般几十毫秒一次。

三层调度的联系,对比

作业调度从外存的后备队列中选择一批作业进入内存,为它们建立进程,这些进程被送入就绪队列,进程调度从就绪队列中选出一个进程,并把其状态改为运行状态,把CPU分配给它。中级调度是为了提高内存的利用率,系统将那些暂时不能运行的进程挂起来,当内存空间宽松时,通过中级调度选择具备运行条件的进程,将其唤醒。

1.作业调度为进程活动做准备,进程调度使进程正常活动起来,中级调度将暂时不能运行的进程挂起,中级调度处于作业调度和进程调度之间。

2.作业调度次数少,中级调度次数略多,进程调度频率最高。

3. 进程调度是最基本的,不可或缺。

补充知识

进程的"挂起态"与七状态模型

暂时调到外存等待的进程状态为挂起状态(挂起态)

挂起态又可以进一步细分为就绪挂起,阻塞挂起两种状态

注意“挂起”和“阻塞”的区别,两种状态都是暂时不能获得CPU 的服务,但挂起态是将进程映像调到外存去了,而阻塞态下进程映像还在内存中。

时机

什么时候需要进程调度

进程调度(低级调度),就是按照某种算法从就绪队列中选择一个进程为其分配处理机。

1.当前运行的进程主动放弃处理机:进程正常终止;运行过程中发生异常而终止;进程主动请求阻塞

2.当前运行的进程被动放弃处理机:分给进程的时间片用完;有更紧急的事需要处理;有更高优先级的进程进入就绪队列

什么时候不能进行进程调度

1.处理中断的过程中。中断处理过程复杂,与硬件密切相关,很难做到在中断处理过程中进行进程切换。

2.进程在操作系统内核程序临界区中。

补充:

临界资源:一个时间段内只允许一个进程使用的资源。各进程需要互斥地访问临界资源。

临界区:访问临界资源的那段代码。

内核程序临界区 一般是用来访问 某种内核数据结构 的,比如进程的就绪队列(由各就绪进程的 PCB 组成)

3.在原子操作过程中(原语)。原子操作不可中断,要一气呵成(如之前讲过的修改PCB中进程状态标志,并把PCB放到相应队列)

切换与过程

"狭义的调度"

狭义的进程调度指的是从就绪队列中选中一个要运行的进程。(这个进程可以是刚刚被暂停执行的进程,也可能是另一个进程,后一种情况就需要进程切换)

进程切换是指一个进程让出处理机,由另一个进程占用处理机的过程。

广义的进程调度 包含了选择一个进程和进程切换两个步骤。
进程切换的过程主要完成了:
1. 对原来运行进程各种数据的保存
2. 对新的进程各种数据的恢复
(如:程序计数器、程序状态字、各种数据寄存器等处理机现场信息,这些信息一般保存在进程控制块)
注意: 进程切换是有代价的 ,因此如果 过于频繁的 进行进程 调度、切换 ,必然会使整个 系统的效率降低 , 使系统大部分时间都花在了进程切换上,而真正用于执行进程的时间减少。

方式

非剥夺调度方式(非抢占式)

非剥夺调度方式 ,又称 非抢占方式 。即,只允许进程主动放弃处理机。在运行过程中即便有更紧迫
的任务到达,当前进程依然会继续使用处理机,直到该进程终止或主动要求进入阻塞态。
实现简单,系统开销小但是无法及时处理紧急任务,适合于早期的批处理系统

剥夺调度方式(抢占式)

剥夺调度方式 ,又称 抢占方式 。当一个进程正在处理机上执行时,如果有一个更重要或更紧迫的进
程需要使用处理机,则立即暂停正在执行的进程,将处理机分配给更重要紧迫的那个进程。
可以优先处理更紧急的进程,也可实现让各进程按时间片轮流执行的功能(通过时钟中断)。适合于分时操作系统、实时操作系统

调度器

②、③由调度程序引起,调度程序决定:

让谁运行? —— 调度算法
运行多长时间? —— 时间片大小

调度时机——什么事件会触发“调度程序” ?

  • 创建新进程
  • 进程退出
  • 运行进程阻塞
  • I/O 中断 发生(可能唤醒某些阻塞进程)
  • 非抢占式调度策略,只有运行进程阻塞或退出才触发调度程序工作
  • 抢占式调度策略,每个 时钟中断或k个时钟中断会触发调度程序工作

 闲逛进程

 调度程序永远的备胎,没有其他就绪进程时,运行闲逛进程(idle

闲逛进程的特性:
  • 优先级最低
  • 可以是 0 地址指令,占一个完整的指令周期(指令周期末尾例行检查中断)
  • 能耗低

 调度算法的评价指标

CPU利用率

由于早期的CPU造价极其昂贵,因此人们会希望让CPU尽可能多地工作

CPU 利用率 :指 CPU “忙碌”的时间占总时间的比例。

Eg :某计算机只支持单道程序,某个作业刚开始需要在 CPU 上运行 5 秒, 再用打印机打印输出5 秒,之后再执行 5 秒,才能结束。在此过程中, CPU利用率、打印机利用率分别是多少?

系统吞吐量

对于计算机来说,希望能用尽可能少的时间处理完尽可能多的作业

系统吞吐量 :单位时间内完成作业的数量

Eg :某计算机系统处理完 10 道作业,共花费 100 秒,则系统吞吐量为?

 10/100 = 0.1 /

周转时间

对于计算机的用户来说,他很关心自己的作业从提交到完成花了多少时间。 周转时间 ,是指从 作业被提交给系统开始 ,到 作业完成为止 的这段时间间隔。 它包括四个部分:作业在外存后备队列上等待作业调度(高级调度)的时间、进程在就绪队列上等待进程调度(低级调度)的时间、进程在CPU 上执行的时间、进程等待 I/O 操作完成的时间。后三项在一个作业的整个处理过程中,可能发生多次。
(作业) 周转时间 = 作业完成时间 作业提交时间

 

等待时间

计算机的用户希望自己的作业尽可能少的等待处理机
等待时间 ,指进程 / 作业 处于等待处理机状态时间之和 ,等待时间越长,用户满意度越低。
对于 进程 来说,等待时间就是指进程建立后 等待被服务的时间之和 ,在等待 I/O 完成的期间其实进
程也是在被服务的,所以不计入等待时间。
对于 作业 来说,不仅要考虑 建立进程后的等待时间 还要加上作业在外存后备队列中等待的时间。
一个作业总共需要被 CPU 服务多久,被 I/O 设备服务多久一般是确定不变的,因此调度算法其实只会影响作业/ 进程的等待时间。当然,与前面指标类似,也有“ 平均等待时间 ”来评价整体性能。

响应时间

对于计算机用户来说,会希望自己的提交的请求(比如通过键盘输入了一个调试命令)尽早地开始被系统服务、回应。
响应时间 ,指从用户 提交请求 首次产生响应 所用的时间。

 

 

  • 8
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

接受平凡 努力出众

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值