E-gradiva > Računalništvo > Operacijski sistemi > a_operacijski > Procesi > Komunikacija

Prijava

Komunikacija

Proces lahko nima nobenih stikov z ostalimi procesi – pravimo, da je neodvisen. V večopravilnem okolje je običajneje, da procesi pri obdelavi podatkov sodelujejo – imenujemo jih sočasni. Med njimi mora biti vzpostavljena komunikacija. Poznamo več načinov komuniciranja med procesi:

Pošiljanje je lahko neposredno (brez vmesnih shranjevanj) ali posredno. V drugem primeru velikokrat govorimo o pošiljanju v poštni nabiralnik (angl. mailbox). Zaželena je zmožnost odgovarjanja. Kot primer lahko vzamemo klic oddaljene procedure (angl. RPC, remote procedure call).

Primer komunikacije pri uporabi skupnega pomnilniškega vmesnika podaja spodnja animacija (online):

Neposredno komuniciranje

Sistemska klica sprejmi in pošlji vedno definirata proces kot cilj ali vir:

To je najbolj osnovna rešitev, ker nima intermediary.

Proces, ki izvaja sprejemanje, mora poznati identitete vseh procesov, ki lahko pošiljajo sporočila. Rešitev ni dobra predvsem za strežnike, saj morajo odgovarjati na zahteve procesov, ki niso obstajali ko je bil strežnik zagnan.

Posredno komuniciranje

Sistemska klica pošlji in prejmi sedaj določata neko vmesno bitnost kot cilj ali vir: "poštni nabiralnik".

Poštni nabiralnik je sistemski objekt, ki ga ustvari jedro na zahtevo uporabniškega procesa.

Različni procesi lahko pošiljajo sporočila v isti "mailbox". Poljuben proces lahko sprejema sporočila neznanih procesov.

Poštni nabiralnik je lahko:

Sinhrono in asinhrono pošiljanje

Pošiljanje sporočil je lahko sinhrono(blokirajoče) ali asinhrono(neblokirajoče). Način delovanja za oba primera podajajo spodnje animacije.

Oddaljeni procesi

Za komuniciranje med oddaljenimi procesi obstajajo različna pravila. Danes se uporabljajo naslednji principi:

Avtor