Protsessidevaheline side (IPC) OS-is
โก Nutikas kokkuvรตte
Protsessidevaheline kommunikatsioon (inglise keeles inter-process communication ehk IPC) on operatsioonisรผsteemi mehhanismide kogum, mis vรตimaldab protsessidel ja lรตimedel andmeid vahetada, tegevusi koordineerida ja toiminguid sรผnkroonida, olenemata sellest, kas need tรถรถtavad รผhes arvutis vรตi mitme vรตrguga รผhendatud masina vahel.

Mis on protsessidevaheline suhtlus?
Protsessidevaheline side (IPC) IPC-d kasutatakse andmete vahetamiseks mitme lรตime vahel รผhes vรตi mitmes protsessis vรตi programmis. Protsessid vรตivad tรถรถtada รผhes arvutis vรตi mitmes vรตrguga รผhendatud arvutis. IPC tรคielik vorm on protsessidevaheline kommunikatsioon.
See on programmeerimisliideste kogum, mis vรตimaldab programmeerijal koordineerida tegevusi erinevate programmiprotsesside vahel, mis saavad operatsioonisรผsteemis samaaegselt tรถรถtada. See vรตimaldab รผhel programmil samaaegselt kรคsitleda paljusid kasutajapรคringuid.
Kuna iga kasutaja pรคring vรตib kรคivitada operatsioonisรผsteemis mitu protsessi, vรตivad need protsessid pidada omavahel suhtlema. Igal IPC-lรคhenemisviisil on oma eelised ja piirangud, seega pole haruldane, et รผks programm kasutab mitut IPC-meetodit.
Protsessidevahelise suhtluse lรคhenemisviisid
Siin on mรตned olulised protsessidevahelise suhtluse meetodid:
Protsessidevahelise suhtluse lรคhenemisviisid
Torud
Kahe omavahel seotud protsessi vaheliseks suhtluseks kasutatakse laialdaselt toru. See on pooldupleksmeetod, kus esimene protsess suhtleb teise protsessiga. Tรคisduplekskommunikatsiooni saavutamiseks on aga vaja teist toru.
Sรตnumi edastamine
See on mehhanism protsesside suhtlemiseks ja sรผnkroniseerimiseks. Sรตnumite edastamise abil suhtlevad protsessid omavahel ilma jagatud muutujaid kasutamata.
IPC mehhanism pakub kahte toimingut:
- Saada (sรตnum) โ sรตnumi suurus vรตib olla fikseeritud vรตi muutuv
- Vastuvรตtt (sรตnum)
Sรตnumijรคrjekorrad
Sรตnumijรคrjekord on lingitud loend sรตnumitest, mis on salvestatud tuum. See tuvastatakse sรตnumijรคrjekorra identifikaatoriga. See meetod pakub sidet รผhe vรตi mitme tรคisdupleksvรตimsusega protsessi vahel.
Otsene Side
Seda tรผรผpi protsessidevahelises suhtluses peavad protsessid รผksteist selgesรตnaliselt nimetama. Selle meetodi puhul luuakse link kahe omavahel suhtleva protsessi vahel ja iga paari vahel on ainult รผks link.
Kaudne suhtlus
Kaudne side luuakse ainult siis, kui protsessidel on รผhine postkast. Iga protsesside paar saab jagada mitut sideรผhendust ja รผks link saab suhelda paljude protsessidega. Link vรตib olla kahesuunaline vรตi รผhesuunaline.
Jagatud mรคlu
Jagatud mรคlu on mรคlupiirkond, mida jagavad kaks vรตi enam protsessi. Seda mรคlu tuleb samaaegse juurdepรครคsu eest kaitsta, sรผnkroniseerides seda kasutavad protsessid.
FIFO
FIFO-meetodit kasutatakse kahe omavahel mitteseotud protsessi vaheliseks suhtluseks. See on tรคisdupleksmeetod, mis tรคhendab, et esimene protsess saab suhelda teise protsessiga ja ka vastupidine vรตib juhtuda.
Miks IPC?
Siin on pรตhjused, miks teabe jagamiseks kasutatakse protsessidevahelist suhtlusprotokolli:
- See aitab kiirendada modulaarsust.
- Arvutuslik kiirendus.
- Privileegide eraldamine.
- Mugavus.
- See aitab protsessidel ja operatsioonisรผsteemil omavahel suhelda ning oma tegevusi sรผnkroonida.
IPC-s kasutatud terminid
Jรคrgnevalt on toodud mรตned olulised IPC-s kasutatavad terminid:
Semaphores: Semafor on signaalimismehhanism. See operatsioonisรผsteemi meetod kas lubab vรตi keelab juurdepรครคsu ressursile, olenevalt selle seadistusest.
Signals: Signaal on meetod mitme protsessi vaheliseks suhtluseks signaalimise teel. Lรคhteprotsess saadab signaali, mis tuntakse รคra numbri jรคrgi, ja sihtprotsess kรคsitleb seda.
Lugemissoovitus: Mis on Semaphore? Binaarsed loendustรผรผbid koos nรคitega
Mis on nagu FIFOS ja erinevalt FIFOS-ist
Jรคrgmises tabelis vรตrreldakse sarnaseid ja erinevaid FIFO-sid:
| Nagu FIFOS | Erinevalt FIFOS-ist |
|---|---|
| See jรคrgib FIFO meetodit. | See kasutab meetodit teatud kiireloomuliste sรตnumite kรคttesaamiseks enne nende kohalejรตudmist. |
| FIFO eksisteerib sรตltumatult nii saatmis- kui ka vastuvรตtuprotsessidest. | Alati valmis, seega pole vaja seda avada ega sulgeda. |
| Vรตimaldab andmeedastust sรตltumatute protsesside vahel. | Avamise ja sulgemise vahel pole sรผnkroniseerimisprobleeme. |

