Samtidighed

begreb i datalogi

Indenfor datalogi er samtidighed muligheden for forskellige dele eller enheder af et computerprogram, algoritme eller problem til at blive udført i uorden eller i delvis rækkefølge, uden at påvirke resultatet. Dette giver mulighed for parallel eksekvering af de samtidige enheder, hvilket væsentligt kan forbedre den samlede hastighed af udførelsen i flerprocessor og flerkerne systemer. I mere tekniske termer refererer samtidighed til nedbrydeligheden af et program, en algoritme eller et problem i rækkefølgeuafhængige eller delvist ordnede komponenter eller beregningsenheder.[1]

De spisende filosoffer er et klassisk problem, der involverer samtidighed og delte resurser.

Ifølge Rob Pike er samtidighed sammensætningen af uafhængigt eksekverende beregninger,[2] og samtidighed er ikke parallelisme: samtidighed handler om at håndtere mange ting på én gang, men parallelisme handler om at gøre mange ting på én gang. Samtidighed handler om struktur, parallelisme handler om udførelse, samtidighed giver en måde at strukturere en løsning på for at løse et problem, der kan (men ikke nødvendigvis) kan paralleliseres.[3]

En række matematiske modeller er blevet udviklet til generel samtidig beregning, herunder Petri-net, proces calculi, parallel tilfældig adgangsmaskinemodel, aktørmodellen og Reo Coordination Language.

Referencer

redigér
  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. S2CID 215822405. Hentet 4. februar 2016.
  2. ^ "Go Concurrency Patterns". talks.golang.org. Hentet 2021-04-08.
  3. ^ "Concurrency is not Parallelism". talks.golang.org. Hentet 2021-04-08.

Yderligere læsning

redigér

Eksterne henvisninger

redigér