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ů
- Na základě účasti jádra
- Jádro se komunikace neučastní, pouze sdílená paměť
- Data proudí přes jádro (minimálně dvakrát kopírována, přes buffer)
- Vnitří struktura dat
- Proudově orientovaná data (datovody) - data tvoří jediný proud (stream)
- Zprávově orientovaná data (datagramy) - data tvoří samostatné zprávy (packet)
- Směrování přenášených dat
- Jednosměrná data - proudí jedním směrem
- Obousměrná data - proudí oběma
- Všesměrové - proudí z jednoho procesu do více procesů
- Dostředné - proudí z více do jednoho procesu
- Přenášený objem dat (přenosová rychlost)
- Malá - jednotky KB/s (fronty zpráv a signály)
- Střední - až desítky MB/s (roury, sockety)
- Velká - až GB/s (sdílená paměť)
- 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:
- 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).
- Pojmenované roury
- viditelné, mají jméno a umístění.
- jakýkoliv proces má přístup.
- Nepojmenované (anonymní) roury
Socket
- Síťové komunikační prostředky.
- Nástavba protokolu TCP/IP.
- Dva typy spojení:
- Datagramové - zprávové. (UDP)
- Proudové - obousměrný datovod, obdobné rouře. (TCP)
- Socket je určen pěticí udajů:
- Protokol - TCP nebo UDP
- Adresa serveru - IP adresa a Port
- Adresa klienta - IP adresa a Port
- Navazování spojení
- Otevření půlsocketu na serveru.
- Klient vyšle požadavek na navázání spojení.
- 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.