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