Process Management
The Processor Manager of a UNIX system kernel handles the allocation of the CPU, process scheduling, and the satisfaction of process requests. To perform these tasks, the kernel maintains several important tables to coordinate the execution of processes and the allocation of devices.
Using a predefined policy, the Process Scheduler selects a process from the READY queue and begins its execution for a given time slice. Remember, as we discussed in Chapter 4, the processes in a time-sharing environment can be in any of five states: HOLD, READY, WAITING, RUNNING, or FINISHED.
The process scheduling algorithm picks the process with the highest priority to be run first. Since one of the values used to compute the priority is accumulated CPU time, any processes that have used a lot of CPU time will get a lower priority than those that have not. The system updates the compute-to-total-time ratio for each job every second. This ratio divides the amount of CPU time that a process has used up by the total time the same process has spent in the system. A result close to 1 would indicate that the process is CPU-bound. If several processes have the same computed priority,