有时用复杂的算法求出进程当前的优先级, 但最后的结果是相同的: 每个进程都与一个值(优先级)相关联, 这个值表示把进程如何适当地分配给CPU.
在linux中, 进程的优先级是动态的....此外如何进程中如果存在实时进程, 则实时进程总是在普通进程之前被调度
3 linux调度器的演变
一开始的调度器是复杂度为O(n)的始调度算法(实际上每次会遍历所有任务,所以复杂度为O(n)), 这个算法的缺点是当内核中有很多任务时...这也是隐式的调用schedule()函数
如果内核中的任务显式的调用schedule(), 任务主动放弃CPU使用权
如果内核中的任务阻塞(这同样也会导致调用schedule()), 导致需要调用schedule...来通知内核在必要的时间由主调度函数完成真正的调度工作, 此种做法称之为延迟调度策略
4.6 主调度器schedule
主调度器
schedule就是主调度器的工作函数, 在内核中的许多地方, 如果要将CPU...分配给与当前活动进程不同的另一个进程, 都会直接调用主调度器函数schedule或者其子函数__schedule.