Hva er kommunikasjon mellom prosesser?
Interprocess kommunikasjon (IPC) er en gruppe teknikker som brukes i dataprogrammering som gjør at forskjellige programvarestykker kan samhandle. IPC blir ofte tilrettelagt av et datamaskinoperativsystem, selv om det finnes alternative metoder. Den nøyaktige formen for denne kommunikasjonen mellom programvare kan variere, alt fra direktemeldinger til et sentralt lager hvor informasjon lagres og hentes. Interprosesskommunikasjon kan gi fordeler som større ytelse, færre datamaskinressurser forbrukt og forbedret sikkerhet.
I programmeringsverdenen snakkes det om programvare i form av en prosess, eller et enkelt stykke kode, som kan kjøres eller utføres på datamaskinens sentrale prosesseringsenhet (CPU). Mange applikasjoner bruker faktisk mer enn en prosess, noe som kan øke ytelsen og stabiliteten. En nettleser med flere åpne sider kan bruke en egen prosess for å laste inn hver side; dette isolerer hver side fra de andre og forhindrer at en dårlig oppført webside fra å krasje hele nettleseren. I dette eksemplet kommuniserer hver prosess som er ansvarlig for å gjengi en webside med en eller flere prosesser som håndterer andre aspekter av nettleseren, for eksempel brukergrensesnittkomponenter.
De fleste datamaskinoperativsystemer gir flere forskjellige mekanismer for kommunikasjon mellom prosesser. Noen andre programvareteknologier tilbyr også støtte for IPC. Dessuten kan IPC brukes enten på en enkelt datamaskin eller over et nettverk. Disse mekanismene kan variere i hvordan de implementeres, men de fleste kan grupperes i noen få kategorier basert på hvordan kommunikasjonen foregår.
I noen tilfeller utveksles meldinger direkte mellom prosesser, ofte på enveis eller asynkron måte. Noen få IPC-metoder som fungerer på denne måten inkluderer signaler, rør og stikkontakter. Interprosesskommunikasjon kan også skje ved bruk av et spesifikt sted der data kan nås med mer enn en prosess. Et eksempel på dette er delt minne, en teknikk der flere prosesser får tilgang til den samme delen av datamaskinens minne for å utveksle informasjon. Metoden en programmerer kan velge, avhenger av hastigheten og volumet for datautveksling som er nødvendig, samt andre hensyn.
Det er mange grunner til at en programmerer kan ønske å benytte interprosesskommunikasjon i programvaren. Å dele opp en stor applikasjon i mange mindre prosesser som kommuniserer via IPC, kan øke ytelsen så vel som sikkerheten. Et program kan starte og avslutte prosesser etter behov i stedet for at alle komponentene kjører samtidig og konsumerer maskinvareressurser. Hvis en del av et program trenger spesiell tilgang til datamaskinens maskinvare eller annen programvare som kjører, kan en eller flere prosesser fungere under en administrator eller "root" -konto mens resten av programmet kjøres som en vanlig bruker.