Međuprocesna komunikacija (IPC) u OS-u
⚡ Pametni sažetak
Međuprocesna komunikacija (IPC) je skup mehanizama operacijskog sustava koji omogućuju procesima i nitima razmjenu podataka, koordinaciju aktivnosti i sinkronizaciju radnji, bez obzira izvode li se na jednom računalu ili na nekoliko strojeva povezanih mrežom.
Što je međuprocesna komunikacija?
Međuprocesna komunikacija (IPC) koristi se za razmjenu podataka između više niti u jednom ili više procesa ili programa. Procesi se mogu izvoditi na jednom računalu ili na više računala povezanih mrežom. Puni oblik IPC-a je međuprocesna komunikacija.
To je skup programskih sučelja koja programeru omogućuju koordinaciju aktivnosti između različitih programskih procesa, koji se mogu istovremeno izvoditi u operativnom sustavu. To omogućuje jednom programu da istovremeno obrađuje mnogo korisničkih zahtjeva.
Budući da svaki korisnički zahtjev može rezultirati pokretanjem više procesa u operativnom sustavu, ti procesi možda trebaju međusobno komunicirati. Svaki IPC pristup ima svoje prednosti i ograničenja, pa nije neobično da jedan program koristi nekoliko IPC metoda.
Pristupi međuprocesnoj komunikaciji
Evo nekoliko važnih metoda za komunikaciju između procesa:
Pristupi međuprocesnoj komunikaciji
Cijevi
Cijev se široko koristi za komunikaciju između dva povezana procesa. Ovo je poludupleksna metoda, tako da prvi proces komunicira s drugim procesom. Međutim, za postizanje potpuno dupleksne komunikacije potrebna je još jedna cijev.
Prijenos poruka
To je mehanizam za komunikaciju i sinkronizaciju procesa. Korištenjem prijenosa poruka, procesi međusobno komuniciraju bez pribjegavanja zajedničkim varijablama.
IPC mehanizam omogućuje dvije operacije:
- Pošalji (poruku) — veličina poruke može biti fiksna ili promjenjiva
- Primi (poruku)
Redovi poruka
Red poruka je povezani popis poruka pohranjenih unutar zrno. Identificira se identifikatorom reda poruka. Ova metoda nudi komunikaciju između jednog ili više procesa s full-duplex kapacitetom.
Izravna komunikacija
U ovoj vrsti međuprocesne komunikacije, procesi se moraju eksplicitno imenovati. U ovoj metodi, veza se uspostavlja između jednog para komunicirajućih procesa, a između svakog para postoji samo jedna veza.
Neizravna komunikacija
Neizravna komunikacija uspostavlja se samo kada procesi dijele zajednički poštanski sandučić. Svaki par procesa može dijeliti nekoliko komunikacijskih veza, a jedna veza može komunicirati s mnogim procesima. Veza može biti dvosmjerna ili jednosmjerna.
Zajedničko sjećanje
Dijeljena memorija je područje memorije koje dijele dva ili više procesa. Ova memorija mora biti zaštićena od istovremenog pristupa sinkronizacijom procesa koji je koriste.
FIFO
FIFO se koristi za komunikaciju između dva nepovezana procesa. To je metoda punog dupleksa, što znači da prvi proces može komunicirati s drugim procesom, a može se dogoditi i obrnuto.
Zašto IPC?
Evo razloga za korištenje protokola za međuprocesnu komunikaciju za dijeljenje informacija:
- Pomaže ubrzati modularnost.
- Računalno ubrzanje.
- Razdvajanje privilegija.
- Pogodnost.
- Pomaže procesima i operativnom sustavu da komuniciraju i sinkroniziraju svoje radnje.
Izrazi koji se koriste u IPC-u
Slijedi nekoliko važnih pojmova koji se koriste u IPC-u:
Semaphores: Semafor je mehanizam signalizacije. Ova metoda OS-a dopušta ili onemogućuje pristup resursu, ovisno o tome kako je postavljen.
Signals: Signal je metoda komunikacije između više procesa putem signalizacije. Izvorni proces šalje signal, koji se prepoznaje po broju, a odredišni proces ga obrađuje.
Prijedlog za čitanje: Što je Semaphore? Binarno, brojanje vrsta s primjerom
Što je kao FIFOS i za razliku od FIFOS-a
Sljedeća tablica uspoređuje slične FIFO-e i različite FIFO-e:
| Kao FIFOS | Za razliku od FIFOS-a |
|---|---|
| Slijedi FIFO metodu. | Koristi metodu za izvlačenje određenih hitnih poruka prije nego što stignu na čelo. |
| FIFO postoji neovisno od procesa slanja i primanja. | Uvijek spreman, tako da ga nije potrebno otvarati ili zatvarati. |
| Omogućuje prijenos podataka između nepovezanih procesa. | Nema problema sa sinkronizacijom između otvaranja i zatvaranja. |


