3. Otherwise, a physical I/O must be performed.
he process is removed from the run queue and is placed on the wait queue for the device, and the I/O request is scheduled.
Eventually, the I/O subsystem sends the request to the device driver.
Depending on the operating system, the request is sent via a subroutine call or an in-kernel message.
4. The device driver allocates kernel buffer space to receive the data and schedules the I/O.
Eventually, the driver sends commands to the device controller by writing into the device-control registers.