5.1.2 I/O控制方式

设备管理的主要任务之一是控制设备和内存或处理器之间的数据传送,外围设备和内存之间的输入输出控制方式有四种。

1、程序直接控制方式

        计算机从外部设备读取数据到存储器,每次读一个字的数据。对读入的每一个字,CPU需要对外设状态进行循环检查,直到确定该字已经在I/O控制器的数据寄存器中。在程序直接控制方式中,由于CPU的高速性和I/O设备的低速性,致使CPU的绝大部分时间都处于I/O设备完成数据I/O的循环测试中,造成了CPU资源的极大浪费。在该方式中,CPU之所以要不断地测试I/O设备的状态,就是因为在CPU中没有采用中断机构,使I/O设备无法向CPU报告它已经完成了一个字符的输入操作。

程序直接控制方式虽然简单易于实现,但是其缺点也是显而易见的,由于CPU和I/O设备只能串行工作,导致CPU的利用率相当低。

2、中断驱动方式

       中断驱动方式的思想是,允许I/O设备主动打断CPU的运行并请求服务,从而“解放CPU”,使得其向I/O控制器发送读命令后可以继续做其他有用的工作。我们从I/O控制器和CPU两个角度分别来看中断驱动方式的工作过程:

       从I/O控制器的角度来看,I/O控制器从CPU接受一个读命令,然后从外围设备读数据。一旦数据读入到该I/O控制器的数据寄存器,便通过控制线给CPU发送一个中断信号,表示数据已准备好,然后等待CPU请求该数据。I/O控制器收到CPU发出的读数据请求后,将数据放到数据总线上,传到CPU的寄存器中。至此,本次I/O操作完成,I/O控制器又可开始下一次I/O操作。

       从CPU的角度来看,CPU发出读命令,然后保存当前运行程序的上下文(现场,包括程序计数器及处理机寄存器),转去执行其他程序。

你可能感兴趣的:(#,操作系统)