操作系统调度算法

1.先来先服务(FCFS:First Come First Serve)

规则
按照作业/进程达到的先后顺序进行服务,参照日常食堂打饭,先来先打饭,后来后打饭。

是否可抢占:
不可抢占,也就是说,不能插队,也不能在别人正在打饭的时候打断别人。

优点
简单、公平。

缺点
对于排在长作业后面的短作业不利,也就是说排在长作业后面的短作业来说,它们要等待很长的时间。
举例:你在食堂打饭,你前面排了一个人,这个人要打好多好多饭菜,得耽搁很久很久,那么对于你来说,就打一个饭菜,要等待很久。

是否导致饥饿:
不会。

2.短作业优先(SJF:Shortest Job First)

规则
最短的作业/进程优先得到服务。
也就是说,谁所需要得服务时间越短,谁就排在前面。

是否可抢占:
不可抢占。
但是有一个可抢占的版本,叫最短剩余时间优先时间算法 SRTN(Shortest Remaining Time Next)

优点
拥有最短的平均等待时间、平均周转时间。
对于平均等待时间和平均周转时间下面有计算公式。

缺点
不公平,对于短作业有利,对于长作业不利。
举例:你去食堂打饭,还是那个人,他要打很多很多很多的饭菜,你到了食堂,你可以直接去他前面完成打菜打饭,而且所有比这个人打饭打菜少的,都可以直接去他前面。那么对于他来说,他就要等很久很久。对他就不利了。
**另外,**作业的运行时间是由用户提供的,并不一定真实。
也就是说,你说你很快只要1分钟,你就排到别人前面,但是你不一定真的只花了1分钟。

是否导致饥饿:
会,如果有很多很多很多的短作业进来,那么长作业就会很长时间得不到服务,就会产生饥饿现象。
举例:上面那个例子,也就是后面来了一堆的很快的人,直接插队到那个打饭菜很多的人前面,就可能人家一中午了都没排到服务,那么这就产生饥饿了。

3. 最短剩余时间优先算法 SRTN(Shortest Remaining Time Next)

这就是上面短作业优先算法的可抢占式版本。

规则
最最短的作业/进程优先得到服务。
也就是说,谁所需要得服务时间最短,谁就排在前面。

是否可抢占:
可抢占。

优点
拥有最短的平均等待时间、平均周转时间。

缺点
不公平,对于短作业有利,对于长作业不利。
而且当一个进程服务到一半的时候,可能被其他进程抢占
举例:你去食堂打饭,已经到你了,你已经在打饭了,这个时候突然来了一个人,说就拿个汤就行,然后打饭阿姨就先帮他拿汤了。

是否导致饥饿:
会,如果有很多很多很多的短作业进来,那么长作业就会很长时间得不到服务,就会产生饥饿现象。

4.高相应比优先(HRRN Highest Response Ratio Next)

响应比 = (等待时间+服务时间)/服务时间
规则
谁的响应比高,谁先得到服务。

是否可抢占:
不可抢占。

优点
综合考虑了等待时间和服务时间。
等待时间相同的时候,要求服务时间短的优先,也就是短作业优先。
服务时间相同的时候,要求等待时间长的优先,也就是先来先服务。

缺点
做响应比计算需要增加系统开销。

是否导致饥饿:
不会。

周转时间 = 完成时间 - 到达时间
等待时间 = 周转时间 - 运行时间

好好学习。
不打扰是我的温柔。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值