miniatyr|207x207px|"Ätande filosofer", ett klassiskt problem som involverar samtidighet såväl som delade resurser. Inom datavetenskap hänvisar samtidighet (engelska: concurrency) till förmågan att olika delar eller enheter i ett program, en algoritm eller ett problem kan exekveras i oordning eller i en delvis bestämd ordning utan att resultatet påverkas. Detta gör det möjligt att köra de samtidiga enheterna parallellt, vilket märkbart kan förbättra den övergripande körhastigheten hos system med flera processorer eller flera kärnor.
Historik Som Leslie Lamport (2015) noterade, "Medan samtidig programkörning har studerats i åratal presenterades samtidighet inom datavetenskap i Edsger Dijkstras rapport från 1965 där han introducerade problemet med ömsesidig uteslutning (engelska: mutual exclusion). [...] Under de följande decennierna växte intresset för samtidighet – speciellt för distribuerade system. När man tittar tillbaka på områdets ursprung, är det Edsger Dijkstras centrala roll som sticker ut".
Problem Eftersom beräkningarna i ett samtidigt system kan interagera med varandra under körning, kan antalet möjliga körningssätt i systemet bli riktigt stort, vilket medför att det inte alltid går att säga vad resultatet kommer att bli. Samtidig användning av delade resurser kan vara ett upphov till tidigare nämnd obestämdhet, vilket leder till problem som baklås och resurssvält.
Att designa samtidiga system innebär ofta att man måste hitta tillförlitliga tekniker för att koordinera dess körning, datautväxling, minnesallokering och körningsschema för att minimera responstiden och maximera kapaciteten.
Teori Samtidighetsteori har varit ett aktivt forskningsområde inom teoretisk datavetenskap. Ett av de första förslagen var Carl Adam Petris arbete med petrinät i början på 1960-talet. Sedan dess har många olika formalismer utvecklats i syfte att modellera och diskutera samtidighet. Se även Klient–server Clojure Datorkluster Distributed computing Go (programspråk) Rust (programspråk) Parallelldator Process (datorteknik) Kärve (matematik) Tråd (datavetenskap)
Referenser
Externa länkar Exempel i JavaScript Samtidiga system på The WWW Virtual Library Presentation om samtidiga mönster på scaleconf Kategori:Sidor med ogranskade översättningar Kategori:Datavetenskap Kategori:Operativsystemteknik