O(n) scheduler [1] este planificatorul utilizat în nucleul Linux din versiunile 2.4 până la 2.6. Începând cu versiunea 2.6.0, acesta a fost înlocuit de O(1) scheduler și din 2.6.23 de CFS.
Acest planificator împarte timpul în „epoci”. În cadrul aceleiași epoci, procesele au fost executate pentru timpul care le-a fost alocat. Dacă un proces rula mai puțin decât timpul alocat, atunci jumătate din timpul alocat a fost adăugat la timpul care va fi alocat procesului în următoarea „epocă”. Planificatorul ia în considerare toate procesele disponibile pentru lansare și găsește procesul pentru care valoarea funcției de bunătate ar fi cea mai mare.
Acest planificator a funcționat mai bine decât predecesorul său mai primitiv, care se baza pe o coadă ciclică.
Odată cu creșterea numărului de procese, munca planificatorului începe să necesite o cantitate semnificativă de timp de procesor. Alegerea sarcinii următoare este asociată cu trecerea întregii liste de procese gata de execuție, ceea ce înseamnă că durează O (n) timp, unde n este numărul de procese gata de execuție. De asemenea, nu era potrivit pentru sistemele în timp real și nu putea fi scalat la cel mai recent[ când? ] procesoare multi-core.
Nucleul Linux | |||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Organizare |
| ||||||||||||||||||||||||||
Tehnic |
| ||||||||||||||||||||||||||
Adopţie |
| ||||||||||||||||||||||||||
|