Sistemi Operativi

Deadlock

In informatica il Deadlock è una situazione in cui due (o più) task si bloccano a vicenda aspettando che uno esegua una certa azione (es. rilasciare il controllo su una risorsa come un File, una porta Input/Output ecc.) che serve all'altro e viceversa. Un esempio è rappresentato da due persone che vogliono disegnare. Per disegnare hanno a disposizione solo una riga e una matita. Per disegnare hanno bisogno di entrambe. Potendo prendere un solo oggetto per volta, se uno prende la matita e l'altro prende la riga, e uno deve aspettare che l’ altro finisca il suo lavoro i due generano un deadlock. Applicazioni che sono tipicamente soggette ai deadlock sono i database, nel caso in cui ci siano richieste circolari di accesso esclusivo da parte di diverse transazioni sulle stesse risorse, oppure i sistemi operativi che gestiscono l'accesso contemporaneo a file, a dispositivi di I/O e più in generale a delle risorse condivise da diversi processi. Si definisce deadlock di un sottoinsieme di processi del sistema la situazione in cui ciascuno degli n processi Pi e’ in attesa del rilascio di una risorsa detenuta da uno degli altri processi del sottoinsieme. Si forma cioè una catena circolare per cui: P1 aspetta P2… aspetta Pn aspetta P1 Anche se non tutti i processi del sistema sono bloccati, la situazione non è desiderabile in quanto blocca delle risorse e non soddisfa alcuni utenti.!! Le condizioni necessarie, ma non sufficienti, per il verificarsi di un Deadlock sono:

  1. Mutua esclusione: almeno una delle risorse del sistema deve essere non condivisibile (ossia usata da un processo alla volta oppure libera).

  2. Possesso ed attesa: i processi che possiedono una risorsa possono richiederne altre.

  3. Impossibilità di prelazione: il processo che detiene la risorsa può rilasciarla solo dopo aver terminato il proprio compito.

  4. Attesa circolare: esiste un gruppo di processi {P0,P1,...,Pn} per cui P0 è in attesa per una risorsa occupata da P1, P1 per una risorsa di P2, ecc... Pn per una risorsa di P0.

Una situazione di Deadlock può essere riconosciuta analizzando il Grafo delle attese. I metodi per la gestione dei Deadlock sono:






















































Tutto quanto riportato in questa pagina è a puro scopo informativo personale. Se non ti trovi in accordo con quanto riportato nella pagina, vuoi fare delle precisazioni, vuoi fare delle aggiunte o hai delle proposte e dei consigli da dare, puoi farlo mandando un email. Ogni indicazione è fondamentale per la continua crescita del sito.