操作系统I&O控制方式
视频地址:https://www.bilibili.com/video/BV1YE411D7nH?p=64
I&O设备按照信息交换的单位可以分为以下两类:
- 块设备 数据传输的基本单位是块,传输速率较高,可寻址,可随机读写任意一块。如磁盘
- 字符设备 数据传输的基本单位是字符,传输速率较慢,不可寻址,在输入/输出时常采用中断驱动方式。如鼠标、键盘等
I&O控制方式
1、程序直接控制方式(轮询)
- 其中的关键词是轮询,cpu向控制器发出指令后,会一直轮询检查数据是否准备好(通过状态寄存器)
流程图:
方法分析:
- 实现简单。
- CPU需要一直轮询检查,长期处于“忙等”状态,利用率低。
2、中断驱动方式
- 每次发生中断都是读入了一个字的数据
分析:
- cpu和I&O设备可并行工作,cpu利用率得到明显提升
- 每个字在I/O设备与内存之间的传输都需经过cpu,而频繁的中断处理会消耗较多的cpu时间
3、DMA方式
- 传送单位变为了块
分析:
- 数据传输以块为单位,cpu介入频率进一步降低。数据的传输不再需要先经过cpu再写入内存,数据传输效率进一步增加
- cpu每发出一条I/O指令,只能读写一个或多个连续的数据块
4、通道控制方式
- 通道是硬件
分析:
- cpu、通道和I/O设备可并行工作,资源利用率很高
- 实现复杂,需要专门的通道硬件支持
四种方式的对比
整个发展过程就是要尽量减少CPU对I/O过程的干预,把CPU从繁杂的I/O控制事务中解脱出来。