Komunikace mezi procesy
Z MiS
(Rozdíly mezi verzemi)
m (Přidána kategorie Procesy) |
m (→Roura (pipe): Oprava překlepů) |
||
Řádka 10: | Řádka 10: | ||
* Diskový prostor je pro všechny procesy společný, mohou tedy předávat data prostřednictvím souborů. | * Diskový prostor je pro všechny procesy společný, mohou tedy předávat data prostřednictvím souborů. | ||
== Roura (pipe) == | == Roura (pipe) == | ||
− | * „Roura“ je | + | * „Roura“ je speciální virtuální „soubor“ určený jen pro komunikaci mezi procesy. (Viz heslo [[Vstup a výstup procesů, přesměrování]]) |
* Pokud zpracovávající proces nestíhá, je generující proces pozastaven (BLOCKED). | * Pokud zpracovávající proces nestíhá, je generující proces pozastaven (BLOCKED). | ||
+ | |||
== Síťové rozhraní (socket) == | == Síťové rozhraní (socket) == | ||
* Procesy mohou komunikovat prostřednictvím místní smyčky (localhost, 127.0.0.1). | * Procesy mohou komunikovat prostřednictvím místní smyčky (localhost, 127.0.0.1). |
Verze z 24. 10. 2013, 06:07
Každý proces má pocit, že je jediným běžícím procesem. Procesy se navzájem nevidí. Jak si tedy mohou vyměňovat data?
Vlákna stejného procesu mají společný datový segment (tedy mají přiřazenu stejnou paměť). Jinak má ale každý proces svůj virtuální paměťový prostor (viz heslo Přístup procesů do paměti).
Obsah |
Soubory
- Diskový prostor je pro všechny procesy společný, mohou tedy předávat data prostřednictvím souborů.
Roura (pipe)
- „Roura“ je speciální virtuální „soubor“ určený jen pro komunikaci mezi procesy. (Viz heslo Vstup a výstup procesů, přesměrování)
- Pokud zpracovávající proces nestíhá, je generující proces pozastaven (BLOCKED).
Síťové rozhraní (socket)
- Procesy mohou komunikovat prostřednictvím místní smyčky (localhost, 127.0.0.1).
- Využíváno například u grafického rozhraní.
- Výhoda: relativně snadný převod na síťovou aplikaci.
Proměnné prostředí
- Proměnné prostředí se dědí z rodičovských procesů na dceřiné.
- Tímto způsobem se často předává informace o nastavení cest k významným adresářům (pro komunikaci prostřednictvím souborů).
- Viz stránka Proměnné prostředí.
Signály
- Speciální mechanismus pro komunikaci mezi operačním systémem a procesy navzájem.
- Může posílat uživatel prostřednictvím příkazu
kill
.
Příklady signálů
- TERM (TERMinate)
- požádá aplikaci o ukončení
- Vysílá „zavírací tlačítko“.
- INT (INTerrupt)
- Násilné ukončení.
- Kombinace „Ctrl-C“.
- KILL
- aplikace je „zabita“
- jediný signál, který se neposílá procesu, zpracuje přímo operační systém.
- NOHUP (NO HangUP)
- Proces neskončí při ukončení rodičovského procesu.
Adresář /proc
- zjištění informací o procesu.