Tiedoston lukitus
Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 31. joulukuuta 2018 tarkistetusta
versiosta . tarkastukset vaativat
4 muokkausta .
Tiedoston lukitus on mekanismi, joka rajoittaa pääsyä tiedostoon ja antaa tällä hetkellä pääsyn vain yhdelle käyttäjälle tai prosessille. Järjestelmät toteuttavat lukituksen estämään klassisen välittävän päivitysskenaarion (joka on tyypillinen esimerkki kilpailutilanteesta ) pakottamalla peräkkäiset päivitysprosessit mihin tahansa tiedostoon.
Seuraava esimerkki havainnollistaa välityspäivitysongelman:
- Prosessi A lukee asiakastietueen tiedostosta, joka sisältää kirjanpitotiedot, mukaan lukien asiakkaan tilisaldon ja puhelinnumeron.
- Prosessi B lukee sitten saman tietueen samasta tiedostosta, joten sillä on oma kopio tietueesta.
- Prosessi A muuttaa tilin saldoa tietuekopiossaan ja kirjoittaa sen takaisin tiedostoon.
- Prosessi B, jonka tietueen kopiossa on edelleen alkuperäinen tilin saldo, päivittää saldon ja kirjoittaa takaisin tiedostoon.
- Tämän seurauksena prosessi B kirjoitti vanhentuneen jäännösarvon tiedostoon, jolloin prosessin A tekemät muutokset katosivat.
Tiedostolukon väärinkäyttö, kuten minkä tahansa lukon, voi johtaa suorituskyvyn heikkenemiseen tai lukkiutumiseen .
Microsoft Windows
Microsoft Windows käyttää kolmea eri mekanismia jaettujen tiedostojen pääsyn hallintaan. Muita lukitusmekanismeja sovelletaan verkon tiedosto-osuuksiin (SMB) [1] .
Unix-tyyppiset järjestelmät
Unix-tyyppiset järjestelmät (mukaan lukien Linux ja OS X ) eivät yleensä lukitse avoimia tiedostoja automaattisesti [2] . Ne tarjoavat parven järjestelmäkutsun , mutta se ei rajoita pääsyä muiden prosessien tiedostoihin millään tavalla, ja se toimii vain tapana synkronoida tiedoston käyttö useiden prosessien välillä.
Myös "fcntl(F_SETLK)" ja "fcntl(F_GETLK)" -menetelmät on kuvattu POSIX [3] [4] standardeissa .
Amiga OS
Amiga-käyttöjärjestelmässä voit hankkia tiedostolukon kutsumalla funktion Lock(in dos.library).
Versionhallintajärjestelmät
Muistiinpanot
- ↑ Luku 17. Tiedostojen ja tietueiden lukitus . Haettu 29. syyskuuta 2018. Arkistoitu alkuperäisestä 4. lokakuuta 2018. (määrätön)
- ↑ Arkistoitu kopio . Haettu 29. syyskuuta 2018. Arkistoitu alkuperäisestä 19. syyskuuta 2015. (määrätön)
- ↑ Estotilat . Haettu 29. syyskuuta 2018. Arkistoitu alkuperäisestä 29. syyskuuta 2018. (määrätön)
- ↑ FCNTL(2) . Haettu 29. syyskuuta 2018. Arkistoitu alkuperäisestä 29. syyskuuta 2018. (määrätön)
Linkit