what is the difference between blocking and waiting state of process ?
A process is said to be in waiting state when it is queuing in the main memory for its turn to be executed. Whereas, the process enters a blocked state in case of any interrupt or due to unavailability of resources. If it is no more in execution for a long time , it is swapped out of main memory and called back when the requested resource is available.
Important point: A process cannot enter running state from blocked state. The process first has to go to the waiting state and then to running state.