区分程序控制 I/O 和中断驱动 I/O。

operating systemhardwaresoftware & coding更新于 2026/2/9 9:37:17

程序控制(输入/输出)I/O 和中断驱动 I/O 之间的区别如下 −

程序控制 I/O

这种 I/O 技术是外部设备和处理器之间交换数据最简单的方法。在这种技术中,处理器或中央处理器 (CPU) 运行或执行一个程序,直接控制 I/O 操作。

处理器向 I/O 模块发出命令并等待操作完成。此外,处理器会持续检查 I/O 模块的状态,直到操作完成。

如果处理器比 I/O 模块快,则处理器的时间就会被浪费。处理器的模块被认为是慢速模块。

它应用于某些低端微型计算机。它具有单输出和单输入指令。

每条指令仅按编号选择一个 I/O 设备,并且仅按字节传输一个字符。此技术涉及四个寄存器,分别是输出状态和字符寄存器以及输入状态和字符寄存器。

它的缺点是忙等待,这意味着处理器大部分时间都花在等待 I/O 设备准备就绪的紧凑循环中。程序检查或轮询 I/O 硬件组件、设备或项目。

例如 − 处于循环中的计算机鼠标。

它很容易理解。它易于编程。但它速度慢且效率低下。

系统性能严重下降。它不需要初始化堆栈。

由于系统中连接的 I/O 设备数量的增加,系统的吞吐量降低。最好的例子是使用程控 I/O 的 PC 设备高级技术附件 (ATA) 接口。

中断驱动 I/O

它类似于程控驱动 I/O 技术。处理器不会等待 I/O 操作完成。在执行 I/O 操作时,处理器会执行其他任务。

当 I/O 操作完成后,I/O 模块会中断处理器,让处理器知道操作已完成。中断驱动 I/O 模块比程控 I/O 模块更快。

实际上,处理器启动 I/O 设备,并指示它在操作完成时生成并发送中断信号。这是通过在状态寄存器中设置中断启用位来实现的。

此技术要求对写入或读取的每个字符都进行中断。中断正在运行的进程是一项昂贵的操作,因为它需要保存上下文。

它需要额外的硬件,例如直接内存访问 (DMA) 控制器芯片。它快速高效。

如果程序员使用低级编程语言,编码会变得困难。让各个部分协同工作会很困难。这项工作由操作系统开发者(例如微软或硬件制造商)完成。

系统性能得到提升。它需要初始化堆栈。

即使系统中连接的 I/O 设备数量增加,系统的吞吐量也不会受到影响,因为吞吐量与设备数量无关。

例如 − 计算机鼠标触发并向程序发送信号以处理鼠标事件。

中断驱动的 I/O 更好,因为它快速高效。系统性能得到改进和增强。



相关文章



关于我们 | 隐私条款 | 学习路线
返回顶部