调度器面对的情形就是这样, 其任务是在程序之间共享CPU时间, 创造并行执行的错觉, 该任务分为两个不同的部分, 其中一个涉及调度策略, 另外一个涉及上下文切换....内核必须提供一种方法, 在各个进程之间尽可能公平地共享CPU时间, 而同时又要考虑不同的任务优先级....这对于我们的嵌入式设备或者手机终端设备的电源管理是很重要的.
2.1 周期性调度器主流程
scheduler_tick函数定义在kernel/sched/core.c, L2910中, 它有两个主要任务...在低分辨率定时器的每次时钟中断完成全局统计量更新后, 每个cpu在软中断中执行一下操作
更新该cpu上当前进程内核态、用户态使用时间xtime_update
调用该cpu上的定时器函数
启动周期性定时器...(scheduler_tick)完成该cpu上任务的周期性调度工作;
在支持动态定时器的系统中,可以关闭该调度器,从而进入深度睡眠过程;scheduler_tick查看当前进程是否运行太长时间,如果是,