进程调度算法

1、先来先服务调度算法(FCFS)
先来先服务调度算法(FCFS)调度算法是一种最简单的调度算法。在进程调度中采用先来先服务算法时,则每次调度是从就绪队列中选择一个最先进入该队列的进程,为之分配处理机,使它能够运行。该进程一直运行到完成或发生某件事而阻塞后才放弃处理机。

2、短进程优先调度算法(SPN)
短进程优先算法(SPF),是指对短进程优先调度的算法。短进程优先调度算法是从就绪队列中选出一个估计运行时间最短的进程,将处理机分配给它,使它立即执行并一直执行到完成,或发生某事件而被阻塞放弃处理机时再重新调度。

3、优先权调度算法(HPF)
最高优先权算法(FPF)调度算法,当再进程调度的时候,把处理机分配给就绪队列中优先权最高的进程。这时,又可以进一步把该算法分为以下两种:

3.1、非抢占式优先权算法
在这种方式下,系统一但把处理机分配给就绪队列中优先权最高的进程后,该进程便一直执行下去,直到执行完成,或因为发生某件事使该进程放弃处理机时,系统才可以再将处理机重新分配给另一优先权最高的进程。这种调度算法主要用于批处理系统中,也可用于某些对实时性要求不严的实时系统。

3.2、抢占式优先权调度算法
在这种方式下,系统同样是把处理机分配给优先权最高的进程,使之执行。但是在执行期间,只要出现了另一个优先权更高的进程,进程调度程序就立即停止当前进程(),重新将处理机分配给新的优先权最高的进程。因此,在采用这种调度算法的时候,当系统中出现一个新的就绪程序时,就要比较它与当前正在执行的进程的优先级。显然,这种抢占式的优先权调度算法能够更好的满足紧迫作业的要求,故而常在要求比较严格的实时系统中,以及对性能要求较高的批处理和分时系统中。

4、高响亮比优先权算法(HRN)
如果我们为每个进程引入动态优先权,并使进程的优先级随着等待时间的增加而提高,则长进程在等待一定时间后,必然有机会分配到处理机。
这里写图片描述

4.1、如果进程的等待时间相同,则要求服务时间越短,其优先权越高,这个算法有利于短作业。
4.2、当要求服务的时间相同时,进程的优先权取决于等待时间,等待时间越长,其优先权越高,因而它实现的是先来先服务。
4.3、对于长进程,进程的优先级可以随着等待时间的增加而提高。当等待时间足够长的时候,其优先级就可以升到很高,从而获得处理机。这个算法既照顾了短进程,又考虑了进程到达的先后次序,不会使长进程长期得不到服务。当然,在利用这个高响亮比优先权算法调度之前都必须先做响应比的计算,这会增加系统开销。

5、时间片轮转法(RR)
在早期的时间片轮转法中,系统将所有的就绪进程按照先来先服务的原则排列成一个队列,每次调度的时候,把CPU分配给队首进程,并令其执行一个时间片。时间片大约在几毫秒到几百毫秒。当执行的时间片用完时,由一个计时器发出中断请求,调度程序根据此信号来停止一个该进程的执行,并将它送往就绪队列的末尾。然后再把处理机分配给就绪队列中新的队首进程,同时也让它执行一个时间片,这样就保证就绪队列中的所有进程在以给定的时间内均能获得一个时间片的处理机执行时间。换而言之,系统能够在给定的时间内响应所有用户的请求。

6、多级反馈队列调度算法
短进程优先的调度算法,仅仅照顾到了短进程,而忽略了长进程,而且如果没有指定进程的长度的话,则短进程优先和基于进程长度的抢占式调度算法都无法使用。而多级反馈调度算法则不必事先知道各种进程所需要的执行时间,而且还可以满足各种类型的进程的需要。

(1、应设置多个就绪队列,并为各个队列赋予不同的优先级。第一个队列的优先级最高,第二个队列次之,之后的队列优先级逐渐降低。该算法赋予各个队列中进程执行的时间片的大小也不同,优先权最高的队列中每个进程的时间片越小,优先级小的队列中的进程的时间片越长。
(2、当一个新进程进入内存后首先将它当道第一队的队尾,按照先来先服务的规则排队等待调度。当轮到该进程执行时,如果能在该时间片内完成,便可准备撤离系统。如果在一个时间片结束时尚未完成,调度程序便将该进程转到第二队列的队尾,再同样的按照先来先服务的原则调度。如果他在第二队列中运行一个时间片还未完成的话,再一次放入第三个队列,依次类推,直到它进入最后一个队列后,则一直在最后一个队列中采用时间片轮转算法进行调度。
(3、仅当第一队列空闲时,调度程序才调度第二队列中的进程运行,仅当第1~i-1队列为空的时候,才调度第i队列的进程。如果处理机正在第i队列中为某个进程服务时,又有新的进程进入到了优先权高的1~i-1中的任何一个队列,则此时新进程将抢占正在运行进程的处理机,即调度程序吧正在运行的进程放到第i对的队尾,把处理机分配给信道的高优先权进程。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值