操作系统原理,多级反馈队列调度算法Multilevel feedback,多处理器调度算法考虑的问题,常见操作系统上的调度算法,Windows中IO线程和“饥饿”线程优先级提升
一、多级反馈队列调度算法Multilevel feedback
1、设置多个就绪队列,第一级队列优先级最高
2、给不同就绪队列中的进程分配不同长度的时间片,第一级队列时间片最小,随着队列优先级的降低,时间片增大
3、当第一级队列为空的时候,在第二级队列调度,以此类推
4、各组队列按照时间片轮转方式进行调度
5、当新创建一个进程就绪后,进入第一级队列
6、进程用完时间片而放弃CPU后,进入下一级就绪队列
7、(非抢占式)由于IO等阻塞而放弃CPU的进程进入相应的等待队列,一旦等待的事件发生,该进程回到原来一级的就绪队列,队首队尾可调整
8、(抢占式)当有一个优先级更高的进程就绪时,可以抢占CPU,被抢占的基础回到原来一级就绪队列,队尾队首自定。
9、调度算法无法同时对IO密集型基础和CPU密集型基础做到公平,必须分析需求并作出综合性的考量。
二、多处理器调度算法需要考虑的问题:
1、决定哪一个进程在哪一个CPU上执行
2、同一进程在多个CPU之间迁移时会导致高速缓存,TLB缓存等失效,导致没必要的开销,使每个进程尽量调度到指定的CPU上,减少失效
3、考虑负载均衡问题,让进程尽可能均匀的分配至所有CPU,避免部分空闲部分忙碌的情况。