Differentiate between programmed I/O and interrupt driven I/O.

The differences between programmed I/O and interrupt-driven I/O are fundamental approaches to handling data transfer between the CPU and external devices. Each technique has distinct characteristics that affect system performance and resource utilization.

Programmed I/O

Programmed I/O is the simplest technique for data exchange between external devices and processors. In this method, the CPU directly controls all I/O operations and actively monitors the status of I/O devices.

The processor issues a command to the I/O module and waits continuously for the operation to complete. During this time, the CPU keeps checking the I/O module status in a loop until it detects operation completion.

Programmed I/O Operation Flow CPU I/O Device 1. Issue Command 2. Status Check CPU Waits in Busy Loop 3. Data Transfer Complete

Key Characteristics

  • Busy waiting − CPU wastes time in a tight loop waiting for I/O completion

  • Single instruction − Each instruction transfers only one byte/character

  • Four registers − Input status, input character, output status, output character

  • Polling mechanism − CPU continuously checks device status

Interrupt-Driven I/O

Interrupt-driven I/O allows the CPU to perform other tasks while I/O operations execute. Instead of waiting, the CPU initiates the I/O operation and continues with other work. When the I/O operation completes, the device sends an interrupt signal to notify the CPU.

Interrupt-Driven I/O Operation Flow CPU I/O Device 1. Start I/O 2. CPU Executes Other Tasks I/O Processing 3. Interrupt Signal 4. Handle Interrupt & Data

Key Characteristics

  • Interrupt mechanism − Device notifies CPU when operation is complete

  • Concurrent processing − CPU can execute other tasks during I/O operations

  • Context switching − Requires saving and restoring CPU state during interrupts

  • Hardware support − Needs interrupt controller and additional circuitry

Comparison

Aspect Programmed I/O Interrupt-Driven I/O
CPU Utilization Poor (busy waiting) Efficient (multitasking)
Performance Slow and inefficient Fast and efficient
Programming Complexity Simple to understand More complex (interrupt handlers)
Hardware Requirements Minimal Additional (interrupt controllers)
System Throughput Decreases with more I/O devices Not affected by number of devices
Stack Initialization Not required Required for context switching

Examples

  • Programmed I/O − Early PC ATA interfaces, simple embedded systems with single I/O operations

  • Interrupt-Driven I/O − Modern keyboard/mouse input, network card data reception, disk drive operations

Conclusion

Interrupt-driven I/O is superior to programmed I/O due to better CPU utilization and system performance. While programmed I/O is simpler to implement, interrupt-driven I/O enables true multitasking and scales better with multiple I/O devices, making it the preferred approach in modern computer systems.

Updated on: 2026-03-17T09:01:38+05:30

18K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements