What is CPU scheduling?
The operating systems today allow multitasking, meaning that the respective system is able to run several processes at the same time, using the same main resource. The process is called multiplexing, and it is based on Operating Systems that can allot the same resources to several tasks. As the respective tasks need to have a certain priority and a certain percentage of resources allotted. CPU scheduling is the procedure that makes sure that the resources are allotted effectively, and that the programs work at their maximum capacity, as long as this is possible.
The scheduling can be based on several concepts:
LIFO – last in, first out – this means that the last process in the list is the first one executed
FIFO – first in, first out – meaning that the processes are executed in the order received by the scheduling system
In reality, the modern scheduling devices are able to combine those concepts, and they are executed considering their priority. For example, a system process has priority in front of a simple software, unless otherwise specified by the user. Those modern systems allow the user to define priorities, and to execute the tasks in the order that suits his needs best, which is a good idea, considering that modern machines could run hundreds of tasks at the same time, and the scheduling system cannot anticipate the priorities needed by the user.