Fillås
Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den
version , der blev gennemgået den 31. december 2018; checks kræver
4 redigeringer .
Fillåsning er en mekanisme , der begrænser adgangen til en fil , og giver i øjeblikket kun adgang til én bruger eller proces. Systemer implementerer låsning for at forhindre det klassiske intercederende opdateringsscenarie (som er et typisk eksempel på en race-tilstand ) ved at tvinge sekventielle opdateringsprocesser på enhver fil.
Følgende eksempel viser det mellemliggende opdateringsproblem:
- Proces A læser en kundepost fra en fil, der indeholder regnskabsoplysninger, herunder kundens kontosaldo og telefonnummer.
- Proces B læser derefter den samme post fra den samme fil, så den har sin egen kopi af posten.
- Proces A ændrer kontosaldoen i sin kopi af posten og skriver den tilbage til filen.
- Proces B, som stadig har den oprindelige kontosaldo i sin kopi af posten, opdaterer saldoen og skriver tilbage til filen.
- Som et resultat skrev proces B sin forældede restværdi til filen, hvilket medførte, at ændringerne foretaget af proces A gik tabt.
Misbrug af en fillås, som enhver lås, kan resultere i ydeevneforringelse eller dødvande .
Microsoft Windows
Microsoft Windows bruger tre forskellige mekanismer til at kontrollere adgangen til delte filer. Yderligere låsemekanismer gælder for netværksfilshares (SMB) [1] .
Unix-lignende systemer
Unix-lignende systemer (inklusive Linux og OS X ) låser normalt ikke åbne filer automatisk [2] . De leverer floksystemkaldet , men det begrænser ikke adgangen til filer fra andre processer på nogen måde, og det tjener kun som en måde at synkronisere adgang til en fil mellem flere processer.
Der er også metoden "fcntl(F_SETLK)" og "fcntl(F_GETLK)" beskrevet i POSIX [3] [4] standarderne .
Amiga OS
På Amiga OS kan du erhverve en fillås ved at kalde en funktion Lock(i dos.library).
Versionskontrolsystemer
Noter
- ↑ Kapitel 17. Fil- og postlåsning . Hentet 29. september 2018. Arkiveret fra originalen 4. oktober 2018. (ubestemt)
- ↑ Arkiveret kopi . Hentet 29. september 2018. Arkiveret fra originalen 19. september 2015. (ubestemt)
- ↑ Blokeringstilstande . Hentet 29. september 2018. Arkiveret fra originalen 29. september 2018. (ubestemt)
- ↑ FCNTL(2) . Hentet 29. september 2018. Arkiveret fra originalen 29. september 2018. (ubestemt)
Links