Stallo di processi. Definizione del problema e modellizzazione Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino

Documenti analoghi
Deadlock (stallo) Risorse. Uso delle risorse. Parte III. Deadlock

Sistemi Operativi mod. B. Sistemi Operativi mod. B A B C A B C P P P P P P < P 1, >

Deadlock (stallo) Parte III. Deadlock

Sincronizzazione. Soluzioni hardware Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino

Ordinamento degli eventi. Lezione 11. Osservazioni. Relazione verificato prima. Cenni ai sistemi operativi distribuiti 3. Coordinazione distribuita

SISTEMI OPERATIVI. Deadlock (blocco critico) Domande di verifica. Luca Orrù Centro Multimediale Montiferru 04/06/2007

Sistemi Operativi II Corso di Laurea in Ingegneria Informatica

Problemi, istanze, soluzioni

Appunti del corso di Informatica 1 (IN110 Fondamenti) 7 Grafi e alberi: introduzione

UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa 1 Seconda prova intermedia 17 giugno 2013

Grafi (non orientati e connessi): minimo albero ricoprente

I THREAD O PROCESSI LEGGERI

Grafi pesati Minimo albero ricoprente

Progetto NoiPA per la gestione giuridicoeconomica del personale delle Aziende e degli Enti del Servizio Sanitario della Regione Lazio

1. Che cos è la multiprogrammazione? Si può realizzare su un sistema monoprocessore? 2. Quali sono i servizi offerti dai sistemi operativi?

Importazione dati. e/fiscali Spesometro - Rel con gestionale e/satto. Gestionale e/satto

Sommario. Processi e Programmi. Che cosa e un Processo? Lezione 5 Processi e Threads

Manuale operativo Registro di Classe

Cammini minimi. Definizioni. Distanza fra vertici. Proprietà dei cammini minimi. Algoritmi e Strutture Dati

Esercizi proposti 10

20 Tecnica del sequenziatore

LA SINCRONIZZAZIONE TRA PROCESSI

Grafi: visita generica

Operations Management

LE RETI LOCALI A BUS 1. In una rete locale a bus tutti i computer sono collegati da un unico canale di

Progettazione di Algoritmi

Introduzione alle macchine a stati (non definitivo)

Firmware Division. Prof. Alberto Borghese Dipartimento di Informatica Università degli Studi di Milano

Introduzione. Il routing permette la comunicazione tra due nodi differenti anche se non sono collegati direttamente

Manutenzione periodica al PIANO DEI CONTI

Modi di esecuzione user / kernel

Gestione della memoria. Introduzione Swapping Allocazione contigua Paginazione

Rappresentazione con i diagrammi di flusso (Flow - chart)

Struttura Logica del S.O:

NOTE OPERATIVE DI RELEASE

Sistemi Operativi. Sistemi I/O SISTEMI DI INPUT/OUTPUT. Hardware di I/O. Interfaccia di I/O per le applicazioni. Sottosistema per l I/O del kernel

Introduzione. Coordinazione Distribuita. Ordinamento degli eventi. Realizzazione di. Mutua Esclusione Distribuita (DME)

Coordinazione Distribuita

SOMMARIO. DIAGRAMMI DI ATTIVITÀ INGEGNERIA DEL SOFTWARE Università degli Studi di Padova. Introduzione. Concetti base.

Ricerca Operativa e Logistica Dott. F.Carrabs e Dott.ssa M.Gentili

Introduzione Concetti Generali Pratica su Access Link utili. ECDL - Database. European Computer Driving Licence - Modulo 5 - Database LEZIONE 1

Concetti di base. Scheduling della CPU. Diagramma della durata dei CPU-burst. Sequenza Alternata di CPU Burst e I/O Burst

ENAIP Trentino Centro Formazione Professionale Alberghiera Riva del Garda

UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Matlab: esempi ed esercizi

Istituto Tecnico Commerciale Statale e per Geometri E. Fermi Pontedera (Pi)

