Fillås

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 31 december 2018; kontroller kräver 4 redigeringar .

Fillåsning är en  mekanism som begränsar åtkomsten till en fil och ger åtkomst för tillfället till endast en användare eller process. System implementerar låsning för att förhindra det klassiska intercederande uppdateringsscenariot (som är ett typiskt exempel på ett tävlingstillstånd ) genom att tvinga fram sekventiella uppdateringsprocesser på vilken fil som helst.

Följande exempel visar det mellanliggande uppdateringsproblemet:

  1. Process A läser en kundpost från en fil som innehåller redovisningsinformation, inklusive kundens kontosaldo och telefonnummer.
  2. Process B läser sedan samma post från samma fil, så den har en egen kopia av posten.
  3. Process A ändrar kontosaldot i sin kopia av posten och skriver tillbaka det till filen.
  4. Process B, som fortfarande har det ursprungliga kontosaldot i sin kopia av posten, uppdaterar saldot och skriver tillbaka till filen.
  5. Som ett resultat skrev process B sitt inaktuella restvärde till filen, vilket gjorde att ändringarna som gjorts av process A gick förlorade.

Missbruk av ett fillås, som alla lås, kan resultera i prestandaförsämring eller dödläge .

Microsoft Windows

Microsoft Windows använder tre olika mekanismer för att kontrollera åtkomst till delade filer. Ytterligare låsmekanismer gäller för nätverksfilresurser (SMB) [1] .

Unix-liknande system

Unix-liknande system (inklusive Linux och OS X ) låser vanligtvis inte öppna filer automatiskt [2] . De tillhandahåller flocksystemanropet , men det begränsar inte åtkomst till filer från andra processer på något sätt, och fungerar bara som ett sätt att synkronisera åtkomst till en fil mellan flera processer.

Det finns också metoden "fcntl(F_SETLK)" och "fcntl(F_GETLK)" som beskrivs i POSIX [3] [4] -standarderna .

Amiga OS

På Amiga OS kan du skaffa ett fillås genom att anropa en funktion Lock(i dos.library).

Versionskontrollsystem

Anteckningar

  1. Kapitel 17. Fil- och postlåsning . Hämtad 29 september 2018. Arkiverad från originalet 4 oktober 2018.
  2. Arkiverad kopia . Hämtad 29 september 2018. Arkiverad från originalet 19 september 2015.
  3. Blockeringslägen . Hämtad 29 september 2018. Arkiverad från originalet 29 september 2018.
  4. FCNTL(2) . Hämtad 29 september 2018. Arkiverad från originalet 29 september 2018.

Länkar