Proces
Z MiS
(Rozdíly mezi verzemi)
(Vytvoření stránky.) |
(Přidáno UID a GID.) |
||
Řádka 11: | Řádka 11: | ||
== Jaké data zahrnujeme? == | == Jaké data zahrnujeme? == | ||
* Identifikátor procesu (PID) číslo, pod kterým OS s procesem pracuje. | * Identifikátor procesu (PID) číslo, pod kterým OS s procesem pracuje. | ||
− | * Kód programu, načtený v paměti | + | * UID a GID uživatele a skupiny, s jejímiž právy proces běží. |
+ | * Kód programu, načtený v paměti. | ||
** Instrukce, které se mají provést. Načteme je z binárního souboru programu (na Windows ze souboru <code>.exe</code>) | ** Instrukce, které se mají provést. Načteme je z binárního souboru programu (na Windows ze souboru <code>.exe</code>) | ||
* Data, uložená v paměti | * Data, uložená v paměti |
Verze z 21. 9. 2018, 07:09
Obsah |
Co je proces?
- Proces v operačním systému reprezentuje stav právě běžícího programu.
- Proces vzniká spuštěním programu a končí v okamžiku, kdy se dokončí všechny instrukce.
- Pokud spustíme jeden program vícekrát, vznikne více procesů. Každá spuštěná instance programu má jiný aktuální stav.
- Každý proces se chová, jako by byl v počítači sám. O ostatních procesech neví a komunikuje s nimi jen přesně specifikovanými prostředky viz Komunikace mezi procesy.
- Procesy běží střídavě. Střídání ale řídí jádro OS (kernel) a proces o střídání neví a nemůže ho ovlivnit.
Jaké data zahrnujeme?
- Identifikátor procesu (PID) číslo, pod kterým OS s procesem pracuje.
- UID a GID uživatele a skupiny, s jejímiž právy proces běží.
- Kód programu, načtený v paměti.
- Instrukce, které se mají provést. Načteme je z binárního souboru programu (na Windows ze souboru
.exe
)
- Instrukce, které se mají provést. Načteme je z binárního souboru programu (na Windows ze souboru
- Data, uložená v paměti
- Aktuální obsah proměnných, které si program vytváří.
- Odkaz na právě prováděnou instrukci v paměti
- Aktuální obsah registrů
Vlákno
- Procesy navzájem nemohou sdílet proměnné (každý má svou přidělenou paměť). To je ale někdy omezující.
- Proces tedy můžeme rozdělit do více vláken (thread), které běží také nezávisle a mají svůj stav, ale sdílí spolu obsah proměnných v paměti.