例如,要实现一个像Unix或nt这样的操作系统,该操作系统支持基于时间切换的不同任务切换,CPU应具有什么样的硬件支持?
英特尔80286是否开始支持时钟中断的"先发制人"任务的实现?实现此目标还需要什么硬件功能?
谢谢。
供操作系统有效地实现预先执行的多任务处理,硬件必须支持两个功能:
-
将操作系统交给任务后,将操作系统恢复控制。
这通常是通过计时器中断和在系统调用期间实现的。
在系统调用后,操作系统恢复控制,可以暂停当前的任务以支持其他任务(特别是IO有限的系统调用)。
也需要计时器,否则大腿旋转任务,没有任何系统呼叫的任务永远不会将控制权回到操作系统中。 -
一种防止上述功能禁用的方法。
如果运行的任务不能足以使先发制人的机制保持活跃,那么它可以简单地将其禁用并永远运行。
286是x86家族的第一个处理器,支持受保护模式,这是实现功能2所需的模式。
从开始(CPU为8086)以来,在IBM PC中提供了功能1。
功能1是平台硬件的功能,而不是CPU的功能(尽管可以包含在CPU中)。
功能2是CPU的功能。
请注意,还有其他可能实现1和2的方法。
例如,一个具有两个CPU的系统,一个系统可以控制另一个功能的执行(但不能相反)都有两个功能的条件。