操作系统进程的调度与调度算法

操作系统进程的调度与调度算法



Java、大数据开发学习要点(持续更新中…)


一、调度的基本概念

  当计算机有一堆任务需要处理,但由于资源有限,无法同时处理,这时候就需要某种规则来决定任务的处理顺序,即调度
  调度分为三个层次:

要做什么调度方向发生频率对进程状态影响
高级调度(作业调度)按照某种规则,从后备队列中选择合适的作业将其调入内存,并为其创建进程外存到内存(面向作业)无 -> 创建态 -> 就绪态
中级调度(内存调度)按照某种规则,从挂起队列中选择合适的进程将其数据调回内存外存到内存(面向进程)挂起态 -> 就绪态(或阻塞挂起 -> 阻塞态)
低级调度(进程调度)按照某种规则,从就绪队列中选择一个进程为其分配处理机内存到CPU就绪态 -> 运行态

  其中,几个需要注意的点:

  1. 作业调度是将作业从外存第一次调入内存并创建线程。
  2. 内存调度将内存中暂时不会使用的内存映像调到外存,之后需要使用了,再次调回。这里就引入了两个挂起状态(就绪挂起和阻塞挂起),使得进程状态转换变为了七状态模型。最重要的是,内存调度内存中的进程的PCB是不会迁移到外存的,而是会进入内存的挂起队列中
    进程七状态模型

二、批处理系统调度算法

  调度算法所针对的可以是作业,也可以是进程(但要注意区别作业调度和进程调度的差别)。

算法思想是否可抢占优点缺点是否会产生饥饿
先来先服务(FCFS)作业/进程调度时,每次调度都是从后备队列/就绪队列中选择最早到达的作业/线程为其服务(作业调度将作业调入内存、分配资源、创建进程;进程调度为之分配处理机)非抢占式公平且实现简单对长作业有利,但对短作业不利
最短作业优先(SJF)作业/进程调度时,每次调度都是从后备队列/就绪队列中选择最短服务时间的作业/线程为其服务(对于进程调度时称为短进程优先SPF)SJF和SPF是非抢占式的,但有最短剩余时间优先算法(SRTN)是抢占式的平均周转时间短,进程等待时间短对短作业有利,但不利于长作业,短作业的频繁到来可能导致长作业的饥饿
高响应比优先(HRRN)作业/进程调度时,计算每个作业/进程的响应比,选择响应比最高的作业/进程为其服务非抢占式综合考虑了等待时间和运行时间,既考虑了作业的到达先后顺序,又能避免长作业不被响应的问题每次调度前需要计算响应比增加系统开销

其 中 , 响 应 比 = 等 待 时 间 + 要 求 服 务 时 间 要 求 服 务 时 间 其中,响应比=\frac{等待时间+要求服务时间}{要求服务时间} =+
  这些算法一般适用于早期批处理系统,当然FCFS算法也经常结合交互式系统算法使用(多级反馈队列调度算法),下节介绍。

三、交互式系统调度算法

算法思想是否可抢占优点缺点是否会饥饿补充说明
时间片轮转算法(RR)此算法只针对进程,以各个进程到达就绪队列的顺序(FCFS),轮流让各个进程执行一个固定大小的时间片。在时间片结束后,如果未执行完就立即剥夺处理机分配,重新进入就绪队列队尾等待抢占式(时钟中断)公平;响应快高频率的进程切换,系统开销较大;不区分任务紧急程度时间片大小对算法的效果影响较大,时间片过大算法就向FCFS算法趋近,而时间片过小则进程切换过于频繁,系统开销巨大
优先级调度算法调度时选择优先级最高的作业/进程进行调度,甚至还会用于I/O调度均有优先级区分了任务的重要程度;动态优先级调整可以灵活调整各作业/进程的偏好程度高优先级的进程源源不断到来会导致低优先级进程的饥饿进程的优先级设置中通常有静态优先级动态优先级
多级反馈队列调度算法(1)设置多级就绪队列,各级队列优先级从高到低,时间片从小到大;(2)新进程首先进入第1级队列,按FCFS等待被分配,若时间片结束未进程未结束,进入下一级队列队尾(如果已在最后一级则重新返回这级队列队尾);(3)只有k级队列为空时,才为k+1级队列队首进程分配时间片抢占式对各进程较为公平(FCFS);每个新到达的进程可以快速被响应(RR);短进程只需要较少时间就能完成(SPF) ;不必估计进程运行时间;考虑进程的优先级;灵活调整对进程的偏好可能会产生饥饿(源源不断的短进程进入)如何理解灵活调整进程偏好:比如I/O密集型进程由于阻塞后重新放回就绪队列,此进程仍然会被放入优先级高的队列保持较高优先级
  1. 多级反馈队列调度算法理解图:
    多级反馈队列调度算法
  2. 优先级调度算法中的优先级设置规则:
    (1) 静态优先级中,系统进程优先级高于用户进程
    (2) 前台进程优先级高于后台进程
    (3) 操作系统更偏好于I/O型繁忙型进程(I/O设备和CPU可并行,先让I/O密集型进程完成I/O, 可以提高系统吞吐量)
    (4) 动态优先级中,提升就绪队列中等待时间长进程的优先级,降低占用处理机运行时间长的优先级

参考:《王道考研操作系统》
地址:https://www.bilibili.com/video/BV1YE411D7nH

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值