操作系统学习-11.调度算法的准则与种类

本文介绍了操作系统调度算法的各种准则,包括面向用户的周转时间短、响应时间快、截止时间的保证和优先权准则,以及面向系统的系统吞吐量高、处理机利用率好和资源平衡利用。讨论了FCFS、SJF、FPF、高响应比优先和基于时间片的轮转调度算法,以及多级反馈队列调度算法,强调了这些算法在不同场景下的优缺点和适用性。
摘要由CSDN通过智能技术生成

写在前面:

这一部分学习调度方式的若干准则。在一个操作系统的设计中,应如何选择调度方式和算法,在很大程度上取决于操作
系统的类型及其目标。例如,在批处理系统、分时系统和实时系统中,通常都采用不同的调度方式和算法。选择调度方式和算法的准则,有的是面向用户的,有的是面向系统的。在系统学习这些知识之前,可以先看一个生活中常见的故事。

用打开水来理解这些算法

一栋楼里有一个开水间,大家都要去开水间打水,大家每个人拿的接水的容器都不一样,有的那水库,有的拿水杯。开水间放水的速率一样,那么拿水壶接水的时间就长,拿水杯接水的时间就短。

现在,大家都来接水了,按照先来后到的顺序排队,一个用完水龙头换下一个,那么这就是FCFS算法。谁先来,谁先用,即先来先服务,first come first serve。

后来,大家发现一个问题,只拿水杯的人万一前面有拿水壶的,就要等拿水壶的打完才能用,而自己就是一个水杯,很快就能用完水龙头,却被迫等了好长时间,所以,规定,大家用水杯的可以先去打水,那么这就是SPF或SJF算法。

再后来,大家发现让打水杯的先去接水确实照顾了只占用水龙头一会的人,但是,虽然那些拿水壶的人不是特别着急,但是,这个方法说白了,还是经常让拿水杯的去插拿水壶的人的队。插队是不好的,尤其是在某些人着急用开水的情况,所以,大家又出了一个规定,根据大家用水的优先权来判断谁先来用水龙头。这就是FPF算法。

有一天,一个拿水壶的人刚来打水,打了一会,来了一个拿水杯的人,如果他不急,就等水壶接满再换人,如果他很着急,那么水壶就先暂停接水,让水杯接满就走了,然后继续接水。这就是非抢占式与抢占式调度算法。

这个算法比之前就复杂一些了。大家刚开始就制定优先权嘛,比如,根据用水需求来分,需要服务会议的人可以先接水,需要烧水做饭的人先接水等等。还根据接水的多少来确定,少的先接,多的后接。还根据用水的紧迫性来分,有的人好几天没喝水了就先接,有的人家里还有水就后接。这就是采用静态优先权来判断了,

但是楼里的人越来越多,大家用水的情况也越来越复杂,人们发现就算是这样,也会总有人用不上水,于是就通过判断等待用水的时间来优先,比如有的人等了好几天,就不能再被插队了,就优先用水,这就是动态优先权了。

面向用户的准则

为了满足用户的需求所应遵循的一些准则。

(1)周转时间短
通常把周转时间的长短作为评价批处理系统的性能、选择作业调度方式与算法的重要准则之一。周转时间,是指从作业被提交给系统开始,到作业完成为止的这段时间间隔(称为作业周转时间)。

包括四部分时间:作业在外存后备队列上等待(作业)调度的时间,进程在就绪队列上等待进程调度的时间,进程在 CPU 上执行的时间,以及进程等待 I/O 操作完成的时间。

平均周转时间描述为:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值