如果内核是唯一的进程,那么ALU将继续执行内核指令。
现在,当另一个进程A启动时,我的理解是内核将A的起始地址加载到程序计数器中。
当ALU正在执行进程A时,内核未处于运行状态。
(这可能听起来很傻,但我真的不明白这是如何运作的)
答案 0 :(得分:1)
中断会更改CPU上下文。设备中断可能导致驱动程序代码按计划运行(例如绘图),并且通常使用定时器中断来执行任务调度。
实际上,每个OS调用都必须作为软件中断实现(有时使用例如sysenter
进行优化),因为用户代码无法将上下文更改回内核。具体来说,内核代码需要运行特权(在x86架构上,这称为" ring 0"),非内核代码不能更改特权级别。