Long-term scheduling decides when a process should enter the ready state and start competing for the CPU. It also manages those which are suspended, to acknowledge when they are ready to move to the ready list.
Short-term scheduling decides which of the ready processes should run next on the CPU. Most processes move because of the short term scheduling. Long term rarely runs compared to short term processing.
A non-preemptive scheduling algorithm allows a running process to continue until the process terminates or blocks on a resource.
A preemptive scheduling algorithm may stop the currently running process and choose another process to run. The decision is made whenever:
- A new process enters the ready list.
- A previously blocked or suspended process re-enters the ready list.
- The OS wants to give other processes a chance to run.
The priority of a process (or thread) is a numerical value that indicates the importance of the process relative to other processes. A scheduler uses this value to decide which process to run next.
In long term scheduling, the scheduler often looks at how long it has been waiting/suspended before adding it to the ready list.
Principles of Scheduling was originally found on Access 2 Learn