Device controller- Performs data transfer
The Device Controller works like an interface between a device and a device driver. I/O units (Keyboard, mouse, printer, etc.) typically consist of a mechanical component and an electronic component where electronic component is called the device controller.
Device driver — Processing of I/O request
Device drivers are modules that can be plugged into an OS to handle a particular device or category of similar devices.
Interrupt handler– Extracts information from the controller register and store it in data buffer
Interrupt handlers have a multitude of functions, which vary based on what triggered the interrupt and the speed at which the interrupt handler completes its task. For example, pressing a key on a computer keyboard.
Kernel I/O subsystem–I/O scheduling
Kernel provide many services related to I/O. Several services like scheduling, buffering, caching, spooling, device reservation and error handling.These are provided by the kernel's I/O subsystem and build on the hardware and device driver infrastructure.