首页 理论教育计算机导论:中断技术的应用

计算机导论:中断技术的应用

【摘要】:操作系统进行外部设备管理的基本方法是采用中断技术。当中断服务程序运行结束时,CPU再转回主程序继续运行。图5-12 输入/输出中断的处理流程对图5-12要进一步说明的是,在输入/输出设备进行启动的准备工作时,CPU在继续运行主程序。完成相应的中断服务功能。简单说,通道技术就是再设计一个独立于CPU的功能简单的CPU,专门处理外部设备和主机的数据交换事情。

操作系统在进行外部设备管理时遇到两个非常大的问题,一个问题是外部设备的工作速度远比CPU的工作速度低,另一个问题是各个外部设备之间的工作速度很不相同。有效地解决上述两个问题,是操作系统实现外部设备管理的关键

操作系统进行外部设备管理的基本方法是采用中断技术。中断技术可以有效地解决外部设备管理时遇到的上述两个问题。

1.中断的概念

早期的计算机在外部设备工作时,CPU处于空闲状态。由于外部设备的工作速度比CPU的工作速度低很多,因此,这种工作方式下,宝贵的计算机CPU资源白白浪费,整个计算机系统的利用效率很低。

从字面意义看,中断就是暂时停止做某件事情而转去做另一件事情(通常是更紧急的事情),当另一件事情完成后,再转回来完成先前正在做的事情。

在计算机运行程序时,既不能确定什么时间要进行外部设备工作(如输入/输出工作),也不能确定每次外部设备工作的完成时间。对于这种不能确定发生和结束时间的事件,我们可以借助中断的思想来进行管理。

各个外部设备的工作是靠相应的外部设备服务程序来指挥的。所谓中断,就是计算机在运行当前程序过程中,当遇到急需处理的事件时,暂停当前正在运行的程序,转去运行处理紧急事件的程序(通常称为中断服务程序),当处理紧急事件的程序运行结束后,再自动返回原先正在运行的程序继续运行。

数据的输入/输出是最简单的一种中断。图5-12给出了计算机处理输入/输出中断的处理流程。我们把当前正在运行的程序称为主程序。CPU在运行主程序时,当需要输入数据或输出数据时,操作系统就向相应的输入/输出设备发出一个启动工作信号。此时,输入/输出设备进行启动的准备工作,与此同时,CPU将继续工作。只是由于当前正在运行的进程(即主程序)需要等待输入数据或输出数据,因此处于阻塞状态,进程调度程序需要重新调度一个新的进程作为CPU当前运行的进程(即主程序)。当输入/输出设备准备就绪时,向CPU发送一个中断请求信号,CPU响应中断后,暂停当前正在运行的主程序,转到相应的中断服务程序首地址(称为中断服务程序入口),运行中断服务程序。当中断服务程序运行结束时,CPU再转回主程序继续运行。

图5-12 输入/输出中断的处理流程

对图5-12要进一步说明的是,在输入/输出设备进行启动的准备工作(一般这个过程需要数秒)时,CPU在继续运行主程序(可能是另外一个进程)。因此,CPU资源没有因输入/输出设备工作而受到影响。

2.中断的处理过程(www.chuimin.cn)

中断处理过程主要包括以下几个步骤:

(1)保护中断现场。把被中断进程的CPU当时环境(如程序计数器的值、通用寄存器的值等等)保存到内存的一个特定区间(通常称为中断保护区)内。

(2)识别中断源。根据中断信号带有的特殊标记,判断出当前发生的是哪一种中断。

(3)转到相应的中断处理程序。不同的中断处理程序有不同的中断程序入口,根据识别出的中断源,转到相应的中断程序入口。

(4)运行中断处理程序。完成相应的中断服务功能。

(5)恢复中断现场。恢复保护中断现场时在中断保护区中保存的所有数值,即恢复中断处理过程(1)时保存的所有数值。

(6)返回主程序继续运行。

3.其他的外部设备管理方法

对外部设备的管理除中断技术外,还有其他一些技术,主要是通道技术和外部处理机技术。简单说,通道技术就是再设计一个独立于CPU的功能简单的CPU,专门处理外部设备和主机的数据交换事情。因外部设备和主机之间的数据交换就像一个数据通道,所以此种技术称为通道技术。外部处理机技术是再用一台计算机(如微机)来管理所有外部设备和主机之间的数据交换事务