Životní cyklus procesu
Z MiS
(Rozdíly mezi verzemi)
(→Stavy procesu: Oprava drobných nedostatků a vzhledu) |
(Sladěny názvy stavů BLOCKED s obrázkem.) |
||
(Nejsou zobrazeny 2 mezilehlé verze od 1 uživatele.) | |||
Řádka 1: | Řádka 1: | ||
− | [[Category:VSE]][[Category:Informatika]][[Category:Stránky s obrázky]] | + | [[Category:VSE]][[Category:Informatika]][[Category:Stránky s obrázky]][[Category:Procesy]] |
<div class="NaStred">[[Image:stavy_procesu.png]]</div> | <div class="NaStred">[[Image:stavy_procesu.png]]</div> | ||
+ | |||
== Stavy procesu == | == Stavy procesu == | ||
+ | |||
INIT — Created (new) | INIT — Created (new) | ||
*Program byl spuštěn, vytváří se proces. | *Program byl spuštěn, vytváří se proces. | ||
Řádka 11: | Řádka 13: | ||
**Kopíruje se prostředí rodičovského procesu. | **Kopíruje se prostředí rodičovského procesu. | ||
**... | **... | ||
+ | |||
READY — Ready in memory | READY — Ready in memory | ||
*Proces je připraven a může být prováděn. | *Proces je připraven a může být prováděn. | ||
+ | |||
RUNNING | RUNNING | ||
* User running × kernel running | * User running × kernel running | ||
− | BLOCKED — Sleeping in memory (blocked) | + | |
+ | SLEEP/WAIT (někdy také BLOCKED) — Sleeping in memory (blocked) | ||
*Proces čeká na data, která dorazí až za dlouho. | *Proces čeká na data, která dorazí až za dlouho. | ||
*Nebo proces požádal, aby počkal danou dobu (Thread.sleep(200)) | *Nebo proces požádal, aby počkal danou dobu (Thread.sleep(200)) | ||
*Příklad: | *Příklad: | ||
**Zapisuje do roury a buffer je zaplněn. | **Zapisuje do roury a buffer je zaplněn. | ||
+ | |||
Odkládání procesů (Swapping) | Odkládání procesů (Swapping) | ||
* Data procesu jsou odloženy na disku, protože není v paměti dost místa. | * Data procesu jsou odloženy na disku, protože není v paměti dost místa. | ||
* Odkládat lze pouze data procesů, které neběží (jsou ve stavech READY nebo BLOCKED) | * Odkládat lze pouze data procesů, které neběží (jsou ve stavech READY nebo BLOCKED) | ||
− | *READY | + | *READY-SWAP (ready-suspended) |
− | * | + | *SLEEP/WAIT-SWAP — Sleeping swapped (blocked-suspended) |
ZOMBIE | ZOMBIE | ||
* Proces skončil svoji činnost a probíhá uvolňování paměti atd. | * Proces skončil svoji činnost a probíhá uvolňování paměti atd. | ||
− | + | Viz také: [[Plánování procesů | Plánovač procesů, přepínání procesů.]] | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + |
Aktuální verze z 13. 10. 2020, 13:16
Stavy procesu
INIT — Created (new)
- Program byl spuštěn, vytváří se proces.
- Ú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
SLEEP/WAIT (někdy také 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.
Odkládání procesů (Swapping)
- Data procesu jsou odloženy na disku, protože není v paměti dost místa.
- Odkládat lze pouze data procesů, které neběží (jsou ve stavech READY nebo BLOCKED)
- READY-SWAP (ready-suspended)
- SLEEP/WAIT-SWAP — Sleeping swapped (blocked-suspended)
ZOMBIE
- Proces skončil svoji činnost a probíhá uvolňování paměti atd.
Viz také: Plánovač procesů, přepínání procesů.