Životní cyklus procesu
Z MiS
				
				
				(Rozdíly mezi verzemi)
				
																
				
				
								
				|  (Vytvoření stránky) |  (Doplněn text) | ||
| Řádka 1: | Řádka 1: | ||
| [[Category:VSE]][[Category:Informatika]][[Category:Stránky s obrázky]] | [[Category:VSE]][[Category:Informatika]][[Category:Stránky s obrázky]] | ||
| − | <div class="NaStred"> | + | <div class="NaStred">[[Image:stavy_procesu.png]]</div> | 
| − | [[Image:stavy_procesu.png]] | + | == Stavy procesu == | 
| − | </div> | + | Stavy procesu | 
| + | INIT — Created (new) | ||
| + | *Program byl spuštěn. | ||
| + | *Úkoly: | ||
| + | **Načte z disku kód programu do paměti | ||
| + | **Vyhradí paměť pro data | ||
| + | **Přiřadí PID | ||
| + | **Zapíše do tabulky procesů | ||
| + | **Kopíruje se prostředí rodičovského procesu. | ||
| + | **... | ||
| + | READY — Ready in memory | ||
| + | *Proces je připraven a může být prováděn. | ||
| + | RUNNING | ||
| + | * User running × kernel running | ||
| + | BLOCKED — Sleeping in memory (blocked) | ||
| + | *Proces čeká na data, která dorazí až za dlouho. | ||
| + | *Nebo proces požádal, aby počkal danou dobu (Thread.sleep(200)) | ||
| + | *Příklad: | ||
| + | **Zapisuje do roury a buffer je zaplněn. | ||
| + | Swapped | ||
| + | *Data procesu jsou odloženy na disku, protože není v paměti dost místa. | ||
| + | *Ready swapped (ready-suspended) | ||
| + | *BLOCKED/SWAPPED — Sleeping swapped (blocked-suspended) | ||
| + | Zombie | ||
| + | |||
| + | == Plánovač (scheduler) == | ||
| + | *Součást jádra, zajišťuje přepínání procesů zařizuje součást jádra. | ||
| + | |||
| + | ;Požadavky | ||
| + | *fairness | ||
| + | **všechny procesy by měly dostat přibližně stejný prostor... | ||
| + | **ale priority jsou možné | ||
| + | *efficiency | ||
| + | **omezit čas, který využívá OS sám. | ||
| + | *odezva | ||
| + | **uživatel by měl mít pocit, že všechny procesy reagují hned. | ||
| + | *turnaround | ||
| + | **dávky úloh by měly skončit co nejdříve | ||
| + | *propustnost | ||
| + | **maximalizovat počet dokončených úloh | ||
Verze z 18. 9. 2013, 09:39
Stavy procesu
Stavy procesu INIT — Created (new)
- Program byl spuštěn.
- Úkoly:
- Načte z disku kód programu do paměti
- Vyhradí paměť pro data
- Přiřadí PID
- Zapíše do tabulky procesů
- Kopíruje se prostředí rodičovského procesu.
- ...
 
READY — Ready in memory
- Proces je připraven a může být prováděn.
RUNNING
- User running × kernel running
BLOCKED — Sleeping in memory (blocked)
- Proces čeká na data, která dorazí až za dlouho.
- Nebo proces požádal, aby počkal danou dobu (Thread.sleep(200))
- Příklad:
- Zapisuje do roury a buffer je zaplněn.
 
Swapped
- Data procesu jsou odloženy na disku, protože není v paměti dost místa.
- Ready swapped (ready-suspended)
- BLOCKED/SWAPPED — Sleeping swapped (blocked-suspended)
Zombie
Plánovač (scheduler)
- Součást jádra, zajišťuje přepínání procesů zařizuje součást jádra.
- Požadavky
- fairness
- všechny procesy by měly dostat přibližně stejný prostor...
- ale priority jsou možné
 
- efficiency
- omezit čas, který využívá OS sám.
 
- odezva
- uživatel by měl mít pocit, že všechny procesy reagují hned.
 
- turnaround
- dávky úloh by měly skončit co nejdříve
 
- propustnost
- maximalizovat počet dokončených úloh
 

