Kas yra tarpprocesinė komunikacija?

Tarpprocesinis ryšys (IPC) yra kompiuterių programavimo metodų, leidžiančių sąveikauti įvairioms programinės įrangos dalims, grupė. IPC dažnai palengvina kompiuterio operacinė sistema, nors yra ir alternatyvių metodų. Tiksli šio ryšio tarp programinės įrangos forma gali skirtis – nuo ​​tiesioginių pranešimų iki centrinio saugyklos, kurioje saugoma ir gaunama informacija. Ryšys tarp procesų gali suteikti tokių pranašumų kaip didesnis našumas, sunaudojama mažiau kompiuterio išteklių ir padidintas saugumas.

Programavimo pasaulyje apie programinę įrangą kalbama kaip apie procesą arba atskirą kodo dalį, kurią galima paleisti arba vykdyti kompiuterio centriniame procesoriuje (CPU). Daugelis programų iš tikrųjų naudoja daugiau nei vieną procesą, o tai gali padidinti našumą ir stabilumą. Žiniatinklio naršyklė su keliais atidarytais puslapiais kiekvienam puslapiui įkelti gali naudoti atskirą procesą; tai izoliuoja kiekvieną puslapį nuo kitų ir apsaugo, kad netinkamai veikiantis tinklalapis sugadintų visą naršyklę. Šiame pavyzdyje kiekvienas procesas, atsakingas už tinklalapio pateikimą, palaiko ryšį su vienu ar daugiau procesų, kurie tvarko kitus naršyklės aspektus, pvz., vartotojo sąsajos komponentus.

Daugumoje kompiuterių operacinių sistemų yra keli skirtingi tarpprocesinio ryšio mechanizmai. Kai kurios kitos programinės įrangos technologijos taip pat palaiko IPC. Be to, IPC gali būti naudojamas viename kompiuteryje arba tinkle. Šie mechanizmai gali skirtis atsižvelgiant į tai, kaip jie įgyvendinami, tačiau dauguma jų gali būti suskirstyti į kelias kategorijas, atsižvelgiant į tai, kaip vyksta bendravimas.

Kai kuriais atvejais pranešimais keičiamasi tiesiogiai tarp procesų, dažnai vienpusiu arba asinchroniniu būdu. Kai kurie tokiu būdu veikiantys IPC metodai apima signalus, vamzdžius ir lizdus. Bendravimas tarp procesų taip pat gali vykti naudojant tam tikrą vietą, kur duomenis gali pasiekti daugiau nei vienas procesas. Vienas iš pavyzdžių yra bendroji atmintis – metodas, kai keli procesai pasiekia tą pačią kompiuterio atminties dalį, kad keistųsi informacija. Metodas, kurį programuotojas gali pasirinkti, priklauso nuo reikalingo duomenų mainų greičio ir apimties bei kitų aplinkybių.

Yra daug priežasčių, kodėl programuotojas gali norėti panaudoti tarpprocesinį ryšį kurdamas programinę įrangą. Didelės programos padalijimas į daugybę mažesnių procesų, kurie palaiko ryšį per IPC, gali padidinti našumą ir saugumą. Programa gali pradėti ir užbaigti procesus, jei reikia, o ne visi komponentai, kurie veiktų vienu metu ir sunaudotų aparatinės įrangos išteklius. Jei programos daliai reikia specialios prieigos prie kompiuterio aparatinės įrangos ar kitos veikiančios programinės įrangos, vienas ar keli procesai gali veikti naudojant administratoriaus arba „root“ paskyrą, o likusi programos dalis veikia kaip įprastas vartotojas.