Corso di Programmazione Concorrente Stallo Valter Crescenzi nz.

Slides:



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

STRUTTURA DEL SISTEMA OPERATIVO
Premessa: si assume di aver risolto (correttamente
U.V.P. la base del Marketing
Meccanismi di IPC Problemi classici di IPC
                      Insertion-Sort
Gestione della memoria centrale
Capitolo 3 Risorse e Stallo 3.1. Risorse 3.2. Introduzione
Gestione dei processi A. Ferrari.
Linguaggi di programmazione
Java: programmazione concorrente con condivisione di memoria
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.
Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica – Nuovo Ordinamento Protocolli.
Petri Nets Controllo Supervisivo Mutua esclusione generalizzata (GMEC)
Lez. 31 Universita' di Ferrara Facolta' di Scienze Matematiche, Fisiche e Naturali Laurea Specialistica in Informatica Algoritmi Avanzati Programmazione.
Time Sharing Il termine “Time Sharing” proviene dall'inglese e significa letteralmente “partizione di tempo”. Questa è una tecnica sviluppatasi negli.
Concetti di base della Programmazione Concorrente.
Silberschatz, Galvin and Gagne Operating System ConceptsDeadlock Modello del sistema Caratterizzazione dei deadlock Metodi per la gestione dei.
Deadlock Modello del sistema Caratterizzazione dei deadlock
Scheduling della CPU Concetti fondamentali Criteri di scheduling
Scheduling della CPU Concetti di base Criteri di scheduling
PIANO DI MARKETING.
La Modifica dei Dati in una Base Dati La modifica dei dati contenuti allinterno di una base dati è unoperazione delicata Infatti, ogni potenziale problema.
Sistemi basati su conoscenza Conoscenza e ragionamento Prof. M.T. PAZIENZA a.a
Politecnico di MilanoW.Fornaciari Deadlock Corso di Calcolatori Elettronici AA
VALUTAZIONE DEI RISCHI
Risorse e Stallo.
Gestione dei processi Un sistema operativo multitasking è in grado di gestire più processi Un processo corrisponde ad un programma in esecuzione. Un programma.
Corso di Programmazione Concorrente Problemi Classici Valter Crescenzi nz.
Programmazione Concorrente: Concetti di Base Valter Crescenzi Corso di Programmazione Concorrente.
Deadlock.
Il servizio tra tradizione e prospettive future. Il complesso delle risorse umane, finanziarie, documentarie che la biblioteca può mettere a disposizione.
Sincronizzazione fra thread
Sistemi Operativi SCHEDULING DELLA CPU.
Introduzione ai Sistemi Operativi
INTRODUZIONE l sistema operativo è il primo software che lutente utilizza quando accende il computer; 1)Viene caricato nella memoria RAM con loperazione.
Esercizio 10.* Un cassiere vuole dare un resto di n centesimi di euro usando il minimo numero di monete. a) Descrivere un algoritmo goloso per fare ciò.
Fondo Jeremie, cos’è? Duemila euro te li regala Regione Lombardia attraverso il Fondo sociale europeo Altri duemila euro te li dà la banca a un tasso.
L’autovalutazione della scuola
IMPIEGO DEI FONDI L'importanza degli intermediari finanziari nel sistema economico la si rileva in particolar modo quando analizziamo le operazioni di.
Informatica Lezione 7 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
Costruzione di una semplice Agenda telefonica Elettronica Esercizio sull'uso delle principali system call Unix.
I processi.
1 Esercitazione Sistemi distribuiti: sistemi che risisedono su più calcolatori interconnessi da una rete di comunicazione Algoritmi distribuiti: programmi.
Sistemi e Tecnologie Informatiche Verifica di correttezza di un programma.
Estratto dalle slide di Informatica Industriale - DU - 10
LA MONETA.
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)
intese abusi della posizione dominante
Fare clic per modificare lo stile del titolo DOTE Verona Rete Ferroviaria Italiana.
Informatica Lezione 8 Scienze e tecniche psicologiche dello sviluppo e dell'educazione Anno accademico:
Caratteristiche Utilità Controllo di Gestione COGES segue pagina... …l’analisi completa della tua azienda.
1 Risorse e Stallo 2 Risorse (1) Esempi di risorse –stampanti –nastri –tabelle I processi devono accedere alle risorse in un ordine ragionevole Supponiamo.
Come risolvere il cubo di RUBIK
Il Business Plan La Business idea concerne
/ Analisi anomalie bancarie Anatocismo bancario Assicurazioni RC AUTO Assicurazioni Casa Assicurazioni professionali Assicurazioni.
Il business plan come strumento strategico nel settore agricolo Paola Mazzurana Dipartimento di Scienze Economiche e Statistiche Università degli Studi.
L’effetto delle asimmetrie informative sul mercato del credito Fausto Panunzi.
Dal problema al programma – ciclo di sviluppo del software La scrittura del programma è solo una delle fasi del processo di sviluppo di un'applicazione.
1 Competizione e cooperazione pag. 88 Cap.3 - Esecuzione concorrente di processi 1.
1 Ubi – Banca Popolare Commercio e Industria Pavia, 9 Maggio 2014 Presentazione offerta per i dipendenti dell’Università di Pavia Enrico Invernizzi.
Corso di comunicazione efficace Carlo Bosna
ALGORITMI, LINGUAGGI E PROGRAMMI Facoltà di Lingue e Letterature Straniere Corso di laurea in Relazioni Pubbliche.
Il Sistema Operativo Processi e Risorse
Lezione n. Parole chiave: Corso di Laurea: Insegnamento: Docente: A.A Salvatore Cuomo La ricorsione 15 Approccio ricorsivo, esercizi sulla.
Prof.ssa Rossella Petreschi Lezione del 17 /10/2014 del Corso di Algoritmica Lezione n°5.
Transcript della presentazione:

