我有这个问题与Direct Memory Access (直接存储器访问)的概念有关。OS/Linux内核有没有办法知道哪条指令正在使用DMA,哪条指令没有?或者DMA完全由硬件实现,而操作系统无法访问DMA控制器?
发布于 2014-05-07 06:58:56
您的问题不是很清楚,因为DMA与CPU指令无关。它是一块硬件,可以在不涉及CPU的情况下处理内存访问。例如,从网络适配器逐个字节地接收网络数据包将是非常低效的。取而代之的是,OS设置一个DMA区域,该区域可由网络适配器访问,网络适配器直接将接收到的数据写入该区域,而不必占用CPU。因此,操作系统当然知道DMA,它的任务之一是管理其配置,以便为更有用的工作保留CPU周期。
https://stackoverflow.com/questions/23498556
复制相似问题