The device schedular carries out all I/O operations
requested by the tasks. It maintains
queues of current and pending requests and schedules
foreground and background control among the
device routines. I/O operations are overlapped,
with computation and operations for different devices
run in parallel; whereas operations for the
same device run sequentially, allowing a high
degree of I/O efficiency.