单核计算机的进程处理程序如何从进程中取回控制权?

How does a process handler of a single-cored computer get control back from a process?

在单核计算机上只有一个 real/physical 控制点。当唯一的控制点在当前进程手中时,进程处理程序如何在需要时取回控制点?

来自中断控制器的硬件中断。这可能来自外部设备,例如硬盘驱动器通知 CPU DMA 操作已完成或 UART 指示数据可从其寄存器读取。大多数情况下,它来自 timer/clock 循环计数器。在 OS 运行用户模式代码之前,它将此时钟配置为在一定数量的时钟周期后中断,并配置调用 OS 的调度程序代码的中断处理程序。

以上所有都是可抢占的OS,几乎涵盖了所有现代OS。在过去,OS 不能中断用户模式代码。在调度另一个进程之前,用户模式代码必须回调到 OS。显然这意味着一个程序可以永久冻结整个系统。