看了一些关于重叠IO的资料,我联想到了计算机的DMA功能,DMA就是CPU把内存的传送任务分派给DMA芯片,DMA任务完成后产生IO中断通知CPU任务完成,而DIRECT X里面的BITBLT明确说明是利用了显卡的DMA功能(如果显卡支持),是不是重叠IO和DMA也存在关系呢?各位来讨论一下

解决方案 »

  1.   

    现在的计算机的各个芯片模块一般都有DMA芯片来加速系统的性能,有些高级的主板堪至采用了通道技术(在显卡上是越来越普遍了,3D加速卡如果没有采用通道技术很难想像会是怎么样子).还有的采用了处理机技术,就是CPU把一些能完成特定任务的指令交给子处理系统来处理来进一步解放CPU负担,子系统完成任务后产生IO中断,比如3D加速卡,高档的网卡,声卡等.
      

  2.   

    刚刚看了相关资料,发现OVERLAPPED IO原来是系统把一些处理放到相关线程里处理了,线程处理好后设置相应Event,这里和DMA有没有关系呢?===============================
        CSDN小助手 是一款脱离浏览器也可以使用csdn论坛的
    软件!
        界面: http://qqwwee.com/
        下载: http://qqwwee.com/csdn.rar 包含源代码
      

  3.   

    DMA应该算是硬件实现的,overlapped io是多线程支持的。
      

  4.   

    好像DMA是驱动程序的事情,用户模程序只负责调用高级的函数,底层的驱动程序接受用户服务调用后,通过配置信息决定要不要DMA,好像是这样的吧
      

  5.   

    现在感觉,DMA只属于Ds,对一般WIN32API是透明的