https://unix.stackexchange.com/a/12818/674
dice
I file di blocco vengono utilizzati dai programmi per garantire che due istanze
separate (corrette) di un programma, che potrebbero essere eseguite contemporaneamente su un sistema
, non accedano a qualcos'altro contemporaneamente. L'idea è
prima che il programma acceda alla sua risorsa, verifica la presenza di un
file di blocco e, se il file di blocco esiste, genera un errore o attende che
scompaia. Quando non esiste, il programma che desidera "acquisire"
la risorsa crea il file, quindi altre istanze che potrebbero
incontrarsi in seguito attenderanno che questo processo venga completato. Naturalmente, questo presuppone che il programma che "acquisisce" il blocco lo rilasci effettivamente
e non dimentica di eliminare il file di blocco.
Questo funziona perché il filesystem in tutti i sistemi operativi simili a UNIX
impone la serializzazione, il che significa che solo una modifica al filesystem
avviene effettivamente in un dato momento . Una specie di blocco con
database e simili.
Cosa significa l'ultimo paragrafo?
È corretto che in Linux un file possa essere scritto contemporaneamente da due processi e il sistema operativo non fornisce la sincronizzazione implicita ma richiede la sincronizzazione esplicita dai programmatori?
Il file di blocco è un modo esplicito per sincronizzare l'accesso allo stesso file da più processi?
Grazie.