Jump to content

O(n) scheduler

From Wikipedia, the free encyclopedia

This is the current revision of this page, as edited by DrowssapSMM (talk | contribs) at 12:22, 27 February 2024 (Adding local short description: "Historical scheduler used in the Linux 2.4 kernel", overriding Wikidata description "historical scheduler used in the Linux 2.4 kernel"). The present address (URL) is a permanent link to this version.

(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)
Location of the "O(n) scheduler" (a process scheduler) in a simplified structure of the Linux kernel.

The O(n) scheduler[1] is the scheduler used in the Linux kernel 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 current Completely Fair Scheduler (CFS).

Algorithm

[edit]

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

[edit]

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

Disadvantages

[edit]

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

[edit]

References

[edit]