Klasické problémy meziprocesové komunikace – producent-konzument aj.

Z FAV wiki
Přejít na: navigace, hledání

Meziprocesova komunikace: // tady by to chtělo rozvést a doplnit...


Problem sdilene pameti


Obsah

[editovat] Predavani zprav

Synchronizace - blokující (synchronní) (recieve) / neblokující (asynchronní) (send)

problémy, které nejsou u semaforů ani monitorů, zvláště při komunikaci po síti

lokální komunikace

typické aplikace typu klient - server


[editovat] Volání vzdálených procedur (RPC - Remote Procedure Call)

  1. Klient zavolá spojku klienta, reprezentující vzdálenou proceduru
  2. Spojková procedura argumenty zabalí do zprávy, pošle ji serveru
  3. Spojka serveru zprávu přijme, vezme argumenty a zavolá proceduru
  4. Procedura se vrátí, návrat. hodnotu pošle spojka serveru zpět klientovi
  5. Spojka klienta přijme zprávu obsahující návrat. hodnotu a předá ji volajícímu

dnes nejpoužívanější jazyková konstrukce pro implementaci distribuovaných systémů a programů bez explicitního předávání zpráv


[editovat] Ekvivalenty uvedených primitiv

Lze implementovat semafory pomocí zpráv a zprávy pomocí semaforů

Lze ukázat, že je možné implementovat


[editovat] Bariéry

Bariera.png


[editovat] Producent-konzument

Klasicky se zde sdílená paměť řeší pomocí pole, kde se z jedné strany položky přidávají a z druhé odebírají. Index kam zapisovat/odebírat počítáme modulo velikost pole. Kolizím zabráníme pomocí dvou semaforů, kde jeden obsahuje informaci o počtu plných prvků pole (f) a druhý o počtu prázdných prvků (e).


[editovat] Problém večeřících filosofů

[editovat] Problém čtenářů a písařů


[editovat] Problémy


Osobní nástroje
Jmenné prostory
Varianty
Akce
Navigace
Nástroje