进程调度算法
2019-02-23 本文已影响1人
小幸运Q
状态转移:
image.png进程调度算法:
- FCFS
- 基于优先数的调度:
(1)静态优先数法:
一开始创建的时候就确定他的优先数,并在运行时保持不变。确定优先数时可以让外设的进程优先,或者操作时间长的优先....
(2)动态优先数法:
克服无法修改优先数的问题。CPU占用时间过长优先数下降,进程等待时间过长,优先数提高。
- UNIX系统中采用动态优先,系统会在每一秒钟重新计算优先数大于100的进程,在每次系统调用前会重新计算并更新正在执行的进程的优先数。
- 时间片轮转算法:(RR)
时间片太短切换开销太大不划算,太长又变成了FCFS。
- 多级队列算法:
引入多个就绪队列,在时间片轮转基础上改进
最高优先级队列
次高优先级队列 }=> CPU
低优先级队列
最高优先级队列运行一个时间片,次高两个,低优先级四个。当该进程用完所分配时间片仍未执行完时,需要调入下一级队列,下一级队列只有在上一级队列为空时才有机会执行。如果进程执行时有新进程进入上级优先级的队列,则会中断该进程并放入原队列的队尾然后执行新进程。