【OS学习】进程3-进程调度

处理机调度:

根据一定的算法和原则将处理机资源进行重新分配的过程

前提:作业/进程数远大于处理机数

目的: 提高资源利用率,减少处理机空闲时间

调度程序:满足特定系统用户的需求(快速响应);考虑系统整体效率(系统平均周转时间)和调度算法本身的开销


调度层次

(这部分有印象就行)

  • 高级调度/作业调度:把后备作业调入内存,只调入一次,调出一次
  • 中级/内存调度:将进程调到外存,条件合适再调入内存,在内外存对换区进程对换,可能会调度很多次(相当于挂起的操作)
  • 低级/进程调度:即平常理解的处理机调度,频率很高(相当于一个时间片完成),从就绪队列选取进程分配给处理机

 调度方式

剥夺式/抢占式调度

立即暂停当前进程,分配处理机给另一个进程

原则:优先权/短进程有限/时间片原则

非剥夺/非抢占式调度

(=我知道你很急,但是你先别急)

若有进程请求执行还是要等到当前进程完成或阻塞才可以

缺点:适用于批处理系统,不适用分时/实时系统

 调度时机

进程运行完毕/时间片用完/要求IO操作/执行某种原语/在剥夺式调度中有高优先级进程申请运行

调度过程

  1. 保存镜像:记录进程现场信息(保护车祸现场)
  2. 调度算法:确定分配处理机的原则
  3. 进程切换:分配处理机给其他进程
  4. 处理机回收:从进程收回处理机

调度算法的衡量准则:

  • CPU利用率越高越好↑:忙碌时间/总时间
  • 系统吞吐量越大越好↑:单位时间内系统完成的作业数量,完成作业数/总时间
  • 周转时间↓:作业完成时间-提交时间,还有一个平均周转时间的概念

                带权周转时间:周转时间/实际运行时间

                平均带权周转时间

  • 等待时间越短越好↓:作业等待处理机调度时间,通常关注平均值
  • 响应时间越短越好↓:提交请求到首次响应间隔,分时/实时系统比较关注该指标,如秒杀

细节:

处理机从一个正在运行的进程上切换到另一个进程去执行

  1. 检查是否允许上下文切换,可能某进程处于源于操作中,不允许切换
  2. 保存当前进程的上下文,包括程序计数器和寄存器
  3. 更新PCB信息(头部,OS通过PCB来识别进程)
  4. 把此进程的PCB移入队列,比如就绪或因某种事件 的阻塞队列
  5. 选择另一个(就绪状态)的纪南城执行,比你高更新PCB
  6. 更新内存管理的数据结构
  7. 恢复所选进程的上下文,将PCB执行权交给所选进程
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值