relates to the process state diagram
* new process is put into ==ready queue== and waits until selected for execution or dispatched.
* when CPU has been allocated to the process, process leaves ==ready queue== and is in running state
* in running state the process can
* process issues I/O request and be put into ==device queue==, waiting state
* process creates new child process and waits for child to terminate, waiting state
* process is forcibly removed from CPU due to interrupt, waits for inturrpt to finish and moves straight into ==ready queue==, ready state
* after waiting state, process returns back to ==ready queue==, ready state
* cycle between \[ready, running, waiting\]
* process can repeat cycle until it terminates. when it terminates it is removed from all queues and PCB and resources are deallocated meaning PCB no longer exists, terminated state