189k views
5 votes
Discuss in details the difference among programmed I/O, Interrupt Driven I/O

and Direct Memory access over the processor

1 Answer

2 votes

Answer:

Programmed I/O, Interrupt Driven I/O, and Direct Memory Access (DMA) are three methods of transferring data between input/output (I/O) devices and the central processing unit (CPU) of a computer system.

Programmed I/O:

In programmed I/O, the CPU executes instructions to transfer data between the I/O device and memory. The CPU continuously polls the I/O device to check if it is ready to send or receive data. This method is simple and easy to implement, but it is also inefficient since the CPU has to wait for the I/O device to be ready before it can perform any other task.

Interrupt Driven I/O:

In interrupt-driven I/O, the CPU sends a command to the I/O device to start the data transfer, and then continues to perform other tasks. When the I/O device has completed the data transfer, it interrupts the CPU to signal that the data is ready. The CPU then stops its current task and processes the interrupt by executing an interrupt service routine (ISR) to transfer the data between the I/O device and memory. This method is more efficient than programmed I/O since the CPU can perform other tasks while waiting for the I/O device to complete the data transfer.

Direct Memory Access (DMA):

In Direct Memory Access (DMA), the I/O device can access the system memory directly without the intervention of the CPU. The I/O device sends a request to the DMA controller to initiate the data transfer, and the DMA controller transfers the data between the I/O device and memory without any involvement of the CPU. The CPU can continue to perform other tasks while the DMA controller performs the data transfer. This method is the most efficient of the three since it frees up the CPU to perform other tasks while the data transfer is being performed.

In summary, the main differences among programmed I/O, interrupt-driven I/O, and DMA are:

Programmed I/O is the simplest method of data transfer, but it is also the least efficient since the CPU has to continuously poll the I/O device to transfer data.

Interrupt-driven I/O is more efficient than programmed I/O since the CPU can perform other tasks while waiting for the I/O device to complete the data transfer.

DMA is the most efficient method of data transfer since it frees up the CPU to perform other tasks while the DMA controller performs the data transfer directly between the I/O device and memory.

User Anjoli
by
6.8k points