在现代计算机系统中,对I/O设备的控制,广泛采用中断驱动(Interrupt---Driven)方
式。在I/O设备输入每个数据的过程中,由于无须CPU干预,因而可使CPU与I/O设备并行工作。
仅当输完一个数据时,才需CPU花费极短的时间去做些中断处理。可见,这样可使CPU和I/O设
备都处于忙碌状态,从而提高了整个系统的资源利用率及吞吐量。如下图所示:
当某进程要启动某个I/O设备工作时,便由 CPU向相应的设备控制器发出一条I/O命令,然 后立即返回继续执行原来的任务。设备控制器 便按照该命令的要求去控制I/O设备。 此时,CPU与I/O设备并行操作。 例如,从终端输入一个字符的时间约为 100 ms , 而将字符送入终端缓冲区的时间小于 0.1 ms 。 若采用程序 I/O 方式, CPU 约有 99.9 ms 的 时间处于忙 — 等待中。 采用中断驱动 方式后, CPU 可利用这 99.9 ms 的时间去做其 它事情,而仅用 0.1 ms 的时间来处理由控制器 发来的中 断请求 。 可见,中断驱动方式可以 成百倍地提高 CPU 的利用率。 △ 中断驱动方式可以成百倍地提高CPU 的利用率。 |
程序I/O方式 | ||
在早期的计算机系统中,由于无中断机构,处理机对I/O设备的控制,采取程序I/O方 式(Programmed I/O方式)。在程序I/O方式中,由于CPU的高速性和I/O设备的低速性,致使 CPU 的绝大部分时间都处于等待I/O设备完成数据I/O的循环测试中,造成对CPU的极大浪费。 在该方式中,CPU之所以要不断地测试I/O设备的状态,就是因为在CPU中无中断机构,使 I/O 设备无法向CPU报告它已完成了一个字符的输入操作。如下图所示:
|