Automi Automi finiti: macchine a stati su sistemi di transizioni finiti Modellare con TS e specificare con automi: si usa lo stesso tipo di

Manuale d uso dell interfaccia di voto

UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa 1 Seconda prova intermedia 20 giugno 2014

DETERMINAZIONE DELLE ESPOSIZIONI SCADUTE/SCONFINANTI F27_9. Generalità

In molte applicazioni sorge il problema di sapere in quanti modi possibili si può presentare un certo fenomeno.

La piattaforma Moodle al servizio del Test di Accertamento dei Requisiti Minimi (TARM) per l ingresso in Università

ESERCIZIO SincrAmbGlob-1

Le mappe di Karnaugh

Cos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia

Note sulla probabilità

PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE

+ - Alimentazione Da 8VDC/ MAX 12VDC

Certificazione beneficiari bonifici

Programmazione

Università degli Studi di Padova - Facoltà di Scienze MM.FF.NN. - Corso di Laurea in Informatica

Modelli di interazione tra processi

Backup e Disaster Recovery In Cloud. Basso impatto, elevato valore. 100% Cloud 100% Canale 100% Italia

Analizzare in termini quantitativi significa basarsi su dati e non su idee o ipotesi

Appunti del corso di Informatica 1 (IN110 Fondamenti) 2 Algoritmi e diagrammi di flusso

PROCEDURA MAPPATURA SINISTRI

Diagrammi a blocchi 1

PIANO DI LAVORO DI ECONOMIA AZIENDALE

2.3 Cammini ottimi. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

Dal costo del prodotto al prezzo di vendita.

Linguaggio C: introduzione

Sincronizzazione e coordinamento nel distribuito

Cesare Tomassetti, Dottore Commercialista e Revisore Legale in Civitanova Marche

Procedura aggiornamento firmware

Costruzione di espressioni regolari 4

BASI DATI INFORMATICA

SICUREZZA E SALUTE SUL LAVORO. Comprendere le componenti psicologiche della percezione del rischio

Ratei e Risconti PREMESSA

Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE. D. Talia - UNICAL. Sistemi Operativi 6.1

PROGRAMMAZIONE STRUTTURATA

A UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa 1 Seconda prova intermedia 15 giugno 2012

Hardware, software e periferiche. Facoltà di Lettere e Filosofia anno accademico 2008/2009 secondo semestre

Sistemi Operativi SCHEDULING DELLA CPU

Il file system. Le caratteristiche di file, direttorio e partizione sono del tutto indipendenti dalla natura e dal tipo di dispositivo utilizzato.

Esempi di attribuzione dei seggi

Il Break Even Point (b.e.p.)

STAMPAGGIO PER COMPRESSIONE o COMPRESSION MOLDING

La Rappresentazione dell Informazione

I Processi. Il Concetto di Processo

Procedura operativa per la gestione della funzione di formazione classi prime

Controllo di Gestione. la Gestione della tua Azienda sempre sotto Controllo!

ISTITUTO STATALE D ISTRUZIONE SUPERIORE FERRARIS - BRUNELLESCHI EMPOLI Anno scolastico 2015/2016

Elezioni comunali Esempi di attribuzione dei seggi

Introduzione al Calcolo Scientifico

Reti di Calcolatori:

Dispensa di Informatica II.1

RISOLUZIONE N. 136/E QUESITO

Guida alla variazione dei dati e alla compilazione della Scheda per il mantenimento requisiti di iscrizione nel Registro regionale

I Diagrammi di Flusso OO

Quadro di Riferimento di Matematica

Capitolo 9. Esercizio 9.1. Esercizio 9.2

Transcript:

Stallo di processi Definizione del problema e modellizzazione Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino

