Every process has an absolute priority, and it is represented by
a number. The higher the number, the higher the absolute
priority. On systems of the past, and most systems today, all
processes have absolute priority 0 and this section is
irrelevant. In that case, See Traditional Scheduling. Absolute
priorities were invented to accommodate realtime systems, in
which it is vital that certain processes be able to respond to
external events happening in real time, which means they cannot
wait around while some other process that wants to, but doesn't
need to run occupies the CPU. When two processes are in
contention to use the CPU at any instant, the one with the
higher absolute priority always gets it. This is true even if
the process with the lower priority is already using the CPU
(i.e., the scheduling is preemptive). Of course, we're only
talking about processes that are running or “ready to run,”
which means they are ready to execute instructions right now.
When a process blocks to wait for something like I