Samtidighet (informatikk)
Samtidighet er et begrep innenfor informatikken. Det refererer til evnen til å utføre forskjellige deler av et dataprogram, en algoritme eller et problem utenfor rekkefølge eller i en delvis ordnet mengde, uten å påvirke resultatet. Dette tillater parallelle beregninger av utførende enheter, noe som kan forbedre ytelsen i superskalære prosessorer, flerkjerners mikroprosessor og systemer med flerprosessering. I teknisk forstand refererer samtidighet til nedbrytbarheten til et program, en algoritme eller et problem i komponenter som utføres utenfor rekkefølge eller delvis ordnet.[1]
Den canadiske programvareutvikleren Rob Pike (f. 1956) har definert samtidighet som sammensetningen av uavhengige utførende beregninger.[2] Samtidighet er ikke parallell utførelse. Samtidighet handler om å håndtere flere ting samtidig, mens parallell utførelse handler om å utføre flere ting samtidig. Samtidighet handler om struktur, mens parallell utførelse handler om eksekvering. Samtidighet er en måte å strukturere et problem på, slik at problemet kan løses (men ikke nødvendigvis) gjennom parallell eksekvering.[3]
En rekke matematiske modeller er utviklet for generelle samtidige beregninger. Eksempler er Petri nets, process calculi, Parallel random access-machine, actor model og Reo Coordination Language.
Se også
[rediger | rediger kilde]Referanser
[rediger | rediger kilde]- ^ Lamport, Leslie (juli 1978). «Time, Clocks, and the Ordering of Events in a Distributed System» (PDF). Communications of the ACM. 21 (7): 558–565. doi:10.1145/359545.359563.
- ^ «Go Concurrency Patterns». talks.golang.org. Besøkt 8. april 2021.
- ^ «Concurrency is not Parallelism». talks.golang.org. Besøkt 8. april 2021.