sync este un utilitar Unix pentru actualizarea sistemelor de fișiere și pentru sincronizarea datelor de pe disc cu datele din memorie [1] . Aceasta execută apelul de sistem de sincronizare , care face ca toate metadatele și modificările de date ale fișierelor din buffer să fie scrise în sistemele de fișiere subiacente. Acesta asigură că orice a fost stocat în memorie este scris pe disc, prevenind pierderea datelor stocate în cache în cazul în care operația se blochează.
Există, de asemenea, un apel de sistem asociat int fsync(int fildes)care solicită ca toate datele pentru un descriptor de fișier deschis numit fildes să fie transferate pe dispozitivul de stocare asociat fișierului descris de fildes.
Utilitarul de sincronizare determină managerul sistemului de fișiere să șteargă toate inodele modificate și toate bufferele de sistem nescrise din memoria principală pe disc. Acest lucru asigură că toate modificările aduse fișierelor până la ora programată sunt salvate. sync scrie mai întâi inoduri în buffere și apoi tampon pe disc [2]
Pe Linux, sincronizarea asigură doar că o listă de blocuri „murdare” este compilată pentru a fi scrisă. Va trece ceva timp până când acestea vor fi efectiv înregistrate. Comenzile de repornire și oprire iau în considerare acest lucru făcând pauză de câteva secunde după ce au fost apelate
După executarea comenzii de sincronizare, trebuie să acordați suficient timp pentru ca cozile de drivere să fie eliberate și toate datele să fie salvate complet pe disc. Durata acestei pauze depinde de viteza hard disk-urilor, de numărul de buffer-uri care trebuie procesate și de activitatea sistemului în această perioadă.
Operația de sincronizare consumă o cantitate mică de resurse CPU. În plus, are următoarele avantaje [3] :
O întoarcere de la un apel de sistem syncnumit de un utilitar cu același nume poate apărea înainte ca scrierea să fie de fapt finalizată. Cu toate acestea, începând cu versiunea 1.3.30, Linux așteaptă sfârșitul scrierii, care, totuși, nu garantează integritatea datelor: discurile moderne au propriile lor cache mari. [2]
Comenzi Unix | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
|