当一个进程在CPU上运行时,操作系统并不是在后台运行,因为单核CPU一次只能执行1条指令。那么操作系统是如何抢占一个进程的呢,是由硬件来完成的吗? 我在任何地方都找不到答案
最佳答案
要了解操作系统如何重新获得对进程的控制,必须了解中断的概念。中断是发送到 CPU 的信号,表示当前进程必须停止(即中断),以便另一个进程可以开始。从某种意义上说,这是在硬件级别完成的,因为 CPU 中有专用寄存器,用于放置中断位。
当中断发生时,CPU 寄存器的内容被存储,当前堆栈指针被保存,然后程序计数器指向由调度程序发出的下一条指令,调度程序决定下一个开始哪个进程 - 通常是中断进程。除非出现死锁,任何进程都无法取得进展 - 调度程序将返回到原始进程,并且该进程的执行上下文将被重新加载到机器中(因为我们之前保存了它)。这种保存机器状态、执行新进程并返回原始进程的概念称为上下文切换。更多信息 here
关于linux - 操作系统如何抢占进程并重新获得控制权?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58916159/