X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=fileadv.tex;h=f29a8efe9e54bef4465268860912445ac8f37487;hp=78adf0840bb8c1d743f0e03b95e36304a16a6cdd;hb=5eaf11a5e3e4daaee677554b68f4ba3c92c67b84;hpb=9b0f636834e8d92e87131bbb99d7d846bab1421a diff --git a/fileadv.tex b/fileadv.tex index 78adf08..f29a8ef 100644 --- a/fileadv.tex +++ b/fileadv.tex @@ -313,12 +313,13 @@ della funzione. L'uso di \param{sigmask} è stato introdotto allo scopo di prevenire possibili race condition\footnote{in Linux però, non esistendo una system call apposita, la funzione è implementata nelle \acr{glibc} usando \func{select}, e la - possibilità di una race condition resta.} quando si deve eseguire un test su -una variabile assegnata da un gestore sulla base dell'occorrenza di un -segnale per decidere se lanciare \func{select}. Fra il test e l'esecuzione è -presente una finestra in cui potrebbe arrivare il segnale che non sarebbe -rilevato; la race condition diventa superabile disabilitando il segnale prima -del test e riabilitandolo poi grazie all'uso di \param{sigmask}. + possibilità di una race condition\index{race condition} resta.} quando si +deve eseguire un test su una variabile assegnata da un gestore sulla base +dell'occorrenza di un segnale per decidere se lanciare \func{select}. Fra il +test e l'esecuzione è presente una finestra in cui potrebbe arrivare il +segnale che non sarebbe rilevato; la race condition\index{race condition} +diventa superabile disabilitando il segnale prima del test e riabilitandolo +poi grazie all'uso di \param{sigmask}. @@ -1240,9 +1241,10 @@ processi scrivono, mescolando in maniera imprevedibile il loro output sul file. In tutti questi casi il \textit{file locking} è la tecnica che permette di -evitare le race condition, attraverso una serie di funzioni che permettono di -bloccare l'accesso al file da parte di altri processi, così da evitare le -sovrapposizioni, e garantire la atomicità delle operazioni di scrittura. +evitare le race condition\index{race condition}, attraverso una serie di +funzioni che permettono di bloccare l'accesso al file da parte di altri +processi, così da evitare le sovrapposizioni, e garantire la atomicità delle +operazioni di scrittura.