Inter Process Communication (IPC) käyttöjärjestelmässä
Mitä on prosessien välinen viestintä?
Prosessien välinen viestintä (IPC) käytetään tietojen vaihtamiseen useiden säikeiden välillä yhdessä tai useammassa prosessissa tai ohjelmassa. Prosessit voivat olla käynnissä yhdessä tai useissa tietokoneissa, jotka on kytketty verkkoon. IPC:n täysi muoto on prosessien välinen viestintä.
Se on joukko ohjelmointirajapintoja, joiden avulla ohjelmoija voi koordinoida toimintoja eri ohjelmaprosessien välillä, jotka voivat toimia samanaikaisesti käyttöjärjestelmässä. Tämä sallii tietyn ohjelman käsitellä useita käyttäjien pyyntöjä samanaikaisesti.
Koska jokainen yksittäinen käyttäjän pyyntö voi johtaa useisiin prosesseihin, jotka ovat käynnissä käyttöjärjestelmässä, prosessi saattaa vaatia kommunikointia keskenään. Jokaisella IPC-protokollalla on omat etunsa ja rajoituksensa, joten ei ole epätavallista, että yksittäinen ohjelma käyttää kaikkia IPC-menetelmiä.
Prosessien välisen viestinnän lähestymistavat
Tässä on muutamia tärkeitä menetelmiä prosessien väliseen viestintään:
Putket
Putkea käytetään laajalti viestintään kahden toisiinsa liittyvän prosessin välillä. Tämä on puolidupleksimenetelmä, joten ensimmäinen prosessi kommunikoi toisen prosessin kanssa. Full-duplexin saavuttamiseksi tarvitaan kuitenkin toinen putki.
Viesti kulkee
Se on prosessin mekanismi kommunikoida ja synkronoida. Viestinvälityksen avulla prosessi kommunikoi keskenään turvautumatta jaettuihin muuttujiin.
IPC-mekanismi tarjoaa kaksi toimintoa:
- Lähetä (viesti) - viestin koko kiinteä tai muuttuva
- Vastaanotettu (viesti)
Viestijonot
Viestijono on linkitetty luettelo viesteistä, jotka on tallennettu ydin. Se tunnistetaan viestijonon tunnisteella. Tämä menetelmä tarjoaa tiedonsiirron yhden tai useamman prosessin välillä full-duplex-kapasiteetilla.
Suora viestintä
Tämän tyyppisessä prosessien välisessä viestintäprosessissa tulisi nimetä toisensa selkeästi. Tässä menetelmässä linkki muodostetaan yhden viestintäprosessiparin välille, ja kunkin parin välillä on vain yksi linkki.
Epäsuora viestintä
Epäsuora viestintä muodostuu vain silloin, kun prosessit jakavat yhteisen postilaatikon, jokainen prosessipari jakaa useita viestintälinkkejä. Linkki voi kommunikoida useiden prosessien kanssa. Linkki voi olla kaksisuuntainen tai yksisuuntainen.
Jaettu muisti
Jaettu muisti on kahden tai useamman prosessin jaettu muisti, joka on muodostettu käyttämällä kaikkien prosessien välistä jaettua muistia. Tämän tyyppiset muistit on suojattava toisiltaan synkronoimalla kaikkien prosessien pääsy.
FIFO
Viestintä kahden toisiinsa liittymättömän prosessin välillä. Se on full-duplex-menetelmä, mikä tarkoittaa, että ensimmäinen prosessi voi kommunikoida toisen prosessin kanssa, ja päinvastoin voi myös tapahtua.
Miksi IPC?
Tässä ovat syyt prosessien välisen viestintäprotokollan käyttämiseen tiedon jakamiseen:
- Se auttaa nopeuttamaan modulaarisuutta
- laskennallinen
- Etuoikeuserottelu
- Mukavuus
- Auttaa käyttöjärjestelmiä kommunikoimaan keskenään ja synkronoimaan toimintansa.
IPC:ssä käytetyt termit
Seuraavassa on muutamia tärkeitä IPC:ssä käytettyjä termejä:
Semaphores: Semafori on merkinantomekanismitekniikka. Tämä käyttöjärjestelmämenetelmä joko sallii tai estää pääsyn resurssiin, mikä riippuu siitä, miten se on määritetty.
Signals: Se on menetelmä viestiä useiden prosessien välillä signaloinnin avulla. Lähdeprosessi lähettää signaalin, joka tunnistetaan numerolla, ja kohdeprosessi käsittelee sen.
Lukuehdotus: - Mikä on Semaphore? Binaariset, laskentatyypit esimerkin kanssa
Mikä on kuin FIFOS ja toisin kuin FIFOS
Kuten FIFOS | Toisin kuin FIFOS |
---|---|
Se noudattaa FIFO-menetelmää | Menetelmä tiettyjen kiireellisten viestien hakemiseen ennen kuin ne saapuvat etupuolelle |
FIFO on olemassa riippumatta sekä lähetys- että vastaanottoprosesseista. | Aina valmiina, joten ei tarvitse avata tai sulkea. |
Mahdollistaa tiedonsiirron toisiinsa liittymättömien prosessien välillä. | Avaa ja sulje välillä ei ole synkronointiongelmia. |
Yhteenveto
- Määritelmä: Prosessien välistä viestintää käytetään tietojen vaihtamiseen useiden säikeiden välillä yhdessä tai useammassa prosessissa tai ohjelmassa.
- Putkea käytetään laajalti viestintään kahden toisiinsa liittyvän prosessin välillä.
- Viestinvälitys on prosessi kommunikoida ja synkronoida.
- Viestijono on linkitetty luettelo ytimeen tallennetuista viesteistä
- Suora prosessi on eräänlainen prosessien välinen viestintäprosessi, jonka pitäisi nimetä toisiaan selvästi.
- Epäsuora viestintä muodostuu vain silloin, kun prosessit jakavat yhteisen postilaatikon, jokainen prosessipari jakaa useita viestintälinkkejä.
- Jaettu muisti on kahden tai useamman prosessin jaettu muisti, joka on muodostettu käyttämällä kaikkien prosessien välistä jaettua muistia.
- Prosessien välinen viestintämenetelmä auttaa nopeuttamaan modulaarisuutta.
- Semafori on merkinantomekanismitekniikka.
- Signaling on menetelmä viestiä useiden prosessien välillä signaloinnin avulla.
- Kuten FIFO, seuraa FIFO-menetelmää, kun taas toisin kuin FIFO käyttää menetelmää tiettyjen kiireellisten viestien vetämiseen ennen kuin ne saavuttavat etuosan.