While a process is running, it requires data from the hard disk. The hard disk drive is slow compared to the CPU, so the process is blocked until this input request has been serviced. When it receives the data it needs and generates an interrupt to let the scheduler know it can rejoin the queue.