https://unix.stackexchange.com/a/12818/674
říká
Zamykací soubory používají programy k zajištění toho, aby dvě (dobře fungující) samostatné
instance programu, které mohou být spuštěny souběžně na jednom
systému, neměly současně přístup k něčemu jinému. Myšlenka je
předtím, než program přistoupí ke svému zdroji, zkontroluje přítomnost
souboru zámku, a pokud soubor zámku existuje, buď dojde k chybě nebo počká, až
zmizí. Když neexistuje, program, který chce „získat“
prostředek, vytvoří soubor a další instance, které by se mohly
setkat později, počkají, až se s ním tento proces provede. Samozřejmě
to předpokládá, že program, který „získá“ zámek, jej ve skutečnosti
uvolní a nezapomene smazat soubor zámku.Funguje to proto, že souborový systém ve všech operačních systémech podobných UNIXu
vynucuje serializaci, což znamená, že v daném okamžiku skutečně dojde pouze k jedné změně
souborového systému . Něco jako zámky s
databázemi a podobně.
Co znamená poslední odstavec?
Je správné, že v Linuxu může být soubor zapsán současně dvěma procesy a OS neposkytuje implicitní synchronizaci, ale vyžaduje explicitní synchronizaci od programátorů?
Je soubor zámku explicitní způsob, jak synchronizovat přístup ke stejnému souboru více procesů?
Děkuji.