DMA:在现代操做系统中,外设有数据到来时,基本上都采用中断方式通知CPU,操做系统响应中断,而后再从外设读取数据,这时,若是外设的数据比较频繁,那么是否每到一个数据都中断一次呢??这样 CPU 就很是频繁地被外调中断打断,操做系统在处理中断时要浪费必定时间,并且 CPU 读外部 IO 速度也很慢,这样的话,大量时间被用在了响应中断上,而去调度其它任务的时间减小,让人感受系统响应速度不够,也会影响外设的数据传输速度(若是外设传输速度太快,操做系统就有可能丢失部分数据),由此引出 DMA 的机制:spa
外设直接将一块数据放在了 RAM 中,而后再产生一次中断,这样操做系统直接将内存中的那块数据传给想要获取这块数据的一个任务(或者放在内存的另外一空闲部分),此时,系统就少了频繁响应外设中断的开销,也少了读取外设 IO 的时间开销(读取 RAM 比读取外设 IO 要快不少),这就是 DMA 的做用所在!操作系统