“Distribuovaný systém je soubor nezávislých počítačů (uzlů), které se uživatelům jeví jako jeden jediný systém.”

Princip

  1. Spolupráce: Uzly samy o sobě úkol nezvládnou (nebo by to trvalo dlouho). Musí si práci rozdělit.

  2. Middleware: Aby to fungovalo, existuje softwarová vrstva (nad operačním systémem, ale pod aplikací), která řeší, že data jsou jinde, pády uzlů a formátování zpráv. Bez middlewaru je to jen síť počítačů, ne distribuovaný systém.

  3. Message Passing: Protože nemáme sdílenou paměť, veškerá synchronizace a výměna dat se děje posíláním jedniček a nul po drátě.


Motivace

Proč implementovat distribuovaný systém.

  1. Scaling:
  2. Spolehlivost a dostupnost
  3. Výkon
  4. Vlastní povaha problému:

Hlavní problémy

“Distribuovaný systém je takový systém, kde selhání počítače, o kterém jste ani nevěděli, že existuje, může způsobit nefunkčnost vašeho vlastního počítače.”

[!note] Chceme se obecně vyhnout centralizovaným věcem Tedy globálním hodinám, centralizovaným uzlům, myšlence že všechny uzly mají přístup ke všem informacím

[!important] U návrhu distribuovaného systému by se mělo předejít předpokladům že:


Architektury

Zde definujeme logické uspořádání komponent a jejich role.

client-server

peer-to-peer (P2P)


Komunikace v distribuovaných systémech


Stavovost

V distribuovaných systémech má stavovost zásadní význam, protože stav není soustředěn na jednom místě, ale je rozprostřen mezi více uzly, které spolu komunikují přes síť. To přináší nové problémy, které v lokálním systému vůbec neexistují.


Spolehlivost distribuovaného systému

Spolehlivost distribuovaného systému popisuje, nakolik lze systému důvěřovat, že bude dlouhodobě poskytovat správnou službu navzdory chybám, poruchám a nepředvídatelným podmínkám prostředí.


Synchronizace a koordinace

V distribuovaných systémech chybí sdílená paměť a globální hodiny. To vede k nutnosti explicitní koordinace procesů. Řešíme dva hlavní okruhy problémů:

  1. Synchronizace času: Jak sjednotit pohled na čas (fyzický nebo logický).
  2. Koordinace akcí: Jak zajistit, aby procesy spolupracovaly a nepřekážely si (vyloučení, volba leadera, konsenzus).

Distribuovaná sdílená paměť (DSM)

Distribuovaná sdílená paměť je softwarová vrstva (middleware), která umožňuje procesům na různých uzlech přistupovat k datům tak, jako by byly v jedné společné RAM, přestože ve skutečnosti probíhá pod kapotou posílání zpráv (message passing).


správa prostředků a procesů v distribuovaném systému

Tato sekce řeší, jak efektivně využívat hardware (CPU, paměť) napříč celým systémem.


Masivně distribuované systémy