Samtidighet (informatikk)

Fra Wikipedia, den frie encyklopedi
De spisende filosofers problem er et klassisk problem som involverer samtidighet og delte ressurser

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]

  1. ^ 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. 
  2. ^ «Go Concurrency Patterns». talks.golang.org. Besøkt 8. april 2021. 
  3. ^ «Concurrency is not Parallelism». talks.golang.org. Besøkt 8. april 2021.