【发布时间】:2014-06-04 18:01:59
【问题描述】:
谁能解释中断如何从最低级别(硬件)传递到应用程序。
所以在下图中,我知道处理器之后发生了什么。
但是我想要从键盘按下到处理器的中断过程在硬件中发生了什么,比如它如何传递扫描码,中断控制器的作用是什么,一些寄存器是如何从下图中简单设置的?
【问题讨论】:
-
对于许多架构/操作系统,第一张图看起来是错误的。在繁忙的机器上,用户代码更有可能被中断。在空闲机器上,暂停指令更有可能被中断(即处理器停止)。 '处理器被中断,执行进入内核代码'会更准确。
-
由于与上述相同的原因,还“返回到被中断的内核代码”,加上中断返回很可能将执行返回给不同的代码(即另一个线程/进程),而不是被打断了。在您的示例中,等待 KB 输入的线程可能会在处理按键后直接从内核中断返回,并且如果内核没有停止,则会抢占之前运行的某个线程。
标签: linux io operating-system kernel