Sincronizare

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.

Descriere

  sincronizare [ --help ] [ --version ]

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] :

  • Înregistrare compactă a datelor.
  • Scrieți cel puțin 28 KB de date de sistem, chiar dacă nu a avut loc nicio intrare/ieșire de la apelul de sincronizare anterior.
  • Accelerarea scrierii datelor pe disc prin dezactivarea algoritmului de scriere leneșă. Această proprietate este deosebit de importantă pentru programele care rulează fsync() după fiecare operație de scriere.
  • Când se apelează sync() sau fsync(), se face o intrare în jurnalul JFS că datele modificate au fost salvate pe disc.

Bug -uri

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]

Vezi și

Note

  1. Ubuntu Manpage: sync - Sincronizează datele de pe disc cu datele din memorie . Preluat la 1 august 2019. Arhivat din original la 17 iulie 2019.
  2. 1 2 Ubuntu Manpage: sync - Scrie memoria cache-ului tampon pe disc . Preluat la 1 august 2019. Arhivat din original la 18 iulie 2019.
  3. IBM Knowledge Center

Link -uri