Can any one make a quick interpretation on this for me? especially about the peaks of this graph?
The I/O device (controller) is busy transferring data from the device buffer to the device. It goes from idle to transferring. This is the peak for I/O device. It goes back to idle when the transfer is done, until the next request.
The CPU curve shows a peak when the transfer is done because the CPU is notified by the device (through an interrupt).
The graph obvious show the relation of the CPU states vs [device] output states over time.
The peaks in CPU time are when the CPU is busy doing it´s task or sleeping, depending whether it is doing synchronous or asynchronous writes.
The valleys in the CPU time are when the CPU is notified by an interrupt the device was finished, to proceed with setting up the buffers for the next round.
The peaks in the device are when it is idle waiting for output waiting for I/O requests, and the valleys when the device controller is writing the memory buffers independently of the CPU to the actual device. Often that writing is done via DMA. (Direct Memory Access)