gpt4 book ai didi

io - 编程(轮询)的I/O,中断驱动的I/O和直接内存访问之间有什么区别。这些形式的I/O OS是否相关?

转载 作者:行者123 更新时间:2023-12-05 00:17:16 25 4
gpt4 key购买 nike

如果有人可以对这三种类型的I/O之间的区别做出清晰的解释,我将不胜感激。另外,我想知道这些形式的I/O是否依赖于操作系统?

我已经阅读了dma vs interrupt-driven i/o问题,但答案既不清楚又矛盾。至少对我(一个不清楚概念的人)来说,这个问题似乎没有明确的答案。

谢谢你。

最佳答案

轮询(或编程)的I/O:CPU手动检查是否有周期性的I/O请求可用。如果没有,它将继续执行其正常的工作流程。如果存在,它将处理IO请求。

中断驱动的I/O:CPU不需要手动检查IO请求。当有可用的I/O请求时,立即使用中断通知CPU,并使用中断服务程序立即处理该请求。

DMA:DMA的使用允许使用中断驱动的IO。否则,如果DMA不可用,则系统必须使用已编程的I/O。

DMA是一种允许设备(通常具有非常低的I/O速度)访问主内存而无需CPU显式处理请求的方法。当CPU启动从IO设备到主存储器的数据传输时,CPU指示DMA Controller 处理此任务。然后,CPU将“忘记”该操作,并继续执行其他任务。 DMA Controller 完成传输后,它将使用中断向CPU发出信号。然后,CPU将“结束”与其启动的数据传输相关的所需任务。

DMA和中断驱动的IO的可用性取决于物理CPU。如果存在DMA和中断硬件,则OS(和您的程序)可以使用中断驱动器IO请求。否则,必须定期通过轮询手动检查I/O请求。

关于io - 编程(轮询)的I/O,中断驱动的I/O和直接内存访问之间有什么区别。这些形式的I/O OS是否相关?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40541880/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com