要实现“抢占式”任务的操作系统,CPU 应支持哪些硬件功能?

Tro*_*yvs 0 operating-system cpu-architecture task multitasking preemptive

例如,要实现像unix或NT这样的操作系统,支持基于时间片切换不同的任务,cpu应该有什么样的硬件支持?

intel 80286是否开始支持带有时钟中断的“抢占式”任务的执行?实现这一目标还需要哪些硬件功能?

Mar*_*oom 7

对于要有效实现抢占式多任务处理的操作系统,硬件必须支持两个功能:

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

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

286 是 x86 系列中第一个支持保护模式的处理器,保护模式是实现功能 2 所必需的模式。
功能 1 从一开始就通过使用 PIT 8254 在 IBM PC(CPU 为 8086)中可用

功能 1 是平台硬件的功能,而不是 CPU 的功能(尽管它可以包含在 CPU 中)。
特征2是CPU的特征。

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