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.
users
Viz [1]
A7B38UOS Úvod do operačních systémů 05 - Procesy a vlákna - plánování
Běh vlákna v uživatelském režimu nebo režimu jádra
Viz [1]
A7B38UOS Úvod do operačních systémů 05 - Procesy a vlákna - plánování
Plánování procesů a vláken
Off-line plánování:předpoklady
•
všechny procesy jsou k dispozici od začátku, jejich počet se nemění
•
o všech procesech je známo jak dlouho poběží
Výsledek:•
dávkové zpracování s ohledem na požadované parametry
•
běh procesů je optimální (není nutné procesy přerušovat)
Problém:•
předpoklady jsou nereálné, protože požadované informace zpravidla nejsou
k dispozici
A7B38UOS Úvod do operačních systémů 05 - Procesy a vlákna - plánování
Off-line plánování– základní algoritmy
FCFS – First Come First Served:základní algoritmus dávkového zpracování
•
procesy plánovány v pořadí, v jakém přicházejí
•
procesy běží dokud neskončí
SJF - Shortest Job First:algoritmus minimalizuje průměrnou dobu odezvy
•
kratší úlohy plánovány přednostně
A7B38UOS Úvod do operačních systémů 05 - Procesy a vlákna - plánování
On-line plánování
On-line plánování:
Předpoklady•
procesy nejsou k dispozici od začátku, jejich počet se mění, objevují se
libovolně a neočekávaně
•
doba běhu jednotlivých procesů není známá
Kritéria plánování:•
vázanost na CPU nebo I/O
•
charakter procesů (interaktivní/dávkový)
•
chování procesu v minulosti
•
priorita
A7B38UOS Úvod do operačních systémů 05 - Procesy a vlákna - plánování
On-line plánování – preemptivní/nepreemptivní
K plánování procesoru dochází v následujících situacích:
1. pokud některý běžící proces přejde do stavu blokovaný
2. pokud některý proces skončí
3. pokud je běžící proces převeden do stavu připravený
4. pokud je některý proces převeden ze stavu blokovaný do stavu připravený (u
RTOS)
Pokud 1. a 2. => nepreemptivní plánování
Pokud 1. až 4. => preemptivní plánování:•
potřebuje podporu HW (časovač)
•
možnost měnit plán na základě nových informací
•
context switch
- přepnutí kontextu = přepnutí na jiný proces/vlákno
•
běžící proces je přepnut do stavu READY
Preemptivní plánování umožňuje přerušení procesu/vlákna ve stavu
RUNNING, přesun do stavu READY a přidělení procesoru novému
procesu/vláknu!
A7B38UOS Úvod do operačních systémů 05 - Procesy a vlákna - plánování