I/O Request

What Does I/O Request Mean?

I/O request packets are kernel mode structures used for communication between the Windows Drive Model and Windows NT device drivers as well as with the Windows operating system. All the data details are passed on to the data structure via the single pointer, instead of following the old convention of transporting many small data arguments. These I/O requests are made to pass through many different processing stages. These stages are determined by the nature of the request, whether it is meant for the target device for a single-layered driver or a multilayered drive.


Techopedia Explains I/O Request

I/O request packets are basically used for communications between the device drivers and the operating system. It allows a particular process to get unblocked and be completely executed.

In the first step, a process is initiated that issues a blocking read on the file descriptor of a previously used file. The code of the operating system or the kernel has a system-call code that works towards checking the accuracy of the parameters. If the buffer cache already has the data, then the data is returned and the request is completed. In the situation that the data is not found in the buffer cache, a physical I/O is performed. This ensures that the process is removed from the run queue and placed in the wait queue. Thereafter, the device driver receives the request through the I/O subsystem. It is up to the device driver then to make space for the incoming data and schedule I/O. The device controller then works on the device hardware to carry out the process of data transfer. The DMA controller manages and operates the transfer of data to the kernel memory. When the transfer is finished, this creates an interrupt which is received by an interrupt handler through the interrupt-vector table. It scans the data for important information and then returns the interrupt. This signal is then received by the device driver, which completes the request and also determines the status of the request. Lastly, it is up to the kernel to remove the process from the wait queue into the ready queue and the data is transferred to the address space. This step unblocks the process. So now, when the process is assigned to the CPU, it resumes work and is completed.


Related Terms

Margaret Rouse

Margaret Rouse is an award-winning technical writer and teacher known for her ability to explain complex technical subjects to a non-technical, business audience. Over the past twenty years her explanations have appeared on TechTarget websites and she's been cited as an authority in articles by the New York Times, Time Magazine, USA Today, ZDNet, PC Magazine and Discovery Magazine.Margaret's idea of a fun day is helping IT and business professionals learn to speak each other’s highly specialized languages. If you have a suggestion for a new definition or how to improve a technical explanation, please email Margaret or contact her…