春招修仙系列 —— CPU调度算法

批处理中采用的调度算法:

1 先来先服务:

优点:实现简单,FIFO队列实现即可。
缺点:可能造成周转时间过长

2 最短作业优先:

优点:平均周转时间最少
缺点:不公平,可能造成长任务一直得不到执行

3 最短剩余时间优先:

描述:最短作业优先的抢占版,当一个新的就绪进程,比当前运行的进程具有更短的完成时间时,系统抢占当前线程执行,选择新就绪的线程执行

4 最高响应比优先:

描述: 调度时,首先计算每个线程的响应比R,之后总是选的R最高的进程优先执行
响应比R =  (等待时间+处理时间)/处理时间

交互式系统采用的调度算法

1 时间片轮转法:

描述:每个进程被分配一个时间片,允许该进程在该时间段内运行,如果在时间片结束时该进程仍在运行,则剥夺CPU时间,并分配给另一个进程,如果该进程在时间片结束前阻塞或结束,则CPU立即进行切换
时间片的选择:
时间片太长:降级成先来先服务算法,引起短作业的交互请求,响应时间更长。
时间片太短:会导频繁的进程切换,浪费CPU时间
通常时20ms ~ 50ms

2 多级反馈队列调度法:

描述:设置多个就绪队列,各个就绪队列赋予不同的优先级,第一个队列的优先级最高,依次递减优先级。
对于各个队列进程,分配的时间片也不同,优先级队列越高,分配的时间就越少。
当第一级队列为空的时候,第二季队列才进行调度,以此类推。
过程:当一个新进程创建后,首先把他放到第一队列的末尾,按照先来先服务的原则进行排队等待,当轮到该进程执行的时候,如果在当前时间片内完成,便可以准备撤离系统,如果它在第一个时间片结束后尚未执行完成,则调度程序便将改进程转入第二队列的末尾,等待调度,以此类推。

猜你喜欢

转载自blog.csdn.net/Kirito19970409/article/details/86570637