Atomisitet (databehandling)

Den atomicity er en eiendom som brukes i samtidige programmering for å beskrive en operasjon eller sett av driften av et program kjøres helt uten å bli avbrutt før slutten av kurset. En operasjon som verifiserer denne egenskapen er kvalifisert som "  atomisk  ", dette begrepet kommer fra ατομος ( atomos ) som betyr "at man ikke kan dele".

Dette konseptet gjelder for eksempel en del av et program som prosessen eller tråden som styrer det ikke vil overgi monopolet på visse data til en annen prosess i løpet av denne delen. Dette konseptet gjelder også for transaksjoner av databaser .

Vanligvis sammenstilling instruksjoner kan bli tenkt på som atom, men dette er ikke nok til å sikre data konsistens . For å gjøre dette må synkroniseringsmekanismer implementeres. Følgelig og i forlengelse er det mulig å si at en seksjon beskyttet på denne måten, referert til som en kritisk seksjon beskyttet av gjensidig utelukkelse , også er atomisk.

Eksempler på spesielle instruksjoner som må være atomare

Flere instruksjoner som brukes i visse parallelle arkitekturer er atomiske, og brukes til å implementere synkroniseringer eller ikke-blokkerende algoritmer.

Vi bruker ofte Sammenlign-og-bytt , Hent og legg til eller Test-og-sett- instruksjonene, samt par Load-Link / Store-Conditional instruksjoner .

Transaksjonelt minne

Den transaksjons minne er en måte å lage en serie av atom transaksjoner: en transaksjon for å gjøre flere endringer, og mislykkes hvis noen av variablene som brukes ble endret. En slik mekanisme brukes i databaser i form av programvaretransaksjonsminne .


Merknader og referanser

  1. Leksikografiske og etymologiske definisjoner av "atom" fra den datastyrte franske språkskatten , på nettstedet til National Center for Textual and Lexical Resources .