Priority scheduling

Priority scheduling algoritmus je v informatice algoritmus, pomocí kterého je v operačním systému plánováno přidělování procesoru jednotlivým spuštěným procesům, které se v rámci multitaskingu na procesoru cyklicky střídají. Algoritmus využívá k rozhodování prioritu jednotlivých procesů.

Základní vlastnosti

Každý proces má přidělenou prioritu a algoritmus se stará o spuštění procesu s největší prioritou. Není žádoucí, aby algoritmus přiděloval procesor jen procesům s vysokou prioritou, ale přiděloval ho i procesům s nižší prioritou (zamezení stárnutí procesů). Obsluha procesů s nižší prioritou je zajištěna tak, že procesům s vyšší prioritou, kterým je právě přidělen procesor, se priorita snižuje o 1 podle tiku hodin. Tak je časem přidělen procesor i procesům s nižší prioritou.

Inverze priorit

Inverze priorit je problém, kdy proces s nízkou prioritou zablokuje proces s vysokou prioritou. Například nastane v situaci, kdy proces s nízkou prioritu vstoupí do kritické sekce, je plánovačem odstaven od CPU a následně je spuštěn proces s vysokou prioritou, který potřebuje vstoupit do stejné kritické sekce, ale nemůže, protože je zamknuta. Po nějaké době je znovu zpracován proces s nízkou prioritou a kritická sekce je znovu zpřístupněna ostatním procesům, ale situace je taková, že proces s vysokou prioritou bude ukončen později než ten s nízkou. To je naprosto nežádoucí pro Operační systém reálného času.

Související články