操作系统导论第7章——进程调度:介绍

本文探讨了各种进程调度策略,如FIFO、SFJ、STCF,以及周转时间和响应时间的关系。重点介绍了如何通过RR、IO优化和预测不确定性来构建高性能调度程序,以及标签如先进先出、最短任务优先和时间片管理在实际场景的应用。
摘要由CSDN通过智能技术生成

1. 理想假设

  • 每一个工作运行相同时间
  • 所有工作同时到达
  • 一旦开始,每个工作保持运行直到完成
  • 所有的工作只是使用CPU(即执行IO)
  • 每个工作的运行时间是已知的

2. 调度指标

T~周转时间~ = T~完成时间~ - T~到达时间~

周转时间对应性能指标,另外进程调度还需要考虑公平指标

3. 先进先出FIFO

有时也称为先到先服务(First Come First Served, FCFS),实现简单,但是平均周转时间比较长

4. 最短任务优先(SFJ)

Shortest Job First

如果假设所有任务是同时到达的,SFJ确实是一个最优解

但是如果任务是随机到达的,那么SFJ仍然会有护航问题,也就是耗时较短的任务被安排在耗时较长的任务后面,而使得平均周转时间比较长。

5. 最短完成时间优先(STCF)

Shortest Time-to-Completion First

实现方式:放宽假设条件:工作必须保持运行到完成,向SFJ添加抢占,每当新工作进入系统后,就会先确定剩余工作时间和新工作占用时间,然后选择一个占用时间最短的优先执行

6. 新度量指标:响应时间

T响应时间 = T首次运行 - T到达时间

如何构建对响应时间敏感的调度程序?

周转时间和响应时间两个指标是相互制衡的

7. 轮转

Round-Robin, RR,RR在一个时间片内运行一个工作,然后切换到运行队列中的下一个任务,而不是运行一个任务直到结束。

时间片的长度对RR至关重要:时间片越短,RR在响应时间上表现越好,时间片越长,突然的上下文切换成本将影响整体性能。

8. 结合IO

发起IO请求,阻塞等待时不会占用CPU,可以让CPU执行其他工作,从而提升性能

9. 无法预知完成时间

实际上调度程序无法知道每个工作的完成时间,那么如何建立这种没有完成时间的先验的SFJ和STCF呢?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值