O(n) Scheduler
   HOME

TheInfoList



OR:

The O(n) scheduler is the
scheduler A schedule (, ) or a timetable, as a basic time-management tool, consists of a list of times at which possible tasks, events, or actions are intended to take place, or of a sequence of events in the chronological order in which such things ...
used in the
Linux kernel The Linux kernel is a Free and open-source software, free and open source Unix-like kernel (operating system), kernel that is used in many computer systems worldwide. The kernel was created by Linus Torvalds in 1991 and was soon adopted as the k ...
between versions 2.4 and 2.6. Since version 2.6.0, it has been replaced by the O(1) scheduler and in 2.6.23 by the
Completely Fair Scheduler The Completely Fair Scheduler (CFS) was a process scheduler that was merged into the 2.6.23 (October 2007) release of the Linux Linux kernel, kernel. It was the default scheduler of the tasks of the SCHED_NORMAL class (i.e., tasks that have no re ...
(CFS), which itself was replaced by the current Earliest eligible virtual deadline first (EEVDF) in 6.6.


Algorithm

This scheduler divides processor time into epochs. Within each epoch, every task can execute up to its time slice. If a task does not use all of its time slice, then the scheduler adds half of the remaining time slice to allow it to execute longer in the next epoch.


Advantages

This scheduler was better in comparison to the previously used very simple scheduler based on a circular queue.


Disadvantages

If the number of processes is big, the scheduler may use a notable amount of the processor time itself. Picking the next task to run requires iteration through all currently planned tasks, so the scheduler runs in O(n) time, where n is the number of the planned processes.


See also


References

{{Linux kernel Linux kernel process schedulers