190 likes | 525 Views
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.
E N D
Deadlock Corso di Calcolatori Elettronici AA 1999-2000 W.Fornaciari
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
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
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
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
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 im) 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
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 Bii, 1 im 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
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
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
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
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
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
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
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
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
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
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
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
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