2 Stallo (deadlock) Condizione di stallo (deadlock) Un P/T richiede una risorsa non disponibile, entra in uno stato di attesa e l attesa non termina più Lo stallo consiste quindi in Un insieme di P/T attendono tutti il verificarsi di un evento che può essere causato solo da un altro processo dello stesso insieme Deadlock implica starvation non il contrario La starvation di un P/T implica che tale P/T attende indefinitamente ma gli altri P/T possono procedere in maniera usuale e non essere in deadlock Tutti i P/T in deadlock sono in starvation

3 Condizioni per il verificarsi di un deadlock Condizioni Mutua esclusione (mutual exclusion) Possesso e attesa (hold and wait) Impossibilità di prelazione (no preemption) Attesa circolare (circular wait) Descrizione Deve esserci almeno una risorsa non condivisibile. La prima richiesta è soddisfatta, le successive no. Un processo mantiene almeno una risorsa e attende per aquisire almeno un altra risorsa. Non esiste il diritto di prelazione per almeno una risorsa. Almeno una risorsa non può essere sottratta ma solo rilasciata da chi la utilizza. Esiste un insieme {P 1,, P n } di P tale che P 1 attende una risorsa tenuta da P 2, P 2 attende una risorsa tenuta da P 3,, P n attende una risorsa tenuta da P 1. Condizioni necessarie ma non sufficienti Devono verificarsi contemporaneamente Sono distinte ma non indipendenti

4 Sommario Tecniche di modellizzazione Strategie di gestione Ignorare Gestire a posteriori Rilevare Ripristinare Gestire a priori Prevenire Evitare Strategia dello struzzo Si ignora il problema supponendo la probabilità di un deadlock nel sistema sia bassissima Metodo utilizzato da molti sistemi operativi, Windows e Unix inclusi Tanto meno appropriato quanto più aumentano la concorrenza e la complessità dei sistemi... e nel caso si sia verificato uno stallo... Termine simile ma tecnica diversa

5 Modellizzazione Grafo di allocazione delle risorse G = (V, E) Permette di descrivere e analizzare deadlock L insieme dei vertici V è suddiviso in P = {P 1, P 2,, P n } Insieme dei processi del sistema I processi sono indistinguibili e in numero indefinito Ogni processo utilizza una risorsa facendone accesso mediante protocollo standard costituito da Richiesta Utilizzo Rilascio

6 Modellizzazione R = {R 1, R 2,, R m } Insieme delle risorse del sistema Le risorse sono suddivise in classi (tipi) Ogni risorsa di tipo R i ha W i istanze Tutte le istanze di una classe sono identiche: una qualsiasi istanza soddisfa una richiesta per quel tipo di risorsa L insieme degli archi E è suddiviso in Archi di richiesta P i R j, i.e., da processo a risorsa Archi di assegnazione R j P i, i.e., da risorsa a processo Se così non fosse occorrerebbe riformulare la suddivisione in classi

7 Modellizzazione Vertici: Processi P 1, P 2, P 3 Vertici: Risorse R 1 e R 3 con 1 istanza P 1 ha ottenuto R 2 ed è in attesa di R 1 Archi: Assegnazione P 1 ha ottenuto R 2 Archi: Richiesta P 2 richiede R 3 Vertici: Risorse R 2 con 2 e R 4 con 3 istanze

8 Modellizzazione In alcuni casi è utile semplificare il grafo di allocazione in un grafo di attesa Si eliminano i vertici di tipo risorsa Si compongono gli archi tra i vertici rimanenti Utilizzo e considerazioni simili al grafo di assegnazione

9 Modellizzazione In alcuni casi è utile estendere il grafo di allocazione in un grafo di rivendicazione Si aggiungono al grafo di allocazione delle risorse degli archi di reclamo, di rivendicazione o di intenzione di richiesta (claim edge) P i R j Indica che il processo P j richiederà (in futuro) la risorsa R j È rappresentato mediante linea tratteggiata

10 Tecniche di rilevazione e ripristino Si permette al sistema di entrare in uno stato di deadlock per poi intervenire L algoritmo richiede quindi due passi Rilevazione (della condizione di stallo) Il sistema esegue un algoritmo di rilevazione dello stallo all interno del sistema (detection) Ripristino (del sistema) Se esiste uno stallo si applica una strategia di ripristino (recovery)

11 Rilevazione: strategie Dato un grafo di assegnazione è possibile verificare la presenza di uno stallo verificando la presenza di cicli Se il grafo non contiene cicli allora non c è deadlock Se il grafo contiene uno o più cicli allora C è sicuramente deadlock, se esiste solo un istanza per ciascun tipo di risorsa C è la possibilità di deadlock, se esiste più di un istanza per tipo di risorsa La presenza di cicli è condizione necessaria ma non sufficiente nel caso di istanze multiple Nei casi di istanze multiple si veda l Algoritmo del Banchiere

12 Esempio Processi P 1, P 2, P 3 Risorse R 1 e R 2 con una istanza Esistenza di un ciclo Condizione di stallo P 1 attende P 2 P 2 attende P 1 R 1 P 1 P 2 R 2 P 3

13 Esempio Processi P 1, P 2, P 3, P 4 Risorse R 1 e R 2 con due istanze Esistenza di un ciclo Non esite stallo P 2 e P 4 possono terminare P 1 può acquisire R 1 e terminare P 3 può acquisire R 2 e terminare

14 Esempio Processi P 1, P 2, P 3 Risorse R 1 e R 3 con una istanza R 2 con due istanza R 4 con tre istanze Esistenza di due cicli Condizione di stallo P 1 attende R 1 P 2 attende R 3 P 3 attende R 2

15 Rilevazione: costi Ogni fase di rilevazione ha un costo Determinazione dei ciclo nel grafo La presenza di cicli può essere verificata mediante visita in profondità Un gafo è aciclico se un visita in profondità non incontra archi etichettati black (archi verso vertici grigi) Se si raggiunge un vertice grigio, ovvero si attraversa un arco backward, si ha un ciclo Il costo temporale di tale operazione è pari a ( V + E ) per rappresentazioni con lista di adiacenza ( V 2 ) per rappresentazioni con matrice di adiacenza

16 Rilevazione: costi Quando spesso si effettuano le rilevazioni? Ogni volta che un processo fa una richiesta non soddisfatta immediatamente A intervalli di tempo fissi, e.g., ogni 30 minuti A intervalli di tempo variabili, e.g., quando l utilizzo della CPU scende sotto una certa soglia

17 Ripristino Per ripristinare un corretto funzionamento sono possibili diverse strategie Terminare tutti i processi in stallo Terminare un processo alla volta tra quelli in stallo Si seleziona un processo, si termina, si ri-controlla la condizione di stallo, eventualmente iterando Prelazionare le risorse a un processo alla volta tra quelli in stallo Si seleziona un processo, si prelazionano le sue risorse, se ne fa il roll-back, si ri-controlla la condizione di stallo, eventualmente iterando

18 Ripristino Strategia Terminare tutti i processi in stallo Terminare un processo alla volta tra quelli in stallo Prelazionare le risorse a un processo alla volta Descrizione Complesssità: semplice causare inconsistenze sulle basi dati Costo: molto più alto di quanto potrebbe essere strettamente necessario Complessità: alta in quanto occorre selezionare l ordine delle vittime con criteri oggettivi (priorità, tempo di esecuzione effettuato e da effettuare, numero risorse possedute, etc.) Costo: elevato, i.e., dopo ogni terminazione occorre riverificare la condizione di stallo Complessità: occorre effettuare il rollback, i.e., fare ritornare il processo vittima a uno stato sicuro Costo: la selezione di una vittima deve minimizzare il costo della prelazione

19 Conclusioni Rilevazione e ripristino sono operazioni Complesse logicamente Onerose temporalmente In ogni caso se un processo richiede molte risorse è possibile causare starvation Lo stesso processo viene ripetutamente scelto come vittima e incorre in rollback ripetuti È opportuno inserire il numero di terminazioni tra i parametri di scelta della vittima, facendone aumentare la priorità o simili