Corso di Programmazione Concorrente Stallo Valter Crescenzi nz

Assunzione di Progresso Finito Tutti i processori virtuali hanno una velocità finita non nulla Questa assunzione è lunica che si può fare sui processori virtuali e sulle loro velocità relative

Starvation & Deadlock Esistono due diverse situazioni che possono invalidare lassunzione di progresso finito starvation: quando un f.d.e. rimane in attesa di un evento che pure si verifica infinite volte un sistema di f.d.e. che garantisce contro questa evenienza si dice che gode della proprietà di fairness deadlock (o stallo): quando due o più f.d.e. rimangono in attesa di eventi che non potranno mai verificarsi a causa di condizioni cicliche nel possesso e nella richiesta di risorse esempio classico: un f.d.e. P 1 possiede una risorsa R a e richiede una risorsa R b già posseduta da un altro f.d.e. P 2 ; questultimo a sua volta richiede luso di R a

Esempio di Stallo Nessun pulmino può completare lattraversamento Ciascuno pulmino attende che il pulmino che gli blocca la strada completi lattraversamento e liberi lincrocio Sono tutti in attesa di un evento che non può verificarsi

Condizioni per lo Stallo (di Coffman) Affinché si manifesti uno stallo, devono verificarsi tutte le seguenti condizioni Condizione di mutua-esclusione le risorse condivise sono seriali Condizione di incrementalità delle richieste i processi richiedono le risorse una alla volta Condizione di non-prerilasciabilità le risorse non sono prerilasciabili Condizione di attesa circolare >>

Grafo di Allocazione delle Risorse (Holt) Un formalismo molto semplice per rappresentare la situazione di più f.d.e. e delle risorse che richiedono N.B. Utile in caso di risorse seriali P1P1 RaRa P1P1 RaRa P 1 richiede R a P 1 possiede R a

Identificazione dello Stallo Dato un grafo di allocazione delle risorse, lo stallo è in atto quando il grafo contiene dei cicli Attesa circolare tra due f.d.e. e due risorse P1P1 RaRa P2P2 RbRb possiede richiede

Esempio di Attesa Circolare RaRa RbRb RcRc RdRd P1P1 P2P2 P3P3 P4P4 P1P1 RaRa RdRd P2P2 RbRb RcRc P4P4 P3P3

Tecniche di Gestione dello Stallo Fuga dallo stallo si rifiutano le richieste di risorse che causano o potrebbero causare lo stallo >> Algoritmo del Banchiere Riconoscimento e risoluzione dello stallo si analizza il grafo di allocazione delle risorse per rilevare eventuali stalli in atto quindi tecniche di risoluzione Prevenzione dello stallo si cerca di prevenire lo stallo invalidando una delle condizioni di Coffman

Fuga dallo Stallo Strategia conservativa: si ammette la possibilità di rifiutare (posticipare) alcune richieste Consiste nel mantenersi uno stato sicuro nellallocazione delle risorse Lo stato è sicuro se non si è in stallo si è in grado di soddisfare in un tempo finito tutte le richieste non ancora evase Dijkstra propose un algoritmo di fuga dello stallo noto come Algoritmo del Banchiere

Algoritmo del Banchiere Facciamo riferimento al caso in cui si gestisce una sola tipologia di risorse indivisibili (pagine di memoria, stampanti, euro) Tuttavia è possibile generalizzare lalgoritmo del banchiere al caso di più tipologie di risorse Un banchiere (gestore della risorsa) concede prestiti (risorse) ai propri clienti (f.d.e.)

Algoritmo del Banchiere (Singola Risorsa) Regole osservate dal Banchiere ogni cliente dichiara in anticipo il proprio fido la cassa iniziale della banca è capace di coprire il massimo fido i clienti si impegnano a restituire il prestito in un tempo finito, ma possono aver bisogno di raggiungere il tetto del fido prima di cominciare a farlo il banchiere può temporaneamente rifiutare un prestito se ritiene che in seguito alla concessione potrebbe non riuscire a garantire in un tempo finito il fido di tutti i clienti

Esempio: Algoritmo del Banchiere (1) Il banchiere è in uno stato sicuro perché può soddisfare le potenziali richieste di A Quando questo termina sarà possibile (con i 10 rientrati dal suo fido) soddisfare gli altri Prestito attuale FidoPotenziale Richiesta Cliente A8102 Cliente B484 Cliente C363 Cassa = 2

Esempio: Algoritmo del Banchiere (2) Se A chiede uno od anche due, il banchiere concorda il prestito. Infatti… Prestito attuale FidoPotenziale Richiesta Cliente A8102 Cliente B484 Cliente C363 Cassa = 2

Esempio: Algoritmo del Banchiere (3) Da questo momento A, in un tempo finito, può solo restituire il prestito Prestito attuale FidoPotenziale Richiesta Cliente A10 0 Cliente B484 Cliente C363 Cassa = 0

Esempio: Algoritmo del Banchiere (4) Se C chiede uno, il banchiere rifiuta il prestito. Altrimenti… Prestito attuale FidoPotenziale Richiesta Cliente A8102 Cliente B484 Cliente C363 Cassa = 2

Esempio: Algoritmo del Banchiere (5) Stato non sicuro: non può più soddisfare leventuale richiesta di alcun cliente Pericolo di stallo: tutti possono cominciare a chiedere ma nessuno restituisce Prestito attuale FidoPotenziale Richiesta Cliente A8102 Cliente B484 Cliente C462 Cassa = 1

Esempio: Algoritmo del Banchiere (6) Altro stato non sicuro: anche se A può concludere il prestito con lunità in cassa, il suo fido non basta a coprire le potenziale richieste degli altri clienti Prestito attuale FidoPotenziale Richiesta Cliente A121 Cliente B484 Cliente C363 Cassa = 1

Problemi della Tecnica Basata sulla Fuga dallo Stallo Il problema principale è che si tratta di un approccio cooperativo e conservativo: cooperativo: i processi devono specificare in anticipo il numero massimo di unità di risorse che intendono consumare conservativo: pur di non correre il pericolo di stallo, vengono rifiutate richieste che non necessariamente conducono allo stallo; alcune risorse potrebbero risultare sotto-utilizzate Esercizio: implementare lalgoritmo del banchiere.

Riconoscimento e Risoluzione dello stallo Strategia ottimistica: non si prendono precauzioni contro lo stallo Si rilevano le situazioni di stallo che possono verificarsi ad esempio cercando cicli nel grafo di allocazione delle risorse Quindi, risoluzione dello stallo eliminando uno dei f.d.e. coinvolti e causandone il rilascio forzato delle risorse tecniche di rollback: alcuni esecutori possono supportare il disfacimento delle operazioni di un f.d.e.

Prevenzione dello Stallo Invalidiamo una delle condizioni di Coffman alla volta Condizione di mutua-esclusione le risorse condivise sono seriali Condizione di incrementalità delle richieste i f.d.e. richiedono le risorse incrementalmente Condizione di non-prerilasciabilità le risorse non sono prerilasciabili Condizione di attesa circolare Per la prima cè poco da fare: la serialità è una caratteristica intrinseca della risorsa

Invalidare lIncrementalità delle Richieste Le risorse utilizzate vengono richieste atomicamente: o si ottengono tutte o nessuna Semplice, ma almeno due grandi svantaggi: è necessario la cooperazione dei f.d.e. che devono richiedere tutte le risorse in anticipo si rischia che una risorsa risulta utilizzata, complessivamente, solo per una piccola frazione del tempo in cui rimane allocata al f.d.e.

Invalidare la Non-Prerilasciabilità Tutte le volte che un f.d.e. si vede rifiutare una richiesta di risorsa, deve rilasciare tutte quelle già ottenute e ricominciare Svantaggi: costi intrinseci del prerilascio forzato degrado di rendimento complessivo non applicabile a risorse non prerilasciabili

Invalidare lAttesa Circolare Si adotta uno schema di allocazione delle risorse che impedisce la creazione di cicli nel grafo di allocazione Allocazione gerarchica delle risorse: si impone un ordinamento totale delle risorse ad es.: R a <R b <R c <R d <R e <… i f.d.e. devono richiedere le risorse rispettandone lordinamento gerarchico Lo svantaggio principale è la possibile sottoutilizzazione delle risorse

Un pò di Sano Realismo Come nel caso più generico della gestione dellinterferenza, anche per la gestione dello stallo la strategia più conveniente dipende ampiamente dal contesto di riferimento scenario più comune gli stalli sono rari i costi delle tecniche di fuga, rilevamento, e prevenzione dello stallo sono ritenuti inaccettabili strategia che va per la maggiore: non fare nulla scenari più particolari lo stallo ha conseguenze inaccettabili lesecutore supporta il disfacimento delle operazioni risultano applicabili anche strategie più sofisticate