我们可以把程序直接I/O控制方式、中断I/O控制方式、DMA控制方式和通道控制方式比作人生早期的4个阶段。程序直接I/O控制方式就如同人的婴儿时期,你得始终端着奶瓶给婴儿喂奶;中断I/O控制方式如同人的幼儿时期,你给幼儿喂一匙饭就可以稍微歇一会,当幼儿张嘴时你再喂下一匙;DMA控制方式如同人的少儿时期,这时你可以给他盛一碗饭让他自己吃,而你可以去干其他事了,当他吃完需要再盛一碗时,你就过来给他盛第二碗;通道控制方式就如同人的青年时期,这时你只要对他说吃饭了,那么从盛饭到吃饭他都自己完成,最后他会告诉你一声吃过了,此时你可做一些善后工作,如收拾碗筷等。
四种I/O控制方式的优缺点主要体现在以下4个方面。
(1)程序直接I/O控制方式。优点是控制简单,也不需要很多硬件支持。缺点是CPU和外部设备之间只能串行工作,且CPU的大部分时间都处于循环测试状态,这使得CPU的利用率大为降低。由于CPU在一段时间内只能与一台外部设备交换数据,因此不能实现设备之间的并行工作。此外,程序直接I/O控制方式通过测试设备的状态标志来控制数据的传送,所以无法发现和处理因设备或其他硬件所产生的错误。因此,程序直接I/O控制方式只适用于那些CPU执行速度较慢且外部设备不多的系统。
(2)程序中断I/O控制方式。优点是能够实现CPU与设备之间、设备与设备之间的并行操作,CPU的利用率较程序直接I/O控制方式大为提高。缺点:I/O控制器的数据缓冲寄存器通常较小,且数据缓冲寄存器每当装满数据时都会发出中断,这使得完成一次数据传送发生的中断次数过多而耗费大量的CPU时间。如果系统配置的外部设备较多,且都采用中断I/O控制方式进行并行操作,则将消耗大量的CPU时间,并且有可能因CPU来不及处理而造成数据丢失。(www.xing528.com)
(3)DMA控制方式。与程序中断I/O控制方式相比,DMA控制方式的优点是在一个数据块的数据传送完成后中断一次CPU,从而减少了CPU中断处理的次数,并且DMA控制方式下的数据传送是在DMA控制器控制下完成的,在每个数据块的传送过程中无须CPU干预,而是在每个数据块传送完毕后发出中断,显然,DMA控制方式的效率要高得多。缺点:DMA控制仍有一定的局限性,即每传送完一个数据块都要向CPU发出中断,这使得在每个数据块传送结束时CPU都需要切换回来进行相应的处理,即以来回切换的方式实现与外部设备的并行操作,因此效率仍不够高。此外,对外部设备的管理仍然需要由CPU完成,并且使用多个DMA控制器也不够经济。
(4)I/O通道控制方式。优点是CPU只需发出I/O指令,通道就能完成相应的I/O操作,并且只在整个数据传送操作结束时向CPU发出中断。由此可见,CPU仅在I/O操作开始和结束时花较短的时间处理与I/O有关的事宜,而其余时间里,通道进行数据传送而CPU则做其他工作,即实现了CPU与通道的并行工作,且通道与通道之间也实现了并行操作。此外,一个通道还可以控制多台外部设备,从而极大地提高了整个计算机系统资源的利用率。缺点是通道价格较高,从经济角度考虑不宜过多使用。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。