Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Deadlock e Starvation: Concetti e Risoluzione, Appunti di Sistemi Operativi

Michael Dahlin, Thomas Anderson

Tipologia: Appunti

2017/2018

In vendita dal 09/09/2018

maDave
maDave 🇮🇹

12 documenti

1 / 4

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
LEZIONE 15/03/2018
Deadlock: Un blocco “mortale”. Lo stallo ha degli effetti estremamente negativi sulla performance, quindi
quando si scrivono un insieme di programmi che condividono varie risorse.
Una risorsa è un oggetto di cui i thread hanno bisogno per poter lavorare. Per es. una lock è una risorsa.
Tali risorse possono essere:
Rilasciabili
Possono interrompere in qualsiasi momento, quindi non creano problemi
Non rilasciabili
Possono creare stalli.
Lo stallo vero è proprio è un’attesa circolare di più risorse.
LEZIONE 20/03/18
Lo stallo è un’attesa circolare.
È stato studiato molto bene ed identificato, trovando le 4 condizioni necessarie e sufficiente che mi
garantiscono (o almeno è molto probabile) lo stallo.
Condizioni:
1. Più risorse dello stesso tipo.
2. Le risorse devono essere utilizzate in mutua esclusione e non devono essere pre rilasciabili
3. Richieste indipendenti multiple:
3.a. Se io non ho la risorsa, aspetto tale risorsa tenendomi quelle ottenute precedentemente.
4. Catena circolare di richieste
Attesa Circolare => STALLO.
pf3
pf4

Anteprima parziale del testo

Scarica Deadlock e Starvation: Concetti e Risoluzione e più Appunti in PDF di Sistemi Operativi solo su Docsity!

LEZIONE 15/03/

Deadlock: Un blocco “mortale”. Lo stallo ha degli effetti estremamente negativi sulla performance, quindi quando si scrivono un insieme di programmi che condividono varie risorse. Una risorsa è un oggetto di cui i thread hanno bisogno per poter lavorare. Per es. una lock è una risorsa. Tali risorse possono essere:

  • (^) Rilasciabili
    • Possono interrompere in qualsiasi momento, quindi non creano problemi
  • Non rilasciabili
    • Possono creare stalli. Lo stallo vero è proprio è un’attesa circolare di più risorse. LEZIONE 20/03/ Lo stallo è un’attesa circolare. È stato studiato molto bene ed identificato, trovando le 4 condizioni necessarie e sufficiente che mi garantiscono (o almeno è molto probabile) lo stallo. Condizioni:
  1. (^) Più risorse dello stesso tipo.
  2. Le risorse devono essere utilizzate in mutua esclusione e non devono essere pre rilasciabili
  3. Richieste indipendenti multiple: 3.a. Se io non ho la risorsa, aspetto tale risorsa tenendomi quelle ottenute precedentemente.
  4. Catena circolare di richieste

Attesa Circolare => STALLO.

Risorsa: Sono gli oggetti (CPU, Spazio disco, memoria, lock) passivi, che devono essere utilizzate dai thread affinché riescono a svolgere la propria computazione. Le risorse devono essere riutilizzabili (per esempio dei dati condivisi, o la stampante) Tali risorse possono essere:

  • Rilasciabili
    • Possono interrompere in qualsiasi momento, quindi non creano problemi
  • Non rilasciabili
    • Possono creare stalli o perde il lavoro fatto in precedenza. Starvation: Un thread aspetta indefinitamente Stallo: Almeno due si bloccano reciprocamente. Le richieste devono essere bloccati per poter creare stallo (ovvero se la risorsa non è disponibile, chi la richiede si blocca). Metodo di richieste:
  1. Singole risorse
  2. Multiple Risorse
  3. Se k<= D allora tutte le k risorse gli vengono assegnate
  4. Se k> D nessuna risorsa gli viene assegnata Risoluzione deadlock:
  5. Cura:
  6. Prevenzione 2.a. Statica: Io mi comporto in modo tale che sicuramente non avrò stallo (rinuncio alle prestazioni)

Capitolo 6 (Dal libro)