多核调度预备知识
进程调度的本质
任务/进程切换
- 即:上下文切换,内核对处理器上执行的进程进行切换
- “上下文” 指:寄存器的值
- “上下文切换”指:
- 将寄存器的值保存到内存中(进程被剥夺处理器,停止执行)
- 将另一组寄存器的值从内存中加载到寄存器(调度下一个进程执行)
- 对于处理器来说,随着时间的流逝,是在不停的执行进程。
- 在微观上轮流执行不同的进程,在宏观上,我们的感觉是进程在并行执行。
- 在进程切换的时候,会发生上下文改变,上下文改变的是寄存器的值。
当时间片耗完,不管进程正在执行什么代码,都一定会发生上下文切换。
上下文切换怎么发生的?
上下文切换这件事是怎么发生的?
是中断触发的。对于内核来说,会不断地触发时钟中断,通过时钟中断就可以触发上下文的切换。当然,除了时钟中断之外,还有IO中断也可以触发中断。
上下文切换的时候,是运行在内核模式的,可以有权限关闭中断的。