Sdílená paměť: Porovnání verzí
Smazaný obsah Přidaný obsah
m InterWiki, odstranění HTML značek, formulace? |
|||
Řádek 1:
== Hardwarově sdílená paměť==
Pokud mluvíme o [[hardware|hardwaru]], rozumíme pod pojmem '''sdílená paměť''' velkou část [[RAM|paměti]] (RAM - Random Access Memory), do které lze přistupovat z několika [[procesor|procesorů]] (CPU - Central Processing Unit)
Vytvořit systém se sdílenou pamětí je poměrně lehké pokud zajistíme, aby všechny procesory sdílely jednotný pohled na data a komunikace mezi procesory může být tak rychlá jak paměť dovolí.
Nevýhodou systémů se sdílenou pamětí je to, že mnoho procesorů potřebuje rychlý přístup k paměti a tak se raději odkážou na [[Cache|Cache paměť]], což má za následek tyto dvě komplikace:
* spojení mezi procesorem a pamětí se stane těžko průchodné. Počítače se sdílenou pamětí nejsou příliš vyvážené. Většina z nich má pouze deset procesorů.
* spojitost Cache: Kdykoliv je jedna Cache paměť naplněna novými informacemi, mělo by to být využito ostatními procesory. Tato změna se musí projevit u dalších procesorů, ovšem jiné procesory budou pracovat s nespojitými daty. Právě protokoly spojitosti mohou, pokud pracují dobře, poskytovat velmi vysoký výkonost při přístupu několika procesorů ke sdíleným informacím. Na druhou stranu mohou být tyto protokoly někdy přetíženy a zpomalovat tak výkon.
Alternativou pro sdílenou paměť je rozdělení paměti a rozdělení sdílené paměti, ale i toto řešení může způsobit podobné problémy jako použití sdílené paměti.
== Softwarově sdílená paměť==
Pokud mluvíme o [[software|softwaru]], rozumíme pod pojmem '''sdílená paměť''' metodu komunikace mezi [[proces|procesy]] (IPC - Inter-process communication). Příkladem může být výměna dat mezi programy běžícími současně. Jeden z procesů si vytvoří prostor v [[RAM]] paměti, do kterého může druhý proces vstupovat.
Jelikož mohou oba procesy vstupovat do oblasti sdílené paměti jako do běžné paměti, jedná se o velice rychlý způsob komunikace (opak k ostatním mechanismům komunikace mezi procesy, jako jsou např. [[named pipes]], [[Unix socket]] nebo [[CORBA]]). Nutno ovšem dodat, že tento způsob je méně výkonný, což je dáno právě tím že komunikace probíhá právě na jednom počítači, kdežto u ostatních IPC metodách může být ke komunikaci využita [[počítačová síť]].
IPC prostřednictvím sdílené paměti se využívá především v [[Unix|Unixových]] systémech. [[POSIX]] poskytuje standardizované [[API|rozhraní pro programování aplikací]](API - Application Programming Interface) pro využití sdílené paměti (''POSIX Shared Memory''). ▼
▲IPC prostřednictvím sdílené paměti se využívá především v [[Unix|Unixových]] systémech. [[POSIX]] poskytuje standardizované [[API|rozhraní pro programování aplikací]] (API - Application Programming Interface) pro využití sdílené paměti (''POSIX Shared Memory'').
[[en:Shared memory]]
|