Vai alla Home Page About me Courseware Federica Living Library Federica Federica Podstudio Virtual Campus 3D La Corte in Rete
 
Il Corso Le lezioni del Corso La Cattedra
 
Materiali di approfondimento Risorse Web Il Podcast di questa lezione

Marco Lapegna » 20.Esercitazione 1: lo stallo dei processi


Esercizi

Stallo dei processi

L’incrocio
Per riscaldarsi: esercizio 0

Provare che il sistema è in stallo.
Quali sono le risorse?
Chi reclama le risorse?


Soluzione

Risorse: incroci che devono essere attraversati
Processi: file di auto che devono attraversare gli incroci

Condizioni per lo stallo:

  1. mutua esclusione (gli incroci non possono essere condivisi);
  2. possesso e attesa (ogni fila di auto possiede un incrocio e aspetta che se ne liberi uno);
  3. non prelazionabilità (le auto non possono essere spostate);
  4. attesa circolare.

Con le tabelle di allocazione


Esercizio 1

Un sistema è composto da 7 processi, P1, …, P7, e da 6 risorse condivise, R1, …, R6, ciascuna di tipo diverso, non prelazionabili e ad accesso mutuamente esclusivo. La situazione del sistema è la seguente:

  • P1 occupa R1 e richiede R2;
  • P2 non occupa risorse e richiede R3;
  • P3 non occupa risorse e richiede R2;
  • P4 occupa R4 e richiede sia R2 sia R3;
  • P5 occupa R3 e richiede R5;
  • P6 occupa R6 e richiede R2;
  • P7 occupa R5 e richiede R4.

Si determini, utilizzando il grafo di allocazione delle risorse, se il sistema è in deadlock e, in caso affermativo, quali sono i processi e le risorse coinvolti.

Soluzione

P4 → R3 →P5 → R5 → P7 → R4 →P4 sono in deadlock.

P4 → R3 →P5 → R5 → P7 → R4 →P4 sono in deadlock.


Esercizio 2

Dati 4 processi, e 3 tipi di risorse: A (5 istanze), B (8 istanze), e C (16 istanze).

Si determini:
a. se il sistema è in uno stato sicuro;
b. se l’assegnazione di 1 istanza della risorsa A a P1 garantisce il mantenimento dello stato sicuro;
c. se l’assegnazione di 6 istanze di C a P3 garantisce il mantenimento dello stato sicuro.


Soluzione a)

  • E’ possibile soddisfare le richieste di P2
  • Alla fine dell’esecuzione P2 rilascia le risorse → Disponibili = (3 5 8 )
  • Sequenza sicura < P2 >

Soluzione a)

  • E’ possibile soddisfare le richieste di P4
  • Alla fine dell’esecuzione P4 rilascia le risorse → Disponibili = (4 5 11)
  • Sequenza sicura < P2 , P4>

Soluzione a)

  • E’ possibile soddisfare le richieste di P1
  • Alla fine dell’esecuzione P1 rilascia le risorse → Disponibili = (4 6 15)
  • Sequenza sicura < P2 , P4 , P1 >

Soluzione a)

  • E’ possibile soddisfare le richieste di P3
  • Alla fine dell’esecuzione P3 rilascia le risorse → Disponibili = (5 8 16)
  • Sequenza sicura < P2 , P4 , P1 , P3 >

Il sistema è in stato sicuro.


Soluzione b)

  • E’ possibile soddisfare le richieste di P4
  • Alla fine dell’esecuzione P4 rilascia le risorse → Disponibili = (1 5 10)
  • Sequenza sicura < P4 >

Soluzione b)

  • E’ possibile soddisfare le richieste di P2
  • Alla fine dell’esecuzione P2 rilascia le risorse → Disponibili = (3 5 11)
  • Sequenza sicura < P4 , P2 >

Soluzione b)

  • E’ possibile soddisfare le richieste di P1
  • Alla fine dell’esecuzione P1 rilascia le risorse → Disponibili = (4 6 15)
  • Sequenza sicura < P4 , P2 , P1 >

Soluzione b)

  • E’ possibile soddisfare le richieste di P3
  • Alla fine dell’esecuzione P3 rilascia le risorse → Disponibili = (5 8 16)
  • Sequenza sicura < P4 , P2 , P1 , P3 >

L’aggiunta di una risorse di tipo A a P1 produce uno stato sicuro


Soluzione c)

Non possono essere soddisfatte le richieste 
di nessun processo. Lo stato non e’ sicuro.

Non possono essere soddisfatte le richieste di nessun processo. Lo stato non e' sicuro.


  • Contenuti protetti da Creative Commons
  • Feed RSS
  • Condividi su FriendFeed
  • Condividi su Facebook
  • Segnala su Twitter
  • Condividi su LinkedIn
Progetto "Campus Virtuale" dell'Università degli Studi di Napoli Federico II, realizzato con il cofinanziamento dell'Unione europea. Asse V - Società dell'informazione - Obiettivo Operativo 5.1 e-Government ed e-Inclusion

Fatal error: Call to undefined function federicaDebug() in /usr/local/apache/htdocs/html/footer.php on line 93