关于异步在操作系统层面的支持

DMA1

  • DMA(直接内存访问)

拥有DMA功能的硬件在和内存进行数据交换的时候可以不消耗CPU资源。只要CPU在发起数据传输时发送一个指令,硬件就开始自己和内存交换数据,在传输完成之后硬件会触发一个中断来通知操作完成。这些无须消耗CPU时间的I/O操作正是异步操作的硬件基础。

来源: https://heapdump.cn/article/663987

IO设备与主存信息传送的控制方式:

轮询(💛)、中断(💚)、DMA(❤️)、RDMA(🖤) 数据线加粗,实细线为地址线,虚线为控制线
DMA2

中断的方式,数据,地址,控制信息都需要经过CPU,并在CPU寄存器暂存,都会浪费CPU资源。DMA的方式,IO设备可以通过DMA控制器直接和主存交流,只有传递控制信息的时候会经过CPU(产生一个中断告诉CPU数据传好了),而控制信息占用的时间是极小的,可以忽略不计,基本等价于IO设备和CPU实现真正的并行工作。

DMA3

posted @ 2022-12-08 14:59  rachel_aoao  阅读(52)  评论(0编辑  收藏  举报