Scheduling policy adopted by LINUX
Linux kernel is non-preemptive but processes are preemptive
The set of rules used to determine when and how selecting a new process to run is called scheduling policy
Linux scheduling is based on thetime-sharingtechnique -several processes are allowed to run "concurrently“
CPU time is roughly divided into "slices“
scheduling policy is also based on ranking processes according to their priority
Static priority - assigned by the users to real-time processes and ranges from 1 to 99, and is never changed by the scheduler
Dynamic priority - the sum of the base time quantum (the base priority of the process) and of the number of ticks of CPU time left to the process before its quantum expires in the current epoch.
When the dynamic priority of the currently running process is lower than the process waiting in the run queue.
A process may also be pre-empted when its time quantum expires
The rule of thumb adopted by Linux is: choose a duration as long as possible, while keeping good system response time