操作系统笔记三-处理机调度

调度概念

        在多道程序系统中,进程的数量往往多于处理机的个数,会出现进程抢占处理机的情况,因此需要进行处理机调度,按照一定的算法分配处理机,实现进程并发执行。

调度的层次

  1. 作业调度(高级调度)。从外存上处于后备状态的作业中挑选作业并分配内存、I/O设备等必要的资源,并建立相应的进程。作业调度就是内存与辅存之间的调度。每个作业分别只调入,调出一次。
  2. 内存调度(中级调度)。为了提高内存利用率和系统吞吐量,操作系统将暂时不能运行的进程调至外存等待,进程状态改为挂起态。当具备运行条件并且内存空闲,内存调度将就绪进程从外存调入内存,修改进程状态为就绪态,挂在就绪队列上。
  3. 进程调度(低级调度)。按照某一方法或策略从就绪队列选择进程并为之分配处理机。进程调度是操作系统中最基本的一种调度。

        三级调度的联系:先进行作业调度,会有许多进程放入就绪队列,进程调度在就绪队列中选择进程并分配处理机,为了提高内存的利用率,需要将暂时不能运行的进程挂起,即内存调度。

进程调度方式

  1. 非剥夺调度方式(非抢占式)。指当前进程在处理机上执行时,若有其他更重要或紧迫的进程进入就绪队列,仍然让当前进程继续执行。直到当前进程阻塞或完成,才将处理机分配给重要的进程。
  2. 剥夺调度方式(抢占式)。当前进程在处理机上执行时,若有其他更重要或紧迫的进程进入就绪队列,当前进程立即暂停,处理机分配给重要的进程。

调度算法

  1. 先来先服务
    1. 可用于作业调度,也可用于进程调度。作业调度是从后备队列中选择一个或多个最先入队的作业调入内存并分配资源,创建进程放入就绪队列。进程调度是从就绪队列中选择最先入队的进程并分配处理机。
    2. 算法简单,效率低。对长作业有利,短作业不利。不利于I/O繁忙型作业。
  2. 短作业优先
    1. 可用于作业调度,也可用于进程调度。作业调度是从后备队列中选择一个或多个预计运行时间最短的作业调入内存。进程调度则是从就绪队列中选择预计运行时间最短的进程。
    2. 对长作业不利,紧迫性作业未能被及时处理。
  3. 优先级调度
    1. 可用于作业调度,也可用于进程调度。根据作业或进程的优先级,选择优先级最高的作业或进程。
    2. 进程调度还可以分为:非抢占式优先级调度和抢占式优先级调度。优先级描述了进程的紧迫程度。
    3. 根据优先级是否可变还可以分为:静态优先级和动态优先级。静态优先级是指优先级从进程创建到结束都不会变;动态优先级会根据进程情况动态调整优先级。
  4. 高响应比优先
    1. 主要用于作业调度。综合平衡了先来先服务和短作业优先两种调度算法,考虑的是每个作业的等待时间和预计运行时间。
    2. 每次从后备队列取作业时会先计算每个作业的响应比,选择最高响应比的作业。
    3. 等待时间相同,服务时间短的优先,即短作业优先。
    4. 服务时间相同,等待时间越长,响应比越高,即先来先服务。
    5. 长作业会随着等待时间增长提高响应比,不会出现饥饿现象。
  5. 时间片轮转
    1. 主要适用于分时系统。按照先来先服务的原则从就绪队列选择进程运行,但是每次只运行一个时间片,时间片结束后即使进程未完成运行,处理机也必须被剥夺,被剥夺进程回到就绪队列末尾。
    2. 选择合适的时间片很重要,时间片过大则退化成先来先服务算法。时间片过小则进程切换频繁。
  6. 多级反馈队列
    1. 综合了时间片轮转算法和优先级调度算法,可以动态调整进程优先级和时间片大小。
    2. 设置多个就绪队列,并赋予不同的优先级,第1级队列优先级最高,2级第2,依次递减。优先级越高的队列时间片越小。
    3. 新的进程进入内存后,会先放入第1级队列,如果时间片用完还未执行完,则进入第2级队列,依次类推。
    4. 仅当第1~ i - 1级队列为空时,调度进程才会调度第 i 级队列中的进程。当处理机正在执行某一进程,此时新进程进入优先级更高的队列,会发生抢占式进程调度。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值