Sincronizzazione

Argomenti


Sincronizzazione

Cos’è la sincronizzazione Vari tipi di problemi hanno soluzioni le cui operazioni devono essere fatte in un ordine ben preciso. Ad esempio, quando si cucina una pizza, si deve aspettare che il forno sia caldo prima che si possa inserire la pizza cruda. Inoltre, gli ingredienti devono essere messi prima di infornare la pizza altrimenti questi non si cuociono. Anche nei problemi informatici è spesso necessario che le operazioni si svolgano in una sequenza ben precisa, questa sequenza di operazione prende il nome di algoritmo.
Vai alla pagina...


Sezione critica

Il problema della sezione critica Un sistema multithread può presentare problemi di sincronizzazione dovuti all’utilizzo da parte di due o più thread della stessa risorsa. Questa risorsa può essere un file e perfino una variabile (ricordiamo che i thread di un processo lavorano su uno spazio di memoria condiviso, quindi possono usare variabili condivise). Un esempio di questi problemi di sincronizzazione si ha in caso di race condition (come descritto qui).
Vai alla pagina...


Mutex, Semafori e Monitor

Mutex Il concetto di Mutex (Mutual Exclusive) viene usato per indicare una qualche risorsa che può essere utilizzata da un solo thread o processo per volta Osserva Si dice quindi che l’uso da parte un thread esclude l’uso da tutti gli altri da cui la dicitura mutua esclusione. In pratica, un mutex è una variabile bool, quindi che può assumere solo i valor true e false. Quando la variabile è true il mutex è stato acquisito da un qualche thread ed è quindi locked.
Vai alla pagina...


Deadlock

La sincronizzazione è una tecnica che permette di fissare l’ordine di esecuzione di thread. Con la sincronizzazione è possibile, quindi, imporre delle regole del tipo il thread A deve finire prima del thread B oppure il thread C deve partire quando i thread D, E ed F sono terminati. Di conseguenza le tecniche di sincronizzazione sono molto utili e vengono spesso usate nella programmazione concorrente. Tuttavia l’utilizzo della sincronizzazione può avere anche effetti negativi, a volte “gravi”, come quello del deadlock che discutiamo qui sotto.
Vai alla pagina...


  • Michele Schimd © 2024
  • Ultimo aggiornamento: 17/02/2024
  • Materiale di studio e di esercizio per gli alunni dello Zuccante.

Creative Commons License