05 - Procesy a vlákna - plánování
Níže je uveden pouze náhled materiálu. Kliknutím na tlačítko 'Stáhnout soubor' stáhnete kompletní formátovaný materiál ve formátu PDF.
Problémy při prioritním plánování:
• Stárnutí, též vyhladovění (starvation) – procesy s nejnižší prioritou se neprovedou
Řešení:
obsluha procesů s nižší prioritou je zajištěna tak, že procesům s vyšší prioritou,
kterým je přidělován procesor, se priorita postupně snižuje o 1. Jakmile priority
procesů klesnou na úroveň procesů s nižší prioritou, bude procesor přidělen i
těmto procesům.
• Inverze priorit – situace kdy proces s nízkou prioritou zablokuje proces s vysokou
prioritou. Nepřípustné u RTOS!
Např. proces s nízkou prioritou vstoupí do kritické sekce, pak je plánovačem
odstaven od CPU. Následně je spuštěn proces s vysokou prioritou, který
potřebuje vstoupit do stejné kritické sekce, ale nemůže, protože je blokována. Po
určité době je znovu zpracován proces s nízkou prioritou a kritická sekce je
zpřístupněna ostatním procesům, nicméně proces s vysokou prioritou bude
ukončen později než proces s nízkou.
A7B38UOS Úvod do operačních systémů 05 - Procesy a vlákna - plánování
On-line plánování – základní algoritmy 5
Plánování pomocí prioritních tříd:• procesy se stejnou prioritou seskupeny do tříd
• plánovač používá prioritní plánování mezi prioritními třídami
• v rámci každé třídy se používá RR plánování.
A7B38UOS Úvod do operačních systémů 05 - Procesy a vlákna - plánování
On-line plánování – další možnosti
Existuje řada dalších plánovacích algoritmů a strategií.
Plánování pro více procesorů
• každý procesor má vlastní „ready queue“
• vyvažování zátěže, aj.
Plánování pro real-time systémy (RTOS)
• aplikace řízené událostmi
• běh omezen reálným časem dokončení = deadline
• hard real-time / soft real-time
Tyto problémy budou zmíněny v dalších přednáškách.
A7B38UOS Úvod do operačních systémů 05 - Procesy a vlákna - plánování
Příklad - Windows XP
Prioritní preemptivní multitasking, plánování pomocí prioritních tříd
Úroveň priority vlákna je dána:• Třídou priority procesu: idle (úroveň priority=4), normal (8), high (13), real-time (24)
• Relativní prioritou vlákna (viz 1. sloupec tabulky a následující strana)
Viz [2]
A7B38UOS Úvod do operačních systémů 05 - Procesy a vlákna - plánování