【操作系统概念】 第5章:进程调度

本文详细探讨了CPU调度在多道程序操作系统中的关键作用,介绍了基本概念、调度准则,以及多种调度算法如FCFS、SJF、优先级调度、轮转法和多级队列调度。文章着重讨论了抢占调度的优缺点,以及如何通过调度算法优化性能和避免问题如饥饿和阻塞。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0.前言

CPU调度是多道程序操作系统的基础。通过在进程间切换CPU,操作系统可以使得计算机更加高效。
本章目标:

  1. 引入CPU调度,这是多道程序操作系统的基础
  2. 描述各种CPU调度算法
  3. 讨论为特定系统选择CPU调度算法的评估标准
  4. 分析多个操作系统的调度算法

5.1 基本概念

多道程序操作系统的基础。通过在进程之间切换CPU,操作系统可以提高计算机的吞吐率。
对于单处理器系统,每次只允许一个进程运行:任何其他进程必须等待,直到CPU空闲能被调度为止。

5.1.1 CPU-I/O 区间周期

CPU的成功调度依赖于进程的如下属性:
进程执行由CPU执行周期和I/O等待周期组成。进程在这两个状态之间切换(CPU burst—I/O bust)。

进程执行从CPU区间(CPU burst)开始,在这之后是I/O区间(I/O burst)。接着另外一个CPU区间,然后是另外一个I/O区间,如此进行下去,最终,最后的CPU区间通过系统请求中止执行。
在这里插入图片描述
经过大量CPU区间的长度的测试。发现具有大量短CPU区间和少量长CPU区间。I/O约束程序通常具有很多短CPU区间。CPU约束程序可能有少量的长CPU区间。这种分布有助于选择合适的CPU调度算法。

5.1.2 CPU程序调度

每当CPU空闲时,操作系统就必须从就绪队列中选择一个进程来执行。进程选择由短期调度程序(short-term scheduler)或CPU调度程序执行。调度程序从内存中选择一个能够执行的进程,并为之分配CPU。

就绪队列不必是先进先出(FIFO)队列,也可为优先队列、树或简单的无序链表。不过队列中所有的进程都要排队以等待在CPU上运行。队列中的记录通常为进程控制块(PCB)。

5.1.3 抢占调度

CPU调度决策可在如下4种情况环境下发生:

  1. 当一个进程从运行切换到等待状态(如:I/O请求,或者调用wait等待一个子进程的终止)
  2. 当一个进程从运行状态切换到就绪状态(如:出现中断)
  3. 当一个进程从等待状态切换到就绪状态(如:I/O完成)
  4. 当一个进程终止时

对于第1和4两种情况,没有选择而只有调度。一个新进程(如果就绪队列中已有一个进程存在)必须被选择执行。
对于第2和第3两种情况,可以进行选择。

当调度只能发生在第1和4两种情况下时,称调度是非抢占的(n

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

赵远疴

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

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

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

打赏作者

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

抵扣说明:

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

余额充值