我正在阅读有关操作系统如何使用中断与硬件通信的内容,只是想知道,除了中断驱动之外,是否还有其他架构?在 Robert Love 的 Linux 内核书中,他说 Linux 处理的大部分架构都是中断驱动的,那么其他的呢?有人能举个例子吗?谢谢。

最佳答案

对您的问题的简短回答是,只有一种其他模型,那就是轮询。在轮询模型中,系统反复询问硬件是否发生了任何事情。这种模型的缺点是 CPU 总是忙于询问,并且只有在它要求时才能知道事件。如果它开始做其他事情,它可能会错过一个 Action (因为它在 Action 时没有要求事件)。

更长的答案:

仔细想想,实际上只有两种可能的系统:轮询(拉)和事件驱动(推)。在前者中,您询问硬件是否发生了任何事情,而在后者中,硬件会告诉您。换句话说:前者的代理与CPU/OS有关,而后者则与硬件有关。由于有两方,每一方都可以做两件事之一,这意味着我们只能有两种类型的系统(推/中断和拉/轮询),加上一个混合系统(中断驱动和轮询基于不同的时间或不同的环境)。

人们可以想象实现这三个系统中的任何一个的各种方法,并且可以将它们视为不同的模型,即使在幕后,它们实际上是在实现其中一个可能的系统。不过,我想这不是你真正要找的。

关于architecture - 除了中断驱动架构,还有其他模型吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12649089/

10-11 15:43