Odpovídáte na názor ke článku Jak zakázat explicitní fsync (v Ubuntu).
[43] To je s dovolením nesmysl. (f)sync se týká dirty stránek cache, kterou spravuje operační systém (linux). Cache využívá jak pro zápis, tak pro čtení. Zápis se tedy děje přes cache, ze které pak může číst i jiný proces. Z hlediska procesů se tedy cache chová transparentně a z toho pohledu se zdá, že data jsou fyzicky zapsána. Cache je vlastně takový ramdisk, který replikuje obsah disku, tedy aspoň jeho část. Čili i bez (f)sync vám překladač přeloží TeX uložený v editoru. Vězte, že já takhle vyvíjím už několik měsíců, píšu v C++ a používám automatický překlad v Eclipse po uložení (po uložení se to hned na pozadí přeloží, takže se mi označí chyby).
Není prostě technicky možný, že by jeden proces uložil soubor, ten zůstal v cache a druhý proces otevřel soubor "čtený přímo z disku". Dokonce i při použití O_SYNC se podle mě bude číst z cache, pokud tam ty data jsou a při zápisu se bude stejně zapisovat do cache, pouze s tím, že po každém zápisu se provede implicitní (f)sync.
To co máte na mysli by nastalo v okamžiku, kdy by k jednomu disku měly přístup dva operační systémy současně se svými cache. Takové uspořádání jsem ale zatím nikde neviděl.
Intenzivně se zabývám programováním zejména v jazyce C++. Vyvíjím vlastní knihovny, vzory, techniky, používám šablony, to vše proto, aby se mi usnadnil život při návrhu aplikací. Pracoval jsem jako programátor ve společnosti Seznam.cz. Nyní jsem se usadil v jednom startupu, kde vyvíjím serverové komponenty a informační systémy v C++
Přečteno 57 613×
Přečteno 27 724×
Přečteno 26 404×
Přečteno 24 368×
Přečteno 22 865×