Distribuovaný systém: Porovnání verzí

Smazaný obsah Přidaný obsah
m Odstranění linku na rozcestník Procesor s použitím robota - Změněn(y) odkaz(y) na Mikroprocesor
m Robot: oprava odkazu; kosmetické úpravy
Řádek 1:
Distribuovaný systém je takový systém ([[:cs:Software|softwarový]] systém, kolekce [[Mikroprocesor|procesorů]], atd.), ve kterém jsou jeho jednotlivé komponenty propojeny [[:cs:Počítačová_síťPočítačová síť|sítí]]. Tyto komponenty pak mezi sebou komunikují pomocí posílání zpráv. Smyslem distribuovaného systému je spolupráce všech jeho komponentů k dosažení nějakého společného cíle, případně koordinovat používání sdílených zdrojů mezi jednotlivými uživateli a poskytovat jim podporu v podobě komunikačního nástroje. Jednotlivé prvky systému se nazývají uzly.
 
Mezi nejčastější příklady distribuovaného systému, kromě počítačové sítě obecně, je [[:cs:SOA|Service Oriented Architecture]], [[:cs:MMORPG|Massive Multiplayer Online hry]], [[:cs:Peer-to-peer|peer-to-peer aplikace]], nebo specializované vědecké [[:cs:Distribuované_výpočty|distribuované výpočty]], na kterých pracuje nějaká skupina procesorů.
 
Historicky slovo “distribuovaný” v pojmech jako “distribuovaných systém”, “distribuované programování” a “distribuovaných algoritmus” původně odkazovalo na počítačové sítě kde byly jednotlivé stroje fyzicky distribuovány po nějaké geografické oblasti. Dnes se pojem “distribuovaný” používá v širším významu - typicky když máme na mysli autonomní procesy, které běží na jednom počítači a komunikují mezi sebou zasíláním zpráv.<ref name="klimes">
Řádek 8:
| jméno = Cyril
| titul = Distribuované systémy. Texty pro distanční studium.
| url = http://www1.osu.cz/~prochazka/ds/SkriptaKlimes.pdf
| vydavatel = Ostravská univerzita v Ostravě
}}</ref>
 
== Charakteristika ==
[[FileSoubor:Distributed-parallel.svg|thumb|Distributed-parallel]]
Hlavní charakteristikou distribuovaných systémů je absence sdílené paměti (čímž se liší od paralelních systémů) a nepřítomnost centrálního časového mechanismu (hodin). Každý uzel tedy používá svou vlastní paměť (viz obrázek) a události v systému nastávají asynchronně (abstrahovány od explicitního vyjádření času nastávají události nepředvídatelně).  Systém se pak navenek tváří jako jednotný celek (například Internet vidíme jako jednu celistvou síť, to samé u MMORPG hry atd.).
 
Důležitou vlastností systému je zachování jeho funkčnosti při výpadku jednoho nebo několika uzlů – zdroje, resp. úkoly jsou přerozděleny mezi ostatní uzly systému. Výpadek může zhoršit chování systému. Aby se zachovala funkčnost, musí být distribuována i data v několika kopiích.
 
Struktura systému ([[Topologie_sítíTopologie sítí|topologie]], počet uzlů nebo [[latence]]) nemusí (a často není) známa předem (tedy před jeho vytvořením). Tato struktura se také může měnit v čase běhu programu (například počet uzlů se během času často mění).
 
Neméně zajímavou vlastností je to, že každý uzel zná jen část struktury distribuovaného systému (viz například dynamické směrování v Internetu).
Tato vlastnost není podmínkou, u architektury [[master/slave]] obvykle master zná celou síť. Ale její výhodou je, že se (případné) změny nemusí propagovat do celé sítě a systém je odolnější, neobsahuje ''single point of failure'' (viz nejblíž [[fault-tolerant system]]).
 
== Distribuované algoritmy ==
 
Algoritmy použité pro řízení distribuovaného systému nazýváme distribuované algoritmy. Pokud jsou distribuované algoritmy použity speciálně pro výměnu informací mezi množinou kooperujících uzlů a pro řízení jejich komunikace, jsou nazývány [[protokol (informatika)|protokoly]] (protokol transportu dat, protokol zřízení spojované služby apod.).
 
'''Požadavky na algoritmy v distribuovaných systémech:'''