|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Feb 2009
Messaggi: 459
|
[Sistemi Operativi] C'è deadlock o no?
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 |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
rispegalo anche a me che mi interessa un ripasso
http://www.dacrema.com/Informatica/Grafo_attese.htm |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
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. |
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Jul 2003
Città: Alessandria
Messaggi: 10167
|
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
__________________
Dell XPS 13 (9350) :: i5-2500K - HD6870 - AsRock Z68 Pro3 - Corsair Vengeance 8GB (4x2) DDR3 :: Samsung Galaxy S4 GT-i9505
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:04.




















