Szinkronizál

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.

Leírás

  sync [ --help ] [ --version ]

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

  • Kompakt adatrögzítés.
  • Írjon legalább 28 KB rendszeradatot, még akkor is, ha az előző szinkronizálási hívás óta nem történt I/O.
  • Adatok lemezre írásának felgyorsítása a lusta írási algoritmus letiltásával. Ez a tulajdonság különösen fontos azoknál a programoknál, amelyek minden írási művelet után az fsync()-et futtatják.
  • A sync() vagy fsync() meghívásakor a JFS -naplóban bejegyzés történik, amely szerint a módosított adatok lemezre kerültek.

Bugs

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]

Lásd még

Jegyzetek

  1. Ubuntu Manpage: szinkronizálás - A lemezen lévő adatok szinkronizálása a memóriában lévő adatokkal . Letöltve: 2019. augusztus 1. Az eredetiből archiválva : 2019. július 17.
  2. 1 2 Ubuntu Manpage: sync - A puffer gyorsítótárat lemezre írja . Letöltve: 2019. augusztus 1. Az eredetiből archiválva : 2019. július 18.
  3. IBM Knowledge Center

Linkek