小编Jon*_*ney的帖子

dma vs中断驱动的i/o

我对DMA和中断I/O之间的差异有点不清楚.(目前正在阅读操作系统概念,第7版).

具体来说,我不确定在任何一种情况下中断何时发生,并且在两种情况下在哪些点上CPU都可以自由地进行其他工作.我一直在阅读的东西,但不一定和解:

中断驱动

  1. 控制器通过驱动程序初始化
  2. 控制器检查由驱动程序加载的寄存器以决定操作
  3. 从/向外设和控制器缓冲区的数据传输随之发生.
  4. 控制器发出中断时(每个字节读取?读取每个字?当缓冲区填满时?传输完成时?
  5. 这是我的理解,该CPU是没有做任何事情时外围< - >控制器I/O正在发生,并且控制器< - > MM I/O都发生?
  6. 当传输完成或块填满时,CPU必须初始化从控制器缓冲区到MM的传输

DMA

  1. 与上面相同,除了控制器能够在没有CPU干预的情况下将数据从其缓冲区直接传输到MM.
  2. 这是否意味着CPU仅在整个传输完成时中断,或者在控制器缓冲区填满时是否仍然中断?
  3. 唯一的区别是CPU不再需要等待控制器< - > MM I/O,但是当控制器缓冲区填满时仍然必须中断?或者DMA是否也将其隐藏在CPU中?

architecture operating-system driver interrupt dma

10
推荐指数
2
解决办法
2万
查看次数

标签 统计

architecture ×1

dma ×1

driver ×1

interrupt ×1

operating-system ×1