调度算法
1、先来先服务算法(FCFS)
把处理器分配给最先进入就绪队列的进程,一个进程一旦分得处理器,便一直执行下去,直到该进程完成或阻塞时,才释放处理器。
如果一个长作业先到达系统,则会使后面很多短作业等待很长时间。
有利于CPU繁忙型作业,不利于I/O繁忙型作业
2、短作业优先算法(SJF)
从就绪队列中选出一个估计运行时间最短的进程,将处理器分配给它立即执行,直到该进程完成或阻塞时,才释放处理器。
对长作业不利,并且完全没有考虑作业的紧迫程度,
SJF算法的平均等待时间、平均周转时间最少。
3、优先级调度算法
把处理器分配给就绪队列中具有最高优先级的进程,根据新出现更高优先级进程能否抢占正在执行的进程,又可分为非剥夺式优先级调度算法
和剥夺式优先级调度算法。而根据进程创建后其优先级是否可以改变,可以将进程优先级分为以下两种:
(1)静态优先级
优先级在创建进程时就已确定
(2)动态优先级
根据情况的变化调整优先级
4、高响应比优先调度算法(HRN)
HRN是对FCFS和SJF的一种综合平衡,同事考虑内个作业的等待时间和估计需要的执行时间,从中选出响应比最高的作业执行。
响应比R=(等待时间+要求服务时间)/要求服务时间=1+等待时间/要求服务时间
5、时间片轮转算法(RP)
RP主要用于分时系统,系统将所有就绪进程安到达时间的先后次序排成一个队列,每次调度时,把处理器分配给队首进程,并令其执行一个时间片,
当执行的时间片用完,发中断请求, 让出处理器,让其他进程也执行一个时间片。
时间片的长短对计算机系统的影响很大,过大,退化成FCFS算法,过小,切换工作过于频繁,使处理器的开销增大
时间片的长短由以下元素决定:(1)系统的响应时间 ;(2)就绪队列中的进程数目; (3)系统的处理能力
6、级反馈队列调度算法
是轮转算法和优先级算法的综合和发展,通过动态调整进程优先级和时间片大小,
(1)设置多个就绪队列,并为各个队列赋予不同的优先级,第1个最高,第2个次之,依次降低
(2)赋予各个队列中继承执行时间片的大小也各不相同,优先级越高,时间片大小越低。
(3)当一个新进程进入内存后,首先进入第1个队列的队尾,按FCFS进行排队等待调度,当轮转到该进程执行时,如果它能在该时间片完成,便可准备
撤离系统,否则,该进程进入到第2个队列队尾继续等待调度。依次类推。
优点:
1)终端型作业用户:短作业优先
2)短批处理作业用户:周转时间较短
3)长批处理作业用户:经过前面几个队列得到部分执行,不会长期得不到处理。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。