Blocare fișier

Versiunea actuală a paginii nu a fost încă revizuită de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită la 31 decembrie 2018; verificările necesită 4 modificări .

Blocarea fișierelor este un  mecanism care restricționează accesul la un fișier , dând acces în acest moment unui singur utilizator sau proces. Sistemele implementează blocarea pentru a preveni scenariul clasic de actualizare intermediară (care este un exemplu tipic de condiție de cursă ) prin forțarea proceselor de actualizare secvențială pe orice fișier.

Următorul exemplu demonstrează problema actualizării intermediare:

  1. Procesul A citește o înregistrare a clientului dintr-un fișier care conține informații contabile, inclusiv soldul contului clientului și numărul de telefon.
  2. Procesul B citește apoi aceeași înregistrare din același fișier, deci are propria copie a înregistrării.
  3. Procesul A modifică soldul contului în copia sa a înregistrării și îl scrie înapoi în fișier.
  4. Procesul B, care are încă soldul inițial al contului în copia sa a înregistrării, actualizează soldul și scrie înapoi în fișier.
  5. Ca rezultat, procesul B și-a scris valoarea rămasă învechită în fișier, provocând pierderea modificărilor făcute de procesul A.

Folosirea greșită a unei blocări de fișiere, ca orice blocare, poate duce la degradarea performanței sau blocarea .

Microsoft Windows

Microsoft Windows utilizează trei mecanisme diferite pentru a controla accesul la fișierele partajate. Mecanisme suplimentare de blocare se aplică partajărilor de fișiere de rețea (SMB) [1] .

Sisteme asemănătoare Unix

Sistemele asemănătoare Unix (inclusiv Linux și OS X ) de obicei nu blochează automat fișierele deschise [2] . Acestea oferă apelul de sistem flock , dar nu restricționează în niciun fel accesul la fișiere din alte procese și servește doar ca o modalitate de sincronizare a accesului la un fișier între mai multe procese.

Există, de asemenea, metoda „fcntl(F_SETLK)” și „fcntl(F_GETLK)” descrise în standardele POSIX [3] [4] .

Amiga OS

Pe sistemul de operare Amiga, puteți obține o blocare a fișierului apelând o funcție Lock(în dos.library).

Sisteme de control al versiunilor

Note

  1. Capitolul 17. Blocarea fișierelor și înregistrărilor . Preluat la 29 septembrie 2018. Arhivat din original la 4 octombrie 2018.
  2. Copie arhivată . Consultat la 29 septembrie 2018. Arhivat din original la 19 septembrie 2015.
  3. Moduri de blocare . Preluat la 29 septembrie 2018. Arhivat din original la 29 septembrie 2018.
  4. FCNTL(2) . Preluat la 29 septembrie 2018. Arhivat din original la 29 septembrie 2018.

Link -uri