我现在正在阅读有关抢先式多任务处理的资料 - 有一件事让我感到不安。
所有材料都暗示,操作系统会以某种方式从“外部”中断CPU上的运行进程,从而导致上下文切换等。
然而,我无法想象当操作系统的内核只是CPU上的另一个进程时,它将如何工作。当另一个进程已经占用CPU时,操作系统如何导致从“外部”切换?
答案 0 :(得分:6)
操作系统不仅仅是另一个过程。当发生中断时,OS会控制系统的行为。
在调度程序启动进程之前,它会安排在时间片结束时发送定时器中断。假设在此之前没有其他事情发生,计时器将触发,内核将接管控制权。如果它选择安排一个不同的进程,它将切换出来以允许另一个进程运行,然后从中断返回。
答案 1 :(得分:5)
硬件可以向处理器发出信号 - 这称为“中断” - 当它发生时,控制权转移到内核(无论当时正在执行哪个进程)。此功能内置于处理器中。具体地说,控制被转移到“中断处理程序”,这是内核中的函数/方法。例如,内核可以调度定时器中断,以便周期性地发生这种情况。一旦发生中断并将控制权转移到内核,内核就可以将控制权传递回最初执行的进程或其他已安排的进程。