
Using the process state diagram, explain why there is no transition:
- From the READY to WAITING.
- From the WAITING to RUNNING.
In the process state diagram, there is no transition from READY state to WAITING state because when a job is ready to be executed, it is in the READY state and it will be in the RUNNING state once the job that precedes it is already done. However, when there is an I/O request page fault, then and only then will the job be put into queue (WAITING state). In other words, there will be no transition from READY to WAITING for two conditions: (1) if the job is not in RUNNING state; and (2) if there is an I/O request page fault that results in an interruption of the job. The interrupt will be handled by the Interrupt Handler.
When all interrupts have been taken care of, the job is then put into READY state. The job will continue when there will be a signal for the job to continue processing. The transition is from READY state à RUNNING state à WAITING state if there is an I/O request page fault, then back to READY state when the signal is given for the job to continue processing. The job will then continue until it is done (FINISHED state).
Also in the process state diagram, there is no transition from the WAITING state to the RUNNING state. That is because, as shown in the diagram, the job stays in the waiting queue until the signal to continue is given. Once it is ready to execute, and all interrupts have been solved, then the signal for the job to continue processing will be given and the job changes state from WAITING to READY. Once the said job is ready for execution, then it will be put into RUNNING state.
There is no transition from READY state to WAITING state and from WAITING to RUNNING state because the job has to undergo the processes and not just jump from one state to another. In other words, the job cannot skip states but must follow the process.