In informatica, una critical section è un pezzo di codice in cui deve essere garantito che non ci sarà mai più di un thread contemporaneamente. È necessario utilizzare le critical section quando è possibile accedere a risorse condivise da più thread .
Quando flussi diversi accedono a una risorsa comune in tempi diversi, ognuno di essi può completare la propria operazione, di lettura o di scrittura, senza essere confuso dagli altri. Se questa condizione vale sempre per una certa risorsa, allora si dice che la lettura e la scrittura su quella risorsa sono operazioni atomiche: ogni flusso può intervenire solo prima o dopo che l’altro abbia completato la propria operazione, e non può interromperla.
Consideriamo due thread che desiderano incrementare lo stesso contatore. L’incremento deve essere protetto da una critical section. In effetti, l’incremento di una variabile non è necessariamente un’operazione atomica. Si po’ tradurre l’incremento di una variabile in un codice assembly.
Categorie
Critical Section
Una critical section è un pezzo di codice in cui deve essere garantito che non ci sarà mai più di un thread contemporaneamente.