传统IO
传统IO过程
- CPU发起IO请求,每次只能请求一个字
- 磁盘数据写入缓冲区后,通过IO中断通知CPU
- CPU将缓冲区数据通过寄存器写入内核缓冲区(内存中)
- CPU将内核缓冲区(内存中)的数据拷贝到用户缓冲区(内存中)
缺点
- CPU效率低下:CPU需要频繁得处理IO请求
- 传输效率低下:数据先从磁盘缓冲区拷贝到寄存器后才到拷贝到内存

引入DMA后的IO
将数据搬运的工作全部交给DMA控制器,CPU不需要参与
引入DMA后的IO过程
- CPU发送IO请求到DMA
- DMA拷贝磁盘数据到内核缓冲区
- DMA拷贝完后向CPU发送IO中断请求
- CPU将内核缓冲区的数据拷贝到用户缓冲区