En prosess (på engelsk , prosesser ), i databehandling , er et program som for tiden kjøres av en datamaskin . Mer presist kan det defineres som:
En prosess tar en viss tid å fullføre, med en begynnelse og ( noen ganger ) en slutt. En fremgangsmåte kan startes av en bruker gjennom en perifer eller ved en annen prosess: bruker “ applikasjoner ” er sett med prosesser.
I CIM-skjemaet definert av Common Information Model , tildeles basisklassen CIM_Process IT-prosesser. Avhengig av operativsystem, kan det avledes Win32_Process i IBMzOS_Process eller CIM_UnixProcess .
En datamaskin utstyrt med et multitasking- operativsystem er i stand til å utføre flere prosesser nesten samtidig. I analogi med telekommunikasjon kalles denne prosessen multiplexing . Hvis det er flere prosessorer, fordeles utførelsen av prosessene likt over disse prosessorene.
Operativsystemet er ansvarlig for å tildele ressursene (minner, prosessortid, innganger / utganger) som er nødvendige for prosessene, og sørge for at driften av en prosess ikke forstyrrer de andres (isolasjon).
Det kan også gi en API for å muliggjøre kommunikasjon mellom prosesser (IPC).
I tillegg til multipleksing av maskinvareressursene, kan systemet kontrollere tilgangen til prosessene til ressursene i henhold til en rettighetsmatrise og også knytte prosessene til brukerne, som er mottakere av et sett med tilgangsrettigheter: en prosess har rettighetene til brukeren som initialiserte den.
En prosess kan stoppe på flere måter:
Når en prosessavstenging ikke er en normal avstengning, kan det være viktig å bli advart. Dette kan gjøres av overvåkningssystemer (også kalt overvåking ).
De fleste systemene skiller mellom prosesser, som a priori er helt isolert fra hverandre, og " lysprosesser " ( tråder på engelsk), som utgjør prosessene (hver prosess har minst en tråd ) og som deler et rom. (og andre ressurser) til felles.
I tilfelle av en prosess som omfatter flere lette prosesser (eller for å bruke det ofte brukte uttrykket flertrådet) er det en egen prosessortilstand (en utførelseskontekst) for hver lettvektsprosess.
De suksessive tilstandene til en prosess er generelt representert av et tilstandsdiagram .
Bruken av tilstandsdiagrammer skyldes at en prosess er sammenhengende, fra utsiden, bare på bestemte tidspunkter for utførelsen, spesielt utenfor de kritiske delene . I praksis observerer vi tilstanden til en prosess ved å kommunisere med den; det gir dermed et svar når det er sammenhengende.
La oss ta et eksempel; enten rekkefølgen av instruksjoner i pseudokode som tilhører et hvilket som helst program:
procédure empiler (v : valeur) compteur := compteur+1 vect[compteur] := vProgrammet som bruker denne funksjonen kan bare observeres før eller etter en samtale til funksjonen empiler()fordi nummercellen i tabellen ikke påvirkes mellom trinnene for tildeling og tildeling og inneholder ... en tilfeldig verdi (et minne er sjelden tomt) . compteurvect[]
Disse statene finnes i de fleste driftssystemer :
Avhengig av operativsystemene, kan disse forskjellige tilstandene også være mulige: