Skip to main content

Komunikační prostředky

  • Současné os nabízejí hodně prostředků umožnujících přesun dat mezi procesy.
  • Tyto prostředky se liší rychlostí, způsobem použití, dostupností na jednotlivých platformách.

Klasifikace komunikačních prostředků

  1. Na základě účasti jádra
    1. Jádro se komunikace neučastní, pouze sdílená paměť
    2. Data proudí přes jádro (minimálně dvakrát kopírována, přes buffer)
  2. Vnitří struktura dat
    1. Proudově orientovaná data (datovody) - data tvoří jediný proud (stream)
    2. Zprávově orientovaná data (datagramy) - data tvoří samostatné zprávy (packet)
  3. Směrování přenášených dat
    1. Jednosměrná data - proudí jedním směrem
    2. Obousměrná data - proudí oběma
    3. Všesměrové - proudí z jednoho procesu do více procesů
    4. Dostředné - proudí z více do jednoho procesu
  4. Přenášený objem dat (přenosová rychlost)
    1. Malá - jednotky KB/s (fronty zpráv a signály)
    2. Střední - až desítky MB/s (roury, sockety)
    3. Velká - až GB/s (sdílená paměť)
  5. Transparetnost

Roura (pipe)

  • Klasický komunikační prostředek OS UNIX
  • Jednosměrný datovod, vhodný pro malá a střední data.
  • Obousměrný přenos -> dvě roury
  • Jedná se o kruhovou frontu
  • Dva typy rour:
    1. Nepojmenované (anonymní) roury
      • nemají identifikátor, přístupné pouze prostřednictvím souborového deskriptoru (handler).
      • používat ji může pouze zakladatel roury nebo jeho potomci (procesy vytvořené procesem).
    2. Pojmenované roury
      • viditelné, mají jméno a umístění.
      • jakýkoliv proces má přístup.

Socket

  • Síťové komunikační prostředky.
  • Nástavba protokolu TCP/IP.
  • Dva typy spojení:
    1. Datagramové - zprávové. (UDP)
    2. Proudové - obousměrný datovod, obdobné rouře. (TCP)
  • Socket je určen pěticí udajů:
    1. Protokol - TCP nebo UDP
    2. Adresa serveru - IP adresa a Port
    3. Adresa klienta - IP adresa a Port
  • Navazování spojení
    1. Otevření půlsocketu na serveru.
    2. Klient vyšle požadavek na navázání spojení.
    3. Pokud server naslouchá, vzniká spojení (relace).¨
  • Připojení k serveru z více klientů se řeší pomocí duplikace půlsocketu (každej klient má svůj půlsocket).

Fronta zpráv

  • Zprávově orientovaným komunikačním prostředkem
  • Umožňuje cílenou i všesměrovou výměnu zpráv
  • Omezené velikostí mezi dvěma či více procesy
  • Vysílající proces se blokuje pokud je fronta plná, přijímací proces se blokuje není-li ve frontě žádná použitelná zpráva.
  • Zprávy jsou nezbytné u OS klient-server, ale jsou užívány i v jiných systémech.
  • Je často užívána

Vzdálené volaní procedur

  • Umožňuje volání funkcí v jiném adresovém prostoru, nebo v jiné instanci OS
  • Vzdáleně volaná procedura může přijímat parametry
  • Hodnoty těchto parametrů jsou přeneseny z adresového prostoru volající funkce do adresového prostoru volané funkce a tato funkce může sama hodnotu vracet
  • Jedná se tedy o zprávově orientovaný obousměrný komunikační prostředek Výhody
  • Předávání dat do funkcí
  • Automatické řazení dat Nevýhody
  • Identifikace vzdálené funkce se musí dít na základě poskytované služby (Adresa, port).
    • Nikoliv, jen prostřednictvím adresy funkce.
  • Ošetřování chybových vztahů.
    • Může dojít k chybě během přenosu parametrů a návratové hodnoty.
  • Přerušení spojení.
  • Chybná identifikace protistrany.
tip

Jako komunikační kanál se použije socket respektivě jiný vhodný prostředek.