0

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

英特尔 80286 是否开始支持“抢占式”任务的实现,时钟中断?实现这一目标还需要哪些硬件功能?

谢谢。

4

1 回答 1

5

为了让操作系统有效地实现抢占式多任务处理,硬件必须支持两个特性:

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

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

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

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

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

于 2016-12-31T10:31:51.020 回答