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:

  1. Prosessi A lukee asiakastietueen tiedostosta, joka sisältää kirjanpitotiedot, mukaan lukien asiakkaan tilisaldon ja puhelinnumeron.
  2. Prosessi B lukee sitten saman tietueen samasta tiedostosta, joten sillä on oma kopio tietueesta.
  3. Prosessi A muuttaa tilin saldoa tietuekopiossaan ja kirjoittaa sen takaisin tiedostoon.
  4. Prosessi B, jonka tietueen kopiossa on edelleen alkuperäinen tilin saldo, päivittää saldon ja kirjoittaa takaisin tiedostoon.
  5. 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

  1. Luku 17. Tiedostojen ja tietueiden lukitus . Haettu 29. syyskuuta 2018. Arkistoitu alkuperäisestä 4. lokakuuta 2018.
  2. Arkistoitu kopio . Haettu 29. syyskuuta 2018. Arkistoitu alkuperäisestä 19. syyskuuta 2015.
  3. Estotilat . Haettu 29. syyskuuta 2018. Arkistoitu alkuperäisestä 29. syyskuuta 2018.
  4. FCNTL(2) . Haettu 29. syyskuuta 2018. Arkistoitu alkuperäisestä 29. syyskuuta 2018.

Linkit