Kanali in sporočila


Kanali

Smisel kanala je, da zagotovi informacijski cevovod med dvema procesoma. Oba procesa potekata asinhrono, in nimata skupnega podatkovnega prostora. Zato mora sistem predvidevati tudi pomnjenje prenašanih podatkov (buffering). Prenašana informacija je normalno posredovana v nekem fiksnem podatkovnem formatu. Ta normalno vsebuje identifikacijske podatke (kot je na primer ime procesa - pošiljatelja). Poleg tega vsebuje še podatke ali pa vsaj kazalec na podatke.

Zelo pogosto so kanali implementirani kot vrste tipa FIFO. Podatek, ki ga posredujemo v kanal, bo prvi, ki ga bomo iz kanala prevzeli. Primer take vrste prikazuje slika.


Sporočila

Vrste s sporočili niso nujno tipa FIFO. Posamezna sporočila namreč lahko imajo tudi različno prednost.

Proces- prejemnik jemlje sporočila z začetka take vrste, Proces- pošiljatelj pa vpisuje sporočila na konec vrste. Ker so to običajno dinamične podatkovne strukture, mora normalno najprej zaprositi operacijski sistem, da mu dodeli prostor za novo sporočilo. Glede na to lahko pride tudi do zasičenja sistema. Take situacije moramo preprečiti, lahko tudi tako, da dobi obdelava pretirano dolgih vrst večjo prednost v računalniškem sistemu.

Tak koncept komunikacije je izvedljiv tudi v porazdeljenem, večprocesorskem okolju.
 

Prenos sporočil in Java