Samtidighet (informatikk)

muligheten for at forskjellige deler av et problem (f.eks. et program eller en algoritme) kan utføres ute av rekkefølge eller bare delvis i rekkefølge uten det påvirker det endelige resultatet

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]

De spisende filosofers problem er et klassisk problem som involverer samtidighet og delte ressurser

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

Referanser rediger

  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.