Den här artikeln behöver källhänvisningar för att kunna verifieras. (2022-12) Åtgärda genom att lägga till pålitliga källor (gärna som fotnoter). Uppgifter utan källhänvisning kan ifrågasättas och tas bort utan att det behöver diskuteras på diskussionssidan. |
En process eller programprocess är i enkla termer ett program, eller en instans av ett program, under körning. Moderna operativsystem klarar multikörning, det vill säga flera programprocesser samtidigt. Det förekommer även att ett program består av flera samtidiga processer, som antingen körs på flera datorer i ett distribuerat system, eller på samma maskin genom multikörning.
För att beskriva processen behövs den instruktionsmängd som används (programmet), det inre tillståndet (data) samt delar av omvärldens tillstånd. Till processen hör grundläggande data som var i koden som exekvering sker för tillfället och vilka rättigheter processen har i operativsystemet.
Processen var länge det grundläggande elementet inom operativsystemsteori. Det var hur processer skulle behandlas som definierade hur operativsystemet skulle utformas. Processen var då en sekvens av operationer. Senare har processen alltmer fått ge vika för tråden som grundläggande element, och som sekvens av operationer. En programprocess i ett multitrådat program består av flera samtidiga trådar. Trådar är inte skyddade från varandra på samma sätt som processer, utan delar gemensamt arbetsminne. Det går snabbare att starta och växla mellan trådar än processer.
En process utgörs i många fall av en enda tråd, men i och med multitrådningens genombrott blev det vanligt med program uppbyggda så att de kunde köras i flera avsnitt av programkoden oberoende av varandra. Exempelvis kan en grafikapplikation ha en tråd som utför en tidskrävande operation på en bild, medan en annan tråd hanterar användarens interaktion med programmet utan att bakgrundsoperationen behöver avbrytas eller hänsyn tas till användaren i bakgrundsoperationens kod.
Flera trådar i samma process kan köras sant parallellt, och inte bara virtuellt samtidigt, i multiprocessorsystem och processorer med hårdvarustöd för flera trådar, till exempel flera kärnor. Multitrådning är mycket viktig i moderna operativsystem och programkonstruktion. I moderna operativsystem är det trådar som schemaläggs, inte processer. Allt extremare varianter av trådning har också dykt upp, se exempelvis hypertrådning.