https://unix.stackexchange.com/a/12818/674
dice
Los programas utilizan los archivos de bloqueo para garantizar que dos instancias
separadas (de buen comportamiento) de un programa, que pueden estar ejecutándose simultáneamente en un sistema
, no accedan a otra cosa al mismo tiempo. La idea es
antes de que el programa acceda a su recurso, comprueba la presencia de un archivo de bloqueo
y, si el archivo de bloqueo existe, genera un error o espera a que
desaparezca. Cuando no existe, el programa que desea "adquirir"
el recurso crea el archivo, y luego otras instancias que podrían
aparecer más tarde esperarán a que este proceso se complete. Por supuesto,
esto supone que el programa que "adquiere" el bloqueo, de hecho,
lo libera y no se olvida de eliminar el archivo de bloqueo.
Esto funciona porque el sistema de archivos en todos los sistemas operativos
similares a UNIX impone la serialización, lo que significa que solo ocurre un cambio en el
sistema de archivos en un momento dado . Algo así como bloqueos con
bases de datos y demás.
¿Qué significa el último párrafo?
¿Es correcto que en Linux, dos procesos pueden escribir un archivo simultáneamente y que el sistema operativo no proporciona sincronización implícita pero requiere sincronización explícita por parte de los programadores?
¿Bloquear archivo es una forma explícita de sincronizar el acceso al mismo archivo por múltiples procesos?
Gracias.