Politecnico di MilanoW.Fornaciari Deadlock Corso di Calcolatori Elettronici AA 1999-2000.

Slides:



Advertisements
Presentazioni simili
Scheduling (Schedulazione) Susanna Pelagatti – Università di Pisa
Advertisements

Gestione della Memoria
Meccanismi di IPC Problemi classici di IPC
Il problem-solving Gianpiero Cabodi e Paolo Camurati Dip. Automatica e Informatica Politecnico di Torino.
1 Introduzione ai calcolatori Parte II Software di base.
Gestione della memoria centrale
Capitolo 3 Risorse e Stallo 3.1. Risorse 3.2. Introduzione
Procedure e funzioni A. Ferrari.
Gestione dei processi A. Ferrari.
Hard disk.
Il Sistema Operativo.
Java: programmazione concorrente con condivisione di memoria
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
Il problema dello stallo
1 Processi e Thread Meccanismi di IPC, Inter Process Communication (1)
1 Processi e Thread Meccanismi di IPC (1). 2 Comunicazioni fra processi/thread Processi/thread eseguiti concorrentemente hanno bisogno di interagire per.
Time Sharing Il termine “Time Sharing” proviene dall'inglese e significa letteralmente “partizione di tempo”. Questa è una tecnica sviluppatasi negli.
Programmazione Concorrente
Realizzazione del file system
Silberschatz, Galvin and Gagne Operating System ConceptsDeadlock Modello del sistema Caratterizzazione dei deadlock Metodi per la gestione dei.
Sincronizzazione fra processi
Deadlock Modello del sistema Caratterizzazione dei deadlock
La Modifica dei Dati in una Base Dati La modifica dei dati contenuti allinterno di una base dati è unoperazione delicata Infatti, ogni potenziale problema.
Politecnico di Milano Algoritmi e Architetture per la Protezione dellInformazione Multichannel Adaptive Information Systems Paolo Maistri Dipartimento.
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 10/03/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Risorse e Stallo.
Ricerca della Legge di Controllo
Corso di Programmazione Concorrente Stallo Valter Crescenzi nz.
Struttura dei sistemi operativi (panoramica)
Deadlock.
Software di base Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità di alto livello Es.organizzazione dei.
memoria gestita staticamente:
Sincronizzazione fra thread
Sistemi Operativi SCHEDULING DELLA CPU.
Strutture dei sistemi di calcolo Funzionamento di un sistema di calcolo Struttura di I/O Struttura della memoria Gerarchia delle memorie Architetture di.
1 LINUX: struttura generale The layers of a UNIX system. User Interface.
Introduzione ai Sistemi Operativi
Supporto per servizi di File Hosting Presentazione di progetto per lesame di Reti di Calcolatori LS Valerio Guagliumi
Progetto Di Uninfrastruttura Che Permetta La Modifica Di Dati Condivisi Distribuiti Su Più Nodi Reti di calcolatori L-S Gozzi Daniele
Reti di Calcolatori L-S Un Sistema Decentrato di Allocazione del Carico per Applicazioni di Calcolo Distribuito Mauro Bampo.
Distributed File System Service Dario Agostinone.
Concorrenza e Sincronizzazione di Thread e Processi
INTRODUZIONE l sistema operativo è il primo software che lutente utilizza quando accende il computer; 1)Viene caricato nella memoria RAM con loperazione.
File system distribuito transazionale con replicazione
Costruzione di una semplice Agenda telefonica Elettronica Esercizio sull'uso delle principali system call Unix.
1 Il Sistema Operativo: Esempio n Le operazioni effettuate sembrano abbastanza semplici ma … n Provocano una serie di eventi in cui vengono coinvolte sia.
Sistema Operativo (Software di base)
1 Il Buffer Cache Unix (Bach: the Design of the Unix Operating System (cap: 3)
Prima di iniziare… Durata attività: due lezioni frontali + una lezione laboratorio + compiti per casa Prerequisiti: elementi base architettura dei calcolatori.
I processi.
Progetto Message Queues Service Olivelli Enrico Corso di Reti di Calcolatori LS A.A
Il nucleo del Sistema Operativo
1 Esercitazione Sistemi distribuiti: sistemi che risisedono su più calcolatori interconnessi da una rete di comunicazione Algoritmi distribuiti: programmi.
Tassonomia dei Sistemi Distribuiti Antonio D'Angelo.
BDE-TRANS 1 Gestione di transazioni concorrenti. BDE-TRANS 2 Lock Principio: –Tutte le letture sono precedute da r_lock (lock condiviso) e seguite da.
Gestione del processore (Scheduler)
Introduzione Cos’è un sistema operativo ?. Hardware Sistema Operativo Applicazioni È il livello di SW con cui interagisce l’utente e comprende programmi.
MCSA Mobile Code System Architecture Infrastruttura a supporto della code mobility Pierfrancesco Felicioni Reti di Calcolatori L.S. 2005/2006.
Informatica Lezione 8 Scienze e tecniche psicologiche dello sviluppo e dell'educazione Anno accademico:
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
Progetto di un Group Communication System Reti di Calcolatori LS A.A Giampaolo Capelli.
Progetto di un sistema di comunicazione di gruppo con multicast causale Reti di Calcolatori L-S Marco Canaparo Matricola
Reti di calcolatori LS1 Service Middleware Reti di calcolatori LS progetto di Andrea Belardi Infrastruttura dedicata alla gestione di servizi disponibili.
1 Risorse e Stallo 2 Risorse (1) Esempi di risorse –stampanti –nastri –tabelle I processi devono accedere alle risorse in un ordine ragionevole Supponiamo.
Informatica Generale Marzia Buscemi
Pari Gioia Reti Di Calcolatori LS A.A. 2003/04.
Gestione delle periferiche. Le periferiche sono dispositivi che permettono le operazioni di input/output.
Il Sistema Operativo Processi e Risorse
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi Algoritmi distribuiti Lezione n°9.
Prof.ssa Rossella Petreschi Lezione del 17 /10/2014 del Corso di Algoritmica Lezione n°5.
Transcript della presentazione:

Politecnico di MilanoW.Fornaciari Deadlock Corso di Calcolatori Elettronici AA

W.FornaciariCalcolatori Elettronici, AA Sommario Le risorse Condizioni necessarie per il deadlock Modello tramite grafo orientato Deadlock Detection Deadlock Avoidance Deadlock Prevention Starvation Deadlock in ambiente distribuito (cenni)

W.FornaciariCalcolatori Elettronici, AA 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 Richiesta Uso risorsa Rilascio risorsa Attesa Processo bloccato, ev. Effettua diversi tentativi

W.FornaciariCalcolatori Elettronici, AA 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 dallordinamento temporale delle richieste

W.FornaciariCalcolatori Elettronici, AA 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 RisorsaProcessoRisorsaProcesso Il processo è bloccato, in attesa delle risorsaIl processo detiene la risorsa R1 R2 R3 P1 P2 P3

W.FornaciariCalcolatori Elettronici, AA Gestione deadlock Ignorare:non gestito.Trade-off fra costi ripristino e danni possibili; applicabile se poco frequente e non mission 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 P 1, P n m classi risorsedi cardinalità E i (1 i m) E [E 1,... E i,... E m ] vettore delle risorse esistenti A [A 1,... A i,... A m ]vettore delle risorse disponibili C [c ij ] nxm matrice di allocazione corrente c ij numero di istanze di classe j detenute da P i R [r ij ] nxm matrice delle richieste, r ij risorse di classe j chieste da P i

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

W.FornaciariCalcolatori Elettronici, AA Recovery 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 allistante 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 P i del ciclo Candidati: P ripristinabili senza conseguenze (es compilatori), P che hanno svolto poco lavoro, P coinvolti in più cicli

W.FornaciariCalcolatori Elettronici, AA 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, #P i varia dinamicamente, la disponibilità risorse può mutare (es. guasto)

W.FornaciariCalcolatori Elettronici, AA DL avoidance (2) Algoritmo del banchiere per risorse multiple E vett risorse esistentiP vett risorse prese A vett ris. Libere E-P=A Algoritmo per sapere se uno stato è sicuro ( con R matrice richieste) Cerca riga (pocesso) di R che sia A 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) Sono marcate tutte le righe di R? Il sistema entrerà in deadlock poichè nessun processo terminerà Lo stato è sicuro no esiste non esiste si

W.FornaciariCalcolatori Elettronici, AA 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

W.FornaciariCalcolatori Elettronici, AA 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 Luso di una sola risorsa alla volta rende impossibili semplici operazioni come copia da disco a nastro

W.FornaciariCalcolatori Elettronici, AA Deadlock prevention (3) Two-phase locking (DB) 1.Cerco di bloccare tutti i record in modo atomico (metto i lock) 2.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

W.FornaciariCalcolatori Elettronici, AA 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

W.FornaciariCalcolatori Elettronici, AA 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

W.FornaciariCalcolatori Elettronici, AA 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 nellaggiornamento 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

W.FornaciariCalcolatori Elettronici, AA Rilevaz. in amb. Distribuito (2) Algoritmo distribuito Lalgoritmo è invocato quando un P deve attendere per delle risorse Si genera msg di probe da inviare ai P i 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)

W.FornaciariCalcolatori Elettronici, AA 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 t start 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

W.FornaciariCalcolatori Elettronici, AA 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