Device controller: A device controller or an adapter is a chip that is used for controlling a device. This chip is inserted to the PCI expansion slot. The device controller is connected to the actual device by using a connector.
Device driver: Device driver is software which is used for communicating with a device controller. It depends on a particular operating system.
Busy waiting: In this process of input and output, a user program generates a system call. Then, kernel of the operating system translates this user program to procedure call and sends it to a particular driver. After that driver initiates input and output and keeps polling the device to check if it is completed. After the input and output has been done the control is returned to the caller. The only disadvantage of this method is that driver keeps polling the device until it is completed.
By using interrupt: In this process a driver starts a device, and when the use of the device is completed, an interrupt is generated. Then the driver is returned.
Working of interrupt controller:
1) Driver informs controller about the tasks by writing to its device registers. After that, the device is started.
2) After the reading or writing is done, the device controller sends a signal to the interrupt controller.
3) If interrupt controller is free and can accept the interrupt then CPU is informed about it. It also informs the CPU which device has finished input and output.