Mis on protsessidevaheline suhtlus?

Interprocess communication (IPC) on arvutiprogrammeerimisel kasutatav tehnikate rühm, mis võimaldab erinevatel tarkvara osadel omavahel suhelda. STK-d hõlbustab sageli arvuti operatsioonisüsteem, kuigi on olemas ka alternatiivsed meetodid. Tarkvaravahelise suhtluse täpne vorm võib varieeruda, ulatudes otsesõnumitest kuni keskdepositooriumini, kus teavet salvestatakse ja hangitakse. Protsessidevaheline suhtlus võib pakkuda selliseid eeliseid nagu suurem jõudlus, vähem kulutatud arvutiressursse ja suurem turvalisus.

Programmeerimismaailmas räägitakse tarkvarast protsessist ehk ühest kooditükist, mida saab käivitada või käivitada arvuti keskprotsessoris (CPU). Paljud rakendused kasutavad tegelikult rohkem kui ühte protsessi, mis võib suurendada jõudlust ja stabiilsust. Mitme avatud leheküljega veebibrauser võib kasutada iga lehe laadimiseks eraldi protsessi; see isoleerib iga lehe teistest ja hoiab ära halva käitumisega veebilehe kogu brauseri kokkujooksmise. Selles näites suhtleb iga veebilehe renderdamise eest vastutav protsess ühe või mitme protsessiga, mis tegelevad brauseri muude aspektidega, näiteks kasutajaliidese komponentidega.

Enamik arvutite operatsioonisüsteeme pakub protsessidevaheliseks suhtluseks mitmeid erinevaid mehhanisme. Mõned muud tarkvaratehnoloogiad pakuvad ka IPC-d tuge. Lisaks saab IPC-d kasutada kas ühes arvutis või üle võrgu. Nende mehhanismide rakendamine võib olla erinev, kuid enamiku saab rühmitada mõnesse kategooriasse, lähtudes sellest, kuidas suhtlus toimub.

Mõnel juhul vahetatakse sõnumeid otse protsesside vahel, sageli ühesuunaliselt või asünkroonselt. Mõned sel viisil töötavad IPC-meetodid hõlmavad signaale, torusid ja pistikupesasid. Protsessidevaheline suhtlus võib toimuda ka konkreetse asukoha kasutamise kaudu, kus andmetele pääseb juurde rohkem kui üks protsess. Üks näide sellest on ühismälu, tehnika, mille puhul mitu protsessi pääsevad teabe vahetamiseks juurde arvuti mälu samale osale. Meetod, mille programmeerija võib valida, sõltub vajaliku andmevahetuse kiirusest ja mahust ning muudest kaalutlustest.

On palju põhjuseid, miks programmeerija võib soovida oma tarkvara loomisel protsessidevahelist suhtlust kasutada. Suure rakenduse jagamine paljudeks väiksemateks protsessideks, mis suhtlevad IPC kaudu, võib suurendada nii jõudlust kui ka turvalisust. Programm saab käivitada ja lõpetada protsesse vastavalt vajadusele, selle asemel, et kõik komponendid töötaksid korraga ja tarbiksid riistvararessursse. Kui osa programmist vajab spetsiaalset juurdepääsu arvuti riistvarale või muule töötavale tarkvarale, võib üks või mitu protsessi töötada administraatori või juurkonto all, samal ajal kui ülejäänud programm töötab tavakasutajana.