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:
- 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.
- Procesul B citește apoi aceeași înregistrare din același fișier, deci are propria copie a înregistrării.
- Procesul A modifică soldul contului în copia sa a înregistrării și îl scrie înapoi în fișier.
- Procesul B, care are încă soldul inițial al contului în copia sa a înregistrării, actualizează soldul și scrie înapoi în fișier.
- 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
- ↑ Capitolul 17. Blocarea fișierelor și înregistrărilor . Preluat la 29 septembrie 2018. Arhivat din original la 4 octombrie 2018. (nedefinit)
- ↑ Copie arhivată . Consultat la 29 septembrie 2018. Arhivat din original la 19 septembrie 2015. (nedefinit)
- ↑ Moduri de blocare . Preluat la 29 septembrie 2018. Arhivat din original la 29 septembrie 2018. (nedefinit)
- ↑ FCNTL(2) . Preluat la 29 septembrie 2018. Arhivat din original la 29 septembrie 2018. (nedefinit)
Link -uri