O(n) plánovač

Plánovač O(n) [1]  je plánovač používaný v jádře Linuxu od verze 2.4 do 2.6. Od verze 2.6.0 byl nahrazen plánovačem O(1) a od 2.6.23 CFS.

Algoritmus

Tento plánovač rozděluje čas na „epochy“. V rámci stejné epochy byly procesy prováděny po dobu, která jim byla přidělena. Pokud nějaký proces běžel méně, než je přidělený čas, pak se polovina přiděleného času přičetla k času, který bude procesu přidělen v další „epoše“. Plánovač zváží všechny procesy dostupné pro spuštění a najde proces, pro který by byla hodnota funkce dobroty největší.

Výhody

Tento plánovač fungoval lépe než jeho primitivnější předchůdce, který byl založen na cyklické frontě.

Nevýhody

S nárůstem počtu procesů začíná práce plánovače vyžadovat značné množství času procesoru. Volba další úlohy je spojena s průchodem celého seznamu procesů připravených k provedení, což znamená, že to trvá O (n) času, kde n je počet procesů připravených k provedení. Také nebyl vhodný pro systémy v reálném čase a nemohl být škálován na nejnovější[ kdy? ] vícejádrové procesory.

Poznámky

  1. Krátká historie plánovačů Linuxu na ibm.com