时钟中断,调度器,任务切换
总的关系是硬件触发时钟中断,时钟中断调用调度器,调度器完成任务的选择和切换。
1) 时钟中断
计算机的处理是离散的,不是连续的。这涉及到计算精度、时钟的问题。
现代的操作系统都是多任务分时系统,也就是以时间片为单位进行运转的。
多任务的切换必然要判断涉及到时间信息,操作系统可以从时钟中断获取。
另外,任务执行的时间片的数量也可以用来进行任务级别的划分。
计算强度大的可以多占用时间片,IO多的就少占用。
2) 调度器
比例公平调度,完全公平调度,EAS调度器,实时调度…等等调度方法,都是在时钟中断时触
发的。不同调度策略侧重点不同,有的重视性能,想要提高处理器利用率,有的希望任务的
频繁切换,有的想节能,有的需要硬实时。
调度器不同的地方在于对任务的负载、处理器的模型化描述,以及next任务的选择依据。
处理器的模型化描述表示了处理器的性能,任务的负载联合起来描述了处理器的负载,
这两个决定了处理器间的任务调度,next任务的选择依据在单核上最为重要。
(单一计算机上的任务调度)
3) 任务切换
任务切换在调度器完成next任务的选择之后进行的。
同一特权级下的任务切换:
最关键的地方在于,A任务在向B任务切换时,A的全部push操作针对A的
栈来运行,