DMA允许外围设备和主内存之间直接传输 I/O 数据, DMA 依赖于系统.每一种体系结构DMA传输不同,编程接口也不同. 数据传输可以以两种方式触发:一种软件请求数据,另一种由硬件异步传输. 在第一种情况下,调用的步骤可以概括如下(以read为例): (1)在进程调用 read 时,驱动程序的方法分配一个 DMA 缓冲区,随后指示硬件传送它的数据.进程进入睡眠. (2)硬件将数据写入 DMA 缓冲区并在完成时产生一个中断. (3)中断处理程序获得输入数据,应答中断,最后唤醒进程,该进程现在可以…