操作系统④-③:调度、调度时机、调度原则、调度算法

1 调度

选择⼀个进程运⾏这⼀功能是在操作系统中完成的,通常称为调度程序(scheduler)。

2 调度时机

当进程从⼀个运⾏状态到另外⼀状态变化的时候,其实会触发⼀次调度。

从就绪态 -> 运⾏态:当进程被创建时,会进⼊到就绪队列,操作系统会从就绪队列选择⼀个进程运⾏;
从运⾏态 -> 阻塞态:当进程发⽣ I/O 事件⽽阻塞时,操作系统必须另外⼀个进程运⾏;
从运⾏态 -> 结束态:当进程退出结束后,操作系统得从就绪队列选择另外⼀个进程运⾏;

调度算法:
⾮抢占式调度算法。
抢占式调度算法:时间片机制。

3 调度原则

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
4 调度算法

1. 先来先服务(First Come First Seved, FCFS)算法
每次从就绪队列选择最先进⼊队列的进程,然后⼀直运⾏,直到进程退出或被阻塞,才会继续从队列中选择第⼀个进程接着运⾏。
FCFS 对⻓作业有利,适⽤于 CPU 繁忙型作业的系统,⽽不适⽤于 I/O 繁忙型作业的系统。

2. 最短作业优先(Shortest Job First, SJF)调度算法
优先选择运⾏时间最短的进程来运⾏,这有助于提⾼系统的吞吐量。
在这里插入图片描述
对⻓作业不利,容易造成长作业长期不运行的极端情况。

3. ⾼响应⽐优先(Highest Response Ratio Next, HRRN)调度算法
权衡了短作业和⻓作业。
每次进⾏进程调度时,先计算「响应⽐优先级」,然后把「响应⽐优先级」最⾼的进程投⼊运⾏。
在这里插入图片描述
4. 时间片轮转(Round Robin, RR)调度算法
最古⽼、最简单、最公平且使⽤最⼴的算法。
每个进程被分配⼀个时间段,称为时间⽚(Quantum),即允许该进程在该时间段中运⾏。

在这里插入图片描述

5. 最⾼优先级(Highest Priority First, HPF)调度算法
静态优先级:不变
动态优先级:随着时间的推移增加等待进程的优先级。

6. 多级反馈队列(Multilevel Feedback Queue)调度算法
「时间⽚轮转算法」和「最⾼优先级算法」的综合和发展。
可以发现,对于短作业可能可以在第⼀级队列很快被处理完。对于⻓作业,如果在第⼀级队列处理不完,可以移⼊下次队列等待被执⾏,虽然等待的时间变⻓了,但是运⾏时间也变更⻓了,所以该算法很好的兼顾了⻓短作业,同时有较好的响应时间。
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值