Paralelní procesy, prostředky pro popis paralelních procesů, vlákna

Z FAV wiki
Přejít na: navigace, hledání

Při pseudoparalelním běhu je v jednu chvíli aktivní pouze jeden proces. Po nějakém čase se OS rozhodne pozastavit běh procesu a spustit běh dalšího. Po dostatečně dlouhém čase všechny procesy vykonají část své činnosti.


Obsah

[editovat] Základní stavy procesů

Následující stavy procesů se vyskytují ve všech víceúlohových systémech:

Stavy-procesu.jpg

Lepší obrázek z přednášek:

Graf-stavu-procesu.png


Precedenční grafy

Abstraktní primitiva fork, join a quit

cobegin

C1 || C2 || … || Cn

coend

Vlákna


[editovat] PCB

= process control block

OS (konkrétně správce procesů) udržuje tabulku nazývanou tabulka procesů

Položky PCB

PCB

Pcb.png

[editovat] Vlákna

Jeden proces se může skládat z jednoho nebo více vláken.

Vlákna v procesu sdílejí adresní prostor, ale mají vlastní čítač instrukcí, obsah registrů, zásobník. Taky mohou mít soukromé lokální proměnné.

Multithreading - více vláken. Proces začíná s jedním vláknem, další si vytváří za běhu.

Režije na vytvoření vlákna a přepnutí kontextu je menší než u procesů.

Vlákna popisujeme pomocí Precedenčních grafů


[editovat] Precedenční graf

Acyklický orientovaný graf, popisuje vztahy mezi procesy.


Precedencni-grafy.png

Lze také zapsat pomocí funkcí:

např: S (p1, S(P(p2, P(S(p3, P(p4,p5)), p6)), P(p7,p8))


Osobní nástroje
Jmenné prostory
Varianty
Akce
Navigace
Nástroje