I/O Structure consists of Programmed I/O, Interrupt driven I/O, DMS, CPU, Memory, External devices, these are all connected with the help of Peripheral I/O Buses and General I/O Buses.
Different types of I/O Present inside the system are shown below −
In the programmed I/O when we write the input then the device should be ready to take the data otherwise the program should wait for some time so that the device or buffer will be free then it can take the input.
Once the input is taken then it will be checked whether the output device or output buffer is free then it will be printed. This process is continued every time in transferring of the data.
To initiate any I / O operation, the CPU first loads the registers to the device controller. Then the device controller checks the contents of the registers to determine what operation to perform.
There are two possibilities if I / O operations want to be executed. These are as follows −
Synchronous I / O − The control is returned to the user process after the I/O process is completed.
Asynchronous I/O − The control is returned to the user process without waiting for the I/O process to finish. Here, I/O process and the user process run simultaneously.
Direct Memory Access (DMA) is a method of handling I / O. Here the device controller directly communicates with memory without CPU involvement.
After setting the resources of I/O devices like buffers, pointers, and counters, the device controller transfers blocks of data directly to storage without CPU intervention.
DMA is generally used for high speed I / O devices.