调度策略
Linux的调度基于分时(time sharing)技术:多个进程以“时间多路复用”方式运行,因为CPU的时间被分成“片(slice)”,给每个可运行进程一片。当然,单处理器在任何给定的时刻只能运行一个进程。如果当前运行的时间片或时限(quantum)到期时,该进程还没有运行完毕,进程切换就可以发生。分时依赖于定时中断,因此对进程是透明。不需要在程序中插入额外的代码来保证CPU分时。...
分类:
其他好文 时间:
2014-05-25 10:08:46
阅读次数:
191
从Linux2.5开始Linux实现了0(1)调度算法, 算法的思想要点在于设定动态的nice值确定优先级, 在优先级数组调度(数组最大长度是固定常数) 简而言之,不管系统中有多少进程需要调度都可以在o(1)的时间复杂度内完成调度,是不是很吊啊?但是实践证明(我没证明,文献说的) o(1)对i/o交互型的调度体验上表现很差 轮转周期很不灵活,主要原因在于调度出发点采用粒度很大时间片进行轮换,诚然整体负载会比较好,但是对于i/o交互型的,我们理想的调度策略是采用处理器使用比而不是时间片来分配, ...
分类:
系统相关 时间:
2014-05-02 21:18:41
阅读次数:
460
调度系统各个组建关系如下
激活调度器两种方法:进程睡眠或其他原因放弃CPU,周期性检测 上述两个组件统称为通用调度器或核心调度器.
调度器用于判断接下来运行那个进程,内核支持不同的调度策略( 完全公平调度 实时调度 无事可做的空闲调度进程)
调度器被调用时候 需要执行体系相关的进程上下文切...
分类:
系统相关 时间:
2014-04-29 23:32:17
阅读次数:
809