When the job scheduler accepts a job, it creates the job’s PCB (Process Control Blocks) and updates it throughout the execution.
These PCBs, and not the jobs, are linked to form the queues and are used to track the respective jobs.
The PCB store all of the data about the job being processed, like it’s progress in the system. This data is needed by the operating system to manage the processing of the job.
As shown above, each queue can be seen as the linked list of PCBs:
- READY queue contains PCBs for ready jobs.
- HOLD queue contains PCBs for the jobs entering the system.
- WAITING queue contains PCBs for the jobs which need some resource allocation or input from the user. Depending upon their reason to be in the WAITING queue, they are linked into several queues. E.g., The PCBs waiting for some input are in a separate queue, while asking for determining the file location of a specific file is in a separate queue.
WAITING queues are managed in a specific order according to some policies.
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 : Job and Process Status
- Completely fair Scheduler (CFS) and Brain Fuck Scheduler (BFS)
- Difference between dispatcher and scheduler
- Deadline scheduler in Operating System
- Generalized Real-time Task Scheduler
- Process states and Transitions in a UNIX Process
- Pass the value from child process to parent process
- Process Table and Process Control Block (PCB)
- Difference between Long-Term and Short-Term Scheduler
- Difference between Long-Term and Medium-Term Scheduler
- Difference between Process Image and Multi Thread Process image
- TCP 3-Way Handshake Process
- Progress of a process
- Process Synchronization | Set 2
- Reversal process in DFA
- Concatenation process in DFA
- Complementation process in DFA
- Union process in DFA
- Difference between Process and Thread
- Get/Set process resource limits in C
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.