面试问题之操作系统:进程调度算法
进程调度算法
1、先来先服务调度算法FCFS
先到的进程先调度,执行过程不会被中断直到进程结束。
优点:易于实现,且相当公平。
缺点:比较有利于长进程,而不利于短进程。
2、短作业优先调度算法SJF
优先分配给短进程执行。
优点:平均周转时间最短,进程等待时间缩短,可以增大系统吞吐量。
缺点:难以准确预估进程执行时间,开销较大;不利于长进程,有可能“饥饿”现象。
3、高响应比调度算法HRRN
一种关于先来先服务和短作业优先的折中算法,当一个长进程等待时间过长,就会获得较高的优先权,因此不会出现“饥饿”现象。
优先级D=(执行时间+等待时间)/执行时间
优点:不会出现“饥饿”现象,长作业也有机会被调度。
缺点:每次都需要计算优先级,系统开销大。
4、时间片轮转调度算法RR
为进程设定时间片,即每个进程运行的时间,在一个时间片结束时,发生时钟中断,调度程序暂停执行并加入队尾,通过上下文切换执行当前队首进程
优点:算法简单,响应时间短。
缺点:不利于处理紧急作业;时间片过小会导致频繁进程上下文切换,增大系统开销;时间片过长则会退化为FCFS。