sync je unixový nástroj pro aktualizaci souborových systémů a pro synchronizaci dat na disku s daty v paměti [1] . Tím se spustí systémové volání synchronizace , které způsobí, že všechna metadata souborů ve vyrovnávací paměti a změny dat budou zapsány do základních systémů souborů. Zajišťuje, že vše, co bylo uloženo v paměti, bude zapsáno na disk, čímž se zabrání ztrátě dat uložených v mezipaměti v případě selhání operace.
Existuje také přidružené systémové volání int fsync(int fildes), které požaduje, aby všechna data pro otevřený deskriptor souboru s názvem fildes byla přenesena do úložného zařízení spojeného se souborem popsaným pomocí fildes.
Nástroj synchronizace způsobí, že správce systému souborů vyprázdní všechny upravené inody a všechny nezapsané systémové vyrovnávací paměti z hlavní paměti na disk. Tím se zajistí, že se uloží všechny změny souborů až do tohoto naplánovaného času. synchronizace nejprve zapíše inody do vyrovnávacích pamětí a poté vyrovnávací paměti na disk [2]
V Linuxu synchronizace zajišťuje pouze to, že se zkompiluje seznam „špinavých“ bloků, které budou zapsány. Než budou skutečně zaznamenány, bude to nějakou dobu trvat. Příkazy reboot a halt to berou v úvahu tím, že se po zavolání na několik sekund pozastaví
Po provedení příkazu synchronizace musíte nechat dostatek času na uvolnění front ovladačů a úplné uložení všech dat na disk. Doba trvání této pauzy závisí na rychlosti pevného disku (disků), počtu vyrovnávacích pamětí, které mají být zpracovány, a aktivitě systému během této doby.
Operace synchronizace spotřebovává malé množství prostředků CPU. Kromě toho má následující výhody [3] :
Návrat ze systémového volání synczavolaného obslužným programem stejného jména může nastat dříve, než je zápis skutečně dokončen. Od verze 1.3.30 však Linux čeká na konec zápisu, který však nezaručuje integritu dat: moderní disky mají vlastní velké cache. [2]