1. 直接等待

早期的计算机系统中,由于无中断机构,处理机对I/O设备的控制采取程序直接控制方式,或称为忙—等待方式。在程序I/O方式中,由于CPU的高速性和I/O设备的低速性,致使CPU的绝大部分时间都处于等待I/O设备完成数据I/O的循环测试中,造成对CPU的极大浪费。在该方式中,CPU之所以要不断地测试I/O设备的状态,就是因为在CPU中无中断机构,使I/O设备无法向CPU报告它已完成了一个字符的输入操作。

2. 中断请求

在现代的计算机系统中,都引入了中断机构,所以对I/O设备的控制都广泛采用中断驱动(Interrupt Driven)方式,即当某进程要启动某个I/O设备工作时,便由CPU向相应的设备控制器发出一条I/O命令,然后立即返回继续执行原来的任务。设备控制器于是按照该命令的要求去控制指定的I/O设备。
在I/O设备输入每个数据的过程中,由于无需CPU干预,因而可使CPU与I/O设备并行工作。仅当输完一个数据时,提出中断唤起操作系统。可见,这样可使CPU和I/O设备都处于忙碌状态,从而提高了整个系统的资源利用率及吞吐量

3. DMA

和上述的方式相比起来DMA更加倾向于是传输块状的数据,传完了一块的数据再唤起OS进行处理
中断控制方式在每个数据传送完成后中断CPU,而DMA控制方式则是在所要求传送的一批数据全部传送结束时才中断CPU。中断控制方式的数据传送是在中断处理时由CPU控制完成的,而DMA控制方式则是在DMA控制器的控制下完成。

4.控制通道

控制通道我的理解是对DMA的一次升级。
虽然DMA方式比起中断方式来已经显著地减少了CPU的干预,即已由以字(节)为单位的干预减少到以数据块为单位的干预。但CPU每发出一条I/O指令,也只能去读/写一个连续的数据块。而当我们需要一次去读多个数据块且将它们分别传送到不同的内存区域,或者相反时,则需由CPU分别发出多条I/O指令及进行多次中断处理才能完成。
他就把指令和数据都准备好了,通道本质上是一个简单的处理器,专门负责输入、输出控制,具有执行I/O指令的能力,并通过执行通道I/O程序来控制I/O操作批量的处理完了再回来,进一步减少了CPU的依赖
一般是用在多个IO设备的地方

参考连接:https://blog.csdn.net/dongyanxia1000/article/details/51899369