I/O的三种方式
- IO轮询方式
- IO中断方式
- IO
IO轮询方式(较为低效)
- 处理器向控制器发送I/O命令,轮询I/O结果
- 若设备未就绪,则重复测试过程,直至设备就绪
- 执行内存与数据之间的数据交换
- 直到I/O操作结束之后,处理器才可以继续执行其他操作
IO中断方式(使外围设备和CPU具有了一定的并行性)
- 处理器向控制器发出具体I/O命令,然后继续执行后续指令
1. 若进程支持异步I/O,后续指令仍可以为该进程的指令
2. 否则该进程在这个中断上挂起,处理器执行其他操作 - 控制器检查设备状态,就绪后发出中断.
- CPU响应中断,并进行中断处理
- 由中断处理程序执行内存数据交换
I/O的DMA方式(直接存储器访问方式)
DMA模块:能够替代处理器来控制主存和设备控制器之间的数据交换
- 处理器向DMA模块发出I/O命令
- 处理器继续执行其他工作,DMA模块负责传送全部数据
- 数据传送结束后,DMA中断处理器