When the jobs moves through the system and makes progress, it changes it’s states from HOLD to FINISH. When the job is being processed by the job manager and the process manager, it is always in one of these 5 states:
When a user submits a job and it accepts the job, the job is put on HOLD and placed in a queue.
A job is in READY state when it’s ready to run and waiting for the CPU.
When a job is in RUNNING state, it is being executed.
When a job is in WAITING state, it means that the job can’t continue until a specified I/O operation is done or a resource is allocated.
When a job is in FINISHED state, it means that the job is done and the output will be returned to the user.
The transition of a job from one to another or from one state to another is done according to some specific algorithms by job scheduler or process scheduler:
- The transition from HOLD to READY is done by the job scheduler according to availability of main memory space and some specific policies.
- The transition from READY to RUNNING is done by the process scheduler (to decide which job will be done first) according to some algorithms (e.g. FCFS).
- The transition from RUNNING back to READY is done by process scheduler according to some criterion (e.g. Priority Interrupt).
- The transition from RUNNING to WAITING is done by process scheduler when some I/O request is encountered in the job itself or some resource allocation is required.
- The transition from WAITING to READY is done by the process scheduler when the requirements needed by the jobs are satisfied (I/O request satisfied).
- The transition from RUNNING to FINISHED is done by the process scheduler in 2 condition:
- (i) When the job is successfully done.
- (ii) When an error occurs and the job is terminated prematurely.
- When a job is FINISHED, another job from the queue enters the state of RUNNING from READY.
Don’t stop now and take your learning to the next level. Learn all the important concepts of Data Structures and Algorithms with the help of the most trusted course: DSA Self Paced. Become industry ready at a student-friendly price.
- Process Scheduler : PCBs and Queueing
- Pass the value from child process to parent process
- Process states and Transitions in a UNIX Process
- Process Table and Process Control Block (PCB)
- Difference between Process Image and Multi Thread Process image
- Completely fair Scheduler (CFS) and Brain Fuck Scheduler (BFS)
- Complementation process in DFA
- Reversal process in DFA
- Union process in DFA
- TCP 3-Way Handshake Process
- Process Synchronization | Set 2
- Concatenation process in DFA
- Progress of a process
- Communication between two process using signals in C
- Difference between Process and Thread
- Formation Of Process from Program
- Get/Set process resource limits in C
- Monitors in Process Synchronization
- Introduction of Process Synchronization
- Introduction of Process Management
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.