【发布时间】:2011-11-11 19:24:02
【问题描述】:
我现在正在阅读有关抢先式多任务处理的材料 - 有一件事让我无法理解。
所有资料都暗示,操作系统以某种方式从“外部”中断了CPU上正在运行的进程,从而导致上下文切换等。
但是,当操作系统的内核只是 CPU 上的另一个进程时,我无法想象它会如何工作。当另一个进程已经在占用 CPU 时,操作系统如何导致从“外部”切换?
【问题讨论】:
标签: operating-system multitasking
我现在正在阅读有关抢先式多任务处理的材料 - 有一件事让我无法理解。
所有资料都暗示,操作系统以某种方式从“外部”中断了CPU上正在运行的进程,从而导致上下文切换等。
但是,当操作系统的内核只是 CPU 上的另一个进程时,我无法想象它会如何工作。当另一个进程已经在占用 CPU 时,操作系统如何导致从“外部”切换?
【问题讨论】:
标签: operating-system multitasking
硬件可以向处理器发出信号——这被称为“中断”——当它发生时,控制权就会转移到内核(无论当时正在执行哪个进程)。此功能内置于处理器中。具体来说,控制权被转移到一个“中断处理程序”,它是内核中的一个函数/方法。例如,内核可以调度一个定时器中断,以便定期发生这种情况。一旦发生中断并将控制权转移给内核,内核就可以将控制权交还给最初执行的进程,或者另一个被调度的进程。
【讨论】:
操作系统不仅仅是另一个进程。当中断发生时,操作系统控制系统的行为。
在调度程序启动进程之前,它会安排在时间片结束时发送定时器中断。假设在此之前没有发生任何其他事情,计时器将触发,内核将接管控制权。如果它选择调度一个不同的进程,它会切换一些东西让另一个进程运行,然后从中断中返回。
【讨论】: