1schedule 函数
kernle/sched.c
有几个特点:
在多处理器上要注意几个细节
不仅实现了优先调度,还实现了Posix标准需要的其他两种软实时策略
使用goto以便生成最优的汇编语言
调度器原理....
虚拟时钟
其实意思是:假设有N个进程.按照完全公平原则,每个进程分到的CPU是 1/N, 假设有5个进程,每个进程单独运行需要10分钟,按照完全公平原则.5个进程一起运行,每个需要50分钟.
有了虚拟时钟后,按实际速度 1/5 运行,在就绪队列等待实际的50s.相当于虚拟时间的10S, 5个进程分别执行10秒.即可使CPU实际占用50s
..........................................................................
调度器还受到如下的一些影响
进程的优先级
进程不能频繁切换
可以通过/proc/sched_debug 查看一些调度器统计
这段话没咋看懂,先mark一下,回头再深究........