例如,要实现一个像unix或NT这样的操作系统,它支持基于时间片的不同任务切换,cpu应该具备哪种硬件支持?
英特尔80286是否开始支持先发制人的实施'任务,时钟中断?还有哪些硬件功能可以实现这一目标?
感谢。
答案 0 :(得分:4)
对于有效实施Preemptive multitasking的操作系统,硬件必须支持两个功能:
在执行任务后将操作系统恢复控制的一种方法
这通常通过定时器中断和系统调用来实现
在系统调用时,操作系统重新处于控制状态,可以暂停当前任务而不是其他任务(特别是IO有界系统调用)。
也需要计时器,否则不进行系统调用的大腿旋转任务永远不会将控制权交还给操作系统。
防止禁用上述功能的方法。
如果正在运行的任务不足以使抢占机制保持活动状态,那么它可以简单地禁用它并永远运行。
286是x86系列中第一个支持protected mode的处理器,这是实现功能2所必需的模式。
功能1从一开始就在IBM PC中可用(CPU为8086),使用PIT 8254。
功能1是平台硬件的功能,而不是CPU(though it can be included in the CPU)的功能 功能2是CPU的一项功能。
请注意,还有其他可能的方法来实现1和2 例如,一个具有两个CPU的系统,其中一个可以控制另一个CPU的执行(但不是相反的方式),这两个系统都有资格。