1 / 19

Deadlock

Deadlock. Corso di Calcolatori Elettronici AA 1999-2000. Sommario. Le risorse Condizioni necessarie per il deadlock Modello tramite grafo orientato Deadlock Detection Deadlock Avoidance Deadlock Prevention Starvation Deadlock in ambiente distribuito (cenni). Risorse.

ulani
Download Presentation

Deadlock

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Deadlock Corso di Calcolatori Elettronici AA 1999-2000 W.Fornaciari

  2. Sommario • Le risorse • Condizioni necessarie per il deadlock • Modello tramite grafo orientato • Deadlock Detection • Deadlock Avoidance • Deadlock Prevention • Starvation • Deadlock in ambiente distribuito (cenni) Calcolatori Elettronici, AA 99-2000

  3. Risorse • Risorsa: hw o sw usabile in modo esclusivo da un processo (file, record in un db, device, licenze sw, ...) • Ris. Preemptable: può essere tolta senza effetti disastrosi • Ris. Non-preemptable: se tolta danneggia la computazione • Ciclo di uso di una risorsa da parte di un processo Usorisorsa Rilascio risorsa Richiesta Attesa Processo bloccato, ev. Effettua diversi tentativi Calcolatori Elettronici, AA 99-2000

  4. Condizioni per il deadlock • Un insieme di processi è in deadlock se ognuno di essi è bloccato in attesa di un evento che solo altri (a loro volta bloccati) possono generare • Condizioni necessarie per avere deadlock • Mutua esclusione: risorse allocate o disponibili • Hold&Wait: processi che già detengono risorse possono chiederne altre • No preemption: solo rilascio “spontaneo” delle risorse • Attesa circolare: deve esistere un loop di processi, ognuno in attesa per risorse detenute dal successivo • Le presenza delle condizioni non implica che il sistema necessariamente entrerà in deadlock, è solo “a rischio”; tutto dipende dall’ordinamento temporale delle richieste Calcolatori Elettronici, AA 99-2000

  5. R3 Modello a grafo orientato • I cicli nel grafo orientato sono situazioni di deadlock • Aggiornando il grafo ad ogni richiesta, si può monitorare la presenza di deadlock nel sistema • Es. P1, P2, R1 e R3 sono coinvolti nel deadlock Risorsa Processo Processo Risorsa Il processo detiene la risorsa Il processo è bloccato, in attesa delle risorsa P1 R2 R1 P3 P2 Calcolatori Elettronici, AA 99-2000

  6. Gestione deadlock • Ignorare: non gestito.Trade-off fra costi ripristino e danni possibili; applicabile se poco frequente e nonmission critical • Detection & recovery: lascio che accada, ho però metodi per individuarlo e risolverlo • Detection con 1 ris. per ogni tipo: costruisco grafo, se esistono cicli ho deadlock; individuo anche processi e risorse coinvolte • Detection con ris. Multiple (indistinguibili) per ogni tipo: n processi P1, Pn m classi risorse di cardinalità Ei (1  im) E [E1, ... Ei, ... Em] vettore delle risorse esistenti A [A1, ... Ai, ... Am] vettore delle risorse disponibili C [cij]nxm matrice di allocazione corrente cij numero di istanze di classe j detenute da Pi R [rij]nxm matrice delle richieste, rij risorse di classe j chieste da Pi Calcolatori Elettronici, AA 99-2000

  7. Cerca un processo Pi non marcato, tale che i-esima riga di R sia  A I Pi non marcati (se esistono) sono in deadlock A= A + i-esima riga di Cmarca Pi Detection con risorse multiple • Ogni risorsa è disponibile o allocata • Nota: A è vettorialmente minore di B se lo sono tutte le sue componenti: Ai Bii, 1 im non esiste Il processo può essere soddisfatto con le risorse disponibili esiste Simulo restituzione delle risorse al termine uso da parte del processo fine Calcolatori Elettronici, AA 99-2000

  8. Recovery • Mediante preemption • Tolgo una risorsa per darla ad altro processo, la scelta dipende dalla facilità di restituzione risorsa • Generalmente si interviene manualmente • Mediante roll-back • I processi dispongono di checkpoint periodici (immagine memoria P + stato delle risorse lui assegnate) • Rilevato il deadlock, si identificano le ris. necessarie e si effettua roll-back dei processi che le detengono sino all’istante precedente la loro acquisizione. Le risorse così liberate sono assegnate ai P in deadlock • Il lavoro svolto sino al checkpoint è perso; tradeoff fra freq deadlock e freq dei checkpoint • Mediante uccisione dei processi • Elimino (incrementalmente) i processi appartenenti al ciclo • Elimino processi non appartenenti al ciclo ma che detengono risorse necessarie ai Pi del ciclo • Candidati: P ripristinabili senza conseguenze (es compilatori), P che hanno svolto poco lavoro, P coinvolti in più cicli Calcolatori Elettronici, AA 99-2000

  9. Gestione deadlock: avoidance • Stato sicuro: non è in deadlock ed esiste un modo per soddisfare le richieste pendenti eseguendo in un qualche ordine i processi • Stato non-sicuro: i processi possono evolvere, ma non è garantito che tutti potranno terminare (diverso da deadlock) • In generale il sistema consente di allocare le risorse solo se rimane in uno stato sicuro • Algoritmo del banchiere (risorse singole) • Ogni P ha definito un #max di risorse prendibili • Le richieste si considerano nel loro ordine di arrivo, se portano in uno stato non sicuro P viene messo in attesa • Problema: predicibilità delle risorse necessarie, #Pi varia dinamicamente, la disponibilità risorse può mutare (es. guasto) Calcolatori Elettronici, AA 99-2000

  10. Sono marcate tutte le righe di R? DL avoidance (2) • Algoritmo del banchiere per risorse multiple • E vett risorse esistenti P vett risorse prese • A vett ris. Libere E-P=A • Algoritmo per sapere se uno stato è sicuro ( con R matrice richieste) Il sistema entrerà in deadlock poichè nessun processo terminerà non esiste Cerca riga (pocesso) di R che sia  A esiste Scelta a caso una riga, supporre che il suo P termini e le sue risorse siano rese (ovvero sommare la riga ad A) Marcare la riga (processo) no si Lo stato è sicuro Calcolatori Elettronici, AA 99-2000

  11. Deadlock prevention • Si cerca di rendere strutturalmente impossibile il DL, violando una delle 4 condizioni necessarie • Mutua esclusione • Rendere (quando possibile) condivisibili le risorse • Spooler: processo (demone) unico gestore di un device che incamera e accoda le risorse (es stampante) • Non tutti i device possono essere gestiti tramite spooler • Hold&Wait • I P debbono chiedere in anticipo (prima della loro esecuzione) le risorse necessarie, altrimenti vengono sospesi • Difficile conoscere in anticipo tutte le necessità; possibile uso non ottimale delle risorse causa sovradimensionamento richieste • Variante: prima di chiedere risorsa, il P rilascia temporaneamente quelle che possiede, poi cerca di acquisirle tutte in blocco Calcolatori Elettronici, AA 99-2000

  12. Deadlock prevention (2) • Assenza preemption • Praticabile solo in casi molto particolari • Attesa circolare • Assegno ordine numerico alle risorse, ogni processo può detenere una sola risorsa alla volta • Se i P potranno effettuano richieste solo seguendo tale ordine il grafo è acicilico; ad ogni istante un processo non potrà infatti richiedere una risorsa già assegnata • Sono pochi i casi nei quali un ordine soddisfa tutti i processi • L’uso di una sola risorsa alla volta rende impossibili semplici operazioni come copia da disco a nastro Calcolatori Elettronici, AA 99-2000

  13. Deadlock prevention (3) • Two-phase locking (DB) • Cerco di bloccare tutti i record in modo atomico (metto i lock) • Aggiorno i record del DB, poi rilascio i lock • Se vi sono record occupati nella prima fase, rilascio i lock presi e riparto • Applicabile per processi che possono essere fatti ripartire senza problemi (es difficile se ho letto o scritto da rete) • Per le operazioni su DB è facile capire le risorse necessarie in anticipo Calcolatori Elettronici, AA 99-2000

  14. Starvation • Alcuni processi, anche se non in deadlock, non vengono mai serviti (es. gestore di stampe che privilegia il job più corto) • È un problema tipicamente legato alla presenza di politiche di gestione con priorità • Politiche tipo prima arrivato prima servito (FCFS) o round-robin lo evitano Calcolatori Elettronici, AA 99-2000

  15. DL in ambiente distribuito • Le informazioni sono frammentate su più macchine • Origine situazioni di deadlock • Comunicazione: circolarità nel cercare di inviare msg (es per mancanza buffer) • Risorse:condivisione per accesso esclusivo • Strategie di gestione • Ignorare: sempre possibile • Rilevazione e risoluzione: è il più usato • Prevenzione: possibile, soprattutto nei sistemi transazionali • Evitato per costruzione: quasi mai usato causa mancanza di info in anticipo su uso delle risorse Calcolatori Elettronici, AA 99-2000

  16. Rilevazione in amb. distribuito • Strategie di gestione • Normali sistemi: rilevo ed effettuo kill di processi • Sistemi con transazioni: rilevo ed effettuo abort ripristinando stato precedente • Algoritmo centralizzato • Esiste una macchina coordinatrice che raccoglie e fonde i grafi di allocazione di ogni macch. del sistema; se rileva un ciclo ammazza dei processi per spezzarlo • Necessità di msg di aggiornamento • Ogni volta che un grafo si modifica • Periodicamente invio aggiornamento msg precedente • Invio su richiesta del coordinatore • Problemi di falsi deadlock causa ritardi e incoerenze nell’aggiornamento del grafo globale • Necessità di un tempo globale (molto costoso); se si sospetta DL si inviano msg di richiesta info alle macchine interessate con meccanismi di timestamping per avere situazione realmente aggiornata Calcolatori Elettronici, AA 99-2000

  17. Rilevaz. in amb. Distribuito (2) • Algoritmo distribuito • L’algoritmo è invocato quando un P deve attendere per delle risorse • Si genera msg di probe da inviare ai Pi che detengono risorse Msg= (id_P bloccato, id_P mittente del msg, id_P destinatario) • Quando msg arriva, il P ricevente • Se esso stesso è in attesa per altre risorse, invia un msg verso i processi che lo stanno bloccando, mantenendo il primo campo • Se il msg ritorna al primo mittente (il primo campo) esiste un ciclo ovvero DL • Risoluzione • Il P che ha lanciato msg probe si suicida (se ho molti probe contemporaneamente nel sistema si hanno fenomeni di strage) • Ogni P aggiunge il proprio id a msg probe; il primo mittente ha lista di P coinvolti per scegliere quale ammazzare (msg kill) Calcolatori Elettronici, AA 99-2000

  18. Prevenzione in amb. Distribuito • Si cerca un ordinamento nella richiesta e acquisizione delle risorse che renda impossibili i cicli • Sistemi con tempo globale e transazioni (T) • Ogni T ha associato tstart diverso dagli altri • Un P che necessita risorsa detenuta da altro, verifica il suo timestamp, ev se non può bloccarsi si uccide • Wait-die: un P si blocca se e solo se è più vecchio rispetto a quello che lo obbliga ad attendere; i timestamp crescono, assenza di cicli • Variante: un P può attendere solo per P più giovani • In generale è meglio dare priorità ai più vecchi per perdere meno lavoro svolto • Ok per sistemi transazionali che posso essere fatti ripartire in modo sicuro senza side-effect • Wound-wait: si consente ai P più vecchi di fare preemption sui più giovani. I più giovani possono solo mettersi in attesa su quelli più vecchi dopo il loro re-start. Rispetto a wait-die il più giovane non viene ucciso ma messo in attesa Calcolatori Elettronici, AA 99-2000

  19. Valutazione algoritmi detection per sistemi distribuiti • Condizioni da verificare • Tutti i DL debbono essere rilevato in un t finito • Non debbono essere rilevati falsi DL (es problemi ritardi in msg) • Prestazioni algoritmo • t persistenza del DL (intervallo fa detection e risoluzione DL) • Requisiti di memoria e computazionali • Numerosità e dimensione dei msg scambiati • Metodi di analisi • Analitici • Empirici • Tramite simulazione Calcolatori Elettronici, AA 99-2000

More Related