中断与异常

中断

中断是计算机发展中一个重要的技术,它的出现很大程度上解放了 CPU,提高了 CPU 的执行效率。所谓中断,是指 CPU 在正常运行程序时,由于程序的预先安排或内外部事件,引起 CPU 中断正在运行的程序,而转到发生中断事件程序中。这些引起程序中断的事件称为中断源。

在中断出现之前,CPU 对 IO 采用的是轮询的方式进行服务,这使的 CPU 纠结在某一个 IO 上,一直在等待它的响应,如果它不响应,CPU 就在原地一直的等下去。这样就导致了其他 IO 口也在等待 CPU 的服务,如果某个 IO 出现了 important or emergency affairs,CPU 也抽不出身去响应这个 IO。

IO 中断

IO 中断方式是以字节为单位,DMA 控制方式是以一个连续的数据块为单位,IO 通道控制方式是 DMA 控制方式的发展,是以一组数据块为单位的,即可以连续读取多个数据块。

  • 程序直接访问方式跟循环检测 IO 方式,应该是一个意思吧,是最古老的方式。CPU 和 IO 串行,每读一个字节(或字), CPU 都需要不断检测状态寄存 器的 busy 标志,当 busy=1 时,表示 IO 还没完成;当 busy=0 时,表示 IO 完成。此时读取一个字的过程才结束,接着读取下一个字。

  • 中断控制方式:循环检测先进些,IO 设备和 CPU 可以并行工作,只有在开始 IO 和结束 IO 时,才需要 CPU。但每次只能读取一个字。

  • DMA 方式:Direct Memory Access ,直接存储器访问,比中断先进的地方是每次可以读取一个块,而不是一个字。

  • 通道方式:比 DMA 先进的地方是,每次可以处理多个块,而不只是一个块。