1. Ready → Run : Scheduler dispatch
2. Run → Ready : Interrupt/Preemption
3. Blocked → Ready : I/O or Event completion
4. Ready → Blocked : N/A
5. Run → Blocked : Waiting for completion of an event or I/O
6. Blocked → Run : N/A (Once unblocked thread/process will return to the pool of ready threads/processes and CPU will be assigned as per scheduling i.e will be moved to Run state as per scheduling)