6.2.2中断控制方式
上面介绍的程序查询方式,有两个明显的缺点。第一,CPU的利用率低。因为CPU要不断地读取状态字和检测状态字。如果状态字表明外围设备未准备好,则CPU还要继续查询等待。这样的过程占用了CPU的大量时间,尤其与中速或低速的外围设备交换信息时,CPU真正用于传送数据的时间极少,绝大部分时间都消耗在查询上。第二,不能满足实时控制系统对I/O处理的要求。因为在使用程序查询方式时,假设一个系统有多个外设,那么CPU只能轮流对每个外设进行查询。但这些外设的工作速度往往差别很大,这时CPU很难满足各个外设随机性的对CPU提出的输入/输出服务要求。
为了提高CPU的工作效率以及对实时系统的快速响应,产生了中断控制方式的信息交换。
1.基本概念
在日常生活中广泛地存在着“中断”的例子。例如一个人正在看书,这时电话铃响了,于是他将书放下去接电话。为了在接完电话后继续看书,他必须记下当时的页号,接完电话后,将书取回,从刚才被打断的位置继续往下阅读。由此可见,中断是一个过程。计算机是这样处理的,当有随机中断请求后,CPU暂停执行现行程序,转去执行中断处理程序,为相应的随机事件服务,处理完毕后CPU恢复执行被暂停的现行程序。在这个过程中,应注意如下几方面:
外部或内部的中断请求是随机的,若当前程序允许处理,应立即响应。
在内存中必须有处理该中断的处理程序。
系统怎样才能正确地由现行程序转去执行中断处理程序。
当中断处理程序执行完毕后怎样才能正确地返回。
现在再从另一方面分析,整个中断的处理过程就像子程序调用,但是本质的差异是调用的时间是随机的,调用的形式是不同的。因此,是否可以认为处理中断的过程是一种特殊的子程序调用,如图6.9和图6.10所示。
中断有两个重要特征:程序切换(控制权的转移)和随机性。