Sdílená paměť: Porovnání verzí

Z Wikipedie, otevřené encyklopedie
Smazaný obsah Přidaný obsah
ArthurBot (diskuse | příspěvky)
JAnDbot (diskuse | příspěvky)
m Náhrada šablon {{Hlavní článek}} -> {{Viz též}}; kosmetické úpravy
Řádek 2: Řádek 2:


== Meziprocesová komunikace ==
== Meziprocesová komunikace ==
{{Hlavní článek|Meziprocesová komunikace}}
{{Viz též|Meziprocesová komunikace}}
Sdílenou paměť lze použít ke komunikaci mezi [[proces (program)|procesy]] ([[meziprocesová komunikace]], {{Vjazyce|en}} {{Cizojazyčně|en|''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.
Sdílenou paměť lze použít ke komunikaci mezi [[proces (program)|procesy]] ([[meziprocesová komunikace]], {{Vjazyce|en}} {{Cizojazyčně|en|''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ř. [[Pojmenovaná roura|pojmenované roury]], [[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íť]].
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ř. [[Pojmenovaná roura|pojmenované roury]], [[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]]ový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'').


== Paměť sdílená více procesory ==
== Paměť sdílená více procesory ==
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) víceprocesorového počítačového systému.
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]]ů (CPU - Central Processing Unit) víceprocesorového počítačového systému.


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í.
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í.

Verze z 7. 5. 2014, 09:20

Sdílená paměť (anglicky shared memory) je v informatice část operační paměti (tj. RAM), která slouží pro více subjektů (procesy, procesory apod.). Sdílená paměť mezi procesy slouží k zajištění vzájemné komunikace (viz meziprocesová komunikace) nebo pro úsporu obsazené paměti (viz sdílené knihovny, deduplikace paměti při virtualizaci). O sdílené paměti lze hovořit i z hlediska hardware, kdy společnou operační paměť sdílí více procesorů (viz SMP).

Meziprocesová komunikace

Související informace naleznete také v článku Meziprocesová komunikace.

Sdílenou paměť lze použít ke komunikaci mezi procesy (meziprocesová komunikace, anglicky 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ř. pojmenované roury, 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 Unixových systémech. POSIX poskytuje standardizované rozhraní pro programování aplikací (API - Application Programming Interface) pro využití sdílené paměti (POSIX Shared Memory).

Paměť sdílená více procesory

Pokud mluvíme o hardwaru, rozumíme pod pojmem sdílená paměť velkou část paměti (RAM - Random Access Memory), do které lze přistupovat z několika procesorů (CPU - Central Processing Unit) víceprocesorového počítačového systému.

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 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ýkonnost 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.

Literatura

  • KOLÁŘ, Petr. Operační systémy [online]. Liberec: 2005-02-01 [cit. 2008-08-30]. S. 26—33. Dostupné online. 

Externí odkazy