Hledat:

Invia.cz Last minute Tunisko Dovolená v Chorvatsku Pojeďte do Egypta Bulharsko Vydělávejte peníze s INVIA.CZ
 

Synchronizační primitivum

Synchronizační primitiva jsou v operačních systémech prostředky, umožňující zároveň běžícím aplikacím ošetřit současný přístup ke sdíleným prostředkům. Ve smyslu algoritmu se jedná o rozhraní a jeho implementace není důležitá.

Chybné použití synchronizačních primitiv může vést k jejich neúčinnosti (tedy k prostředku stejně mohou přistoupit dva procesy najednou) nebo k deadlocku (vzájemnému zablokování).

Mezi synchronizační primitiva patří zámek a jejich zobecnění semafory, fronty zpráv a monitor.

Zámky a semafory bývají implementovány operačním systémem pomocí atomických operací na sdílené paměti a plánovače. Pro synchronizaci v paralelním programování stačí atomické operace na sdílené paměti (čekají na sebe procesy na různých procesorech a tedy mohou čekat aktivně) a je možné je implementovat i bez pomoci operačního systému.

Fronty zpráv jsou primitivní operací v případě paralelního programování, ale je možné je implementovat v operačním systému i na jednom procesoru.

Monitor je možné realizovat pouze s podporou programovacího jazyka.

Pro uvedená synchronizační primitiva platí, že jsou vzájemně ekvivalentní - tedy že pokud máte k dispozici jedno z nich, můžete s jeho pomocí naimplementovat ty ostatní. S výjimkou zámků to lze navíc dokázat bez aktivního čekání: na implementaci pomocí zámků potřebujete spolupráci scheduleru (možnost uspat program a později ho probudit) nebo aktivně čekat (Stačí jeden „zámkový server“ neustále prohlížející oblasti sdílené paměti a interpretující je jako zprávy. Ostatní procesy pak mohou čekat na zámcích, které vlastní a uvolní právě tehdy, když jim vyřizuje zprávu.) Pro implementaci semaforů pomocí front zpráv procesu potřebujete „semaforový server“ starající se o semafor, ale ten čeká pasivně. Pro fronty pojmenované server nepotřebujete.

[editovat] Viz též


[editovat] Zdroj

 
Tento článek je převzat z české wikipedie - otevřené encyklopedie, originální článek naleznete na adrese: „http://cs.wikipedia.org/wiki/Synchroniza%C4%8Dn%C3%AD_primitivum
Stránka byla naposledy upravena v Stránka byla naposledy editována 2. 7. 2008 v 20:34.
Veškerý text je dostupný za podmínek GNU Free Documentation License (Autorské právo pro podrobnosti).
Další služby: Portál | Katalog | Hledej | Zprávy | Počasí | Kurzy | Práce | Slovník | TV | Online hry | Java hry | SMS | Loga a melodie | Chat | Fórum | Kontakt