View Full Version : [Sistemi Operativi] C'è deadlock o no?
tomjones23
04-05-2013, 20:02
Ciao,
Avrei un dubbio riguardo questa situazione:
http://img856.imageshack.us/img856/9233/asdsv.png
In questa situazione c'è deadlock per qualche processo tra quelli? Oppure nessuno?
Secondo quello che ricordo di sistemi operativi se non c'è un ciclo non c'è deadlock, ma qui non sono certo che non ci siano cicli.
Inoltre so che il deadlock dipende da tante situazione quali lo scheduling, le logiche del programma, le applicazioni etc... quindi in questo caso si può dire se ci sono processi in deadlock sicuramente o se ci sono processi che sicuramente NON sono in deadlock oppure non è possibile stabilirlo?
Grazie
rispegalo anche a me che mi interessa un ripasso :D
http://www.dacrema.com/Informatica/Grafo_attese.htm
tomminno
05-05-2013, 14:38
Ciao,
Avrei un dubbio riguardo questa situazione:
http://img856.imageshack.us/img856/9233/asdsv.png
In questa situazione c'è deadlock per qualche processo tra quelli? Oppure nessuno?
Secondo quello che ricordo di sistemi operativi se non c'è un ciclo non c'è deadlock, ma qui non sono certo che non ci siano cicli.
Inoltre so che il deadlock dipende da tante situazione quali lo scheduling, le logiche del programma, le applicazioni etc... quindi in questo caso si può dire se ci sono processi in deadlock sicuramente o se ci sono processi che sicuramente NON sono in deadlock oppure non è possibile stabilirlo?
Grazie
Qual è la legenda del diagramma?
Sembra quasi che P2 e P3 attendano R2 detenuta da P1, ma non ci sono risorse riservate a P2 e P3 di cui P1 sia in attesa pertanto non sembra esserci deadlock.
Questo supponendo che la freccia diretta sul quadrato nero indichi risorsa posseduta da un processo, mentre la freccia sul quadrato grigio indichi l'attesa della risorsa.
Rileggendo lo Silberschatz, Operating System Concepts, viene asserito che:
Given the definition of a resource-allocation graph, it can be shown that, if the graph contains no cycles, then no process in the system is deadlocked. If the graph does contain a cycle, then a deadlock may exist.
Secondo me non c'è alcuna deadlock.
Partiamo dal fatto che il problema sta nella risorsa R2 ( visto che c'è solo un'istanza di questa ).
P1 prende R2, e poi siccome non attende nessuna risorsa da nessuno, la libera al termine del suo task.
Poi P2 e P3 hanno effettuato una richiesta per R2: se P2 si prende R2, prenderà poi R3 ( quest'ultima risorsa non serve a P3 ) e concluderà i suoi task; se P3 prende R2 allora si prenderà anche R1 ( che non serve a P2 ) e concluderà i suoi task.
Io penso che funzionerà così. Spero di essere stato chiaro.
Felice di essere smentito :D
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.