看到在四次拷贝过程中的第一次和最后一次拷贝都是DMA拷贝,速度很快,并且很少地占用CPU。就想看看为什么很少占用。
其实根据DMA的定义知道,DMA的英文拼写是“Direct Memory Access”,意思就是直接内存访问,是一种不经过CPU而直接从内存存取数据的数据交换模式。
DMA传送高速数据时,会由DMA控制器发送一个停止信号给CPU,请求获取对地址总线、数据总线以及其他控制总线的控制权,获取后,进行有关数据的传送,在此期间,CPU基本不被它占用,直到数据传送完毕,DMA控制器再度通知CPU,并把总线控制权交还给CPU
在DMA模式下,CPU只须向DMA控制器下达指令,让DMA控制器来处理数据的传送,数据传送完毕再把信息反馈给CPU,这样就很大程度上减轻了CPU资源占有率,可以大大节省系统资源。