进程调度程序是在操作系统级别还是硬件级别实现的?

进程调度程序是在操作系统级别还是硬件级别实现的?

进程调度程序是用软件还是硬件实现的?如果是用硬件实现的,那么硬件如何跟踪进程的数量以及它们在不活动时的位置?如果是软件,那么硬件通常会提供指令来帮助调度,例如将寄存器加载或存储在内存中的某个地址?

答案1

普通 PC 平台上的 x86 CPU 不会在硬件中实现调度,这是内核的工作。其他常见 CPU(如 ARM、MIPS、PowerPC 等)也不会。

硬件通常是否提供指令来帮助调度,例如将寄存器加载或存储在内存中的地址?

“在内存中的地址处加载和存储寄存器”是 CPU 的基本操作,它有助于 CPU 执行的几乎所有操作,而不仅仅是调度任务。

但事实并非如此 - 继续以 x86 为例,没有任何特殊的进程调度指令。

从调度角度来看,硬件唯一需要做的就是(如果你想要一个抢占式多任务系统而不是协作式多任务系统)找到一种中断耗时过长的任务的方法,而 PC 平台提供的计时器会在到期时引发中断,以此强制进程放弃对 CPU 的控制。

相关内容