A sync egy Unix segédprogram a fájlrendszerek frissítésére és a lemezen lévő adatok és a memóriában lévő adatok szinkronizálására [1] . Ez végrehajtja a szinkronizálási rendszerhívást , amelynek eredményeként az összes pufferelt fájl metaadata és adatmódosítása az alapul szolgáló fájlrendszerbe íródik. Gondoskodik arról, hogy bármi, amit a memóriában tároltak, a lemezre kerüljön, és megakadályozza, hogy a gyorsítótárban tárolt adatok elveszjenek, ha a művelet összeomlik.
Létezik egy társított rendszerhívás is, amely int fsync(int fildes)azt kéri, hogy a fildes nevű nyitott fájlleíró összes adata átvitelre kerüljön a fildes által leírt fájlhoz társított tárolóeszközre.
A szinkronizálási segédprogram arra készteti a fájlrendszer-kezelőt , hogy kiürítse az összes módosított inode-ot és az összes íratlan rendszerpuffert a fő memóriából a lemezre. Ez biztosítja, hogy a fájlok összes módosítása az ütemezett időpontig mentésre kerüljön. A sync először inode-okat ír a pufferekbe , majd a puffereket a lemezre [2]
Linuxon a szinkronizálás csak azt biztosítja, hogy a „piszkos” blokkok listája össze legyen állítva, hogy megírható legyen. Eltelik egy kis idő, mire ténylegesen rögzítik őket. Az újraindítás és a leállítás parancsok ezt figyelembe veszik úgy, hogy a hívás után néhány másodpercre megállnak
A szinkronizálási parancs végrehajtása után elegendő időt kell hagynia az illesztőprogram-várólisták felszabadításához, és az összes adat teljes lemezre mentéséhez. A szünet időtartama a merevlemez(ek) sebességétől, a feldolgozandó pufferek számától és a rendszer ezen időszak alatti aktivitásától függ.
A szinkronizálási művelet kis mennyiségű CPU erőforrást fogyaszt. Ezenkívül a következő előnyei vannak [3] :
syncAz azonos nevű segédprogram által meghívott rendszerhívás visszatérhet az írás tényleges befejezése előtt. Az 1.3.30-as verzió óta azonban a Linux az írás végére vár, ami azonban nem garantálja az adatok sértetlenségét: a modern lemezek saját nagy gyorsítótárral rendelkeznek. [2]
Unix parancsok | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
|