要为 'preemptive' 任务实施 OS,cpu 应该支持什么硬件功能?

To implement OS for 'preemptive' tasks, what hardware feature should cpu support?

比如要实现一个像unix或者NT这样的操作系统,支持按时间片切换不同的任务,需要什么样的硬件支持cpu?

intel 80286 是否开始支持执行 'preemptive' 任务,时钟中断?实现此目标还需要哪些硬件功能?

谢谢。

要使 OS 有效地实现 Preemptive multitasking,硬件必须支持两个功能:

  1. 一种在 OS 将执行交给任务后重新获得控制权的方法。
    这通常是通过定时器中断和系统调用来实现的。
    在系统调用时,OS 重新控制并且可以暂停当前任务以支持其他任务(特别是对于 IO 有界系统调用)。
    计时器也是必需的,否则不进行系统调用的大腿旋转任务永远不会将控制权交还给 OS.

  2. 一种防止禁用上述功能的方法。
    如果 运行ning 任务不能被沙盒化到足以保持抢占机制处于活动状态,那么它可以简单地禁用它并永远 运行。

286 是 x86 系列中第一个支持 protected mode 的处理器,这是实现功能 2 所必需的模式。
通过使用 PIT 8254.

,从一开始(CPU 是 8086)就可以在 IBM PC 中使用功能 1

功能 1 是平台硬件的功能,而不是 CPU (though it can be included in the CPU) 的功能。
功能 2 是 CPU.

的功能

请注意,还有其他可能的方法可以实现 1 和 2。
例如,具有两个 CPU 的系统,其中一个可以控制另一个的执行(但反之则不行)符合这两个功能的条件。