1 Risorse e Stallo 2 Risorse (1) Esempi di risorse –stampanti –nastri –tabelle I processi devono accedere alle risorse in un ordine ragionevole Supponiamo.

Slides:



Advertisements
Presentazioni simili
Linguaggio C e C++.
Advertisements

Meccanismi di IPC Problemi classici di IPC
Gestione della memoria centrale
Capitolo 3 Risorse e Stallo 3.1. Risorse 3.2. Introduzione
Calcolo del minimo comune multiplo (m.c.m.) Luigi Sante
Requisiti precedenti Contenuti Verifiche Bibliografia Maura Zini.
Gestione della memoria
Procedure e funzioni ricorsive
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.
Programmazione Concorrente
RB-alberi (Red-Black trees)
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
1 Istruzioni, algoritmi, linguaggi. 2 Algoritmo per il calcolo delle radici reali di unequazione di 2 o grado Data lequazione ax 2 +bx+c=0, quali sono.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Ordinamenti ottimi.
Fondamenti di Informatica II Ingegneria Informatica / Automatica (A-I) Meccanica Prof. M.T. PAZIENZA a.a – 3° ciclo.
Politecnico di MilanoW.Fornaciari Deadlock Corso di Calcolatori Elettronici AA
Algoritmo di Ford-Fulkerson
Informatica 2. Concetti fondamentali di programmazione Programmare vuol dire scrivere un algoritmo in un linguaggio che faccia funzionare un calcolatore.
Capitolo 4 Ordinamento: Selection e Insertion Sort Algoritmi e Strutture Dati.
Capitolo 4 Ordinamento: Selection e Insertion Sort Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati (Mod. B)
Algoritmi e Strutture Dati (Mod. B)
Risorse e Stallo.
Programmazione Un programma descrive al computer, in estremo dettaglio, la sequenza di passi necessari a svolgere un particolare compito L’attività di.
Gestione dei processi Un sistema operativo multitasking è in grado di gestire più processi Un processo corrisponde ad un programma in esecuzione. Un programma.
Introduzione alla programmazione ll
Corso di Programmazione Concorrente Stallo Valter Crescenzi nz.
Deadlock.
nome: sequenza di caratteri usata per denotare un oggetto
2) Sistemi operativi Lab. Calc. AA2004/05 - cap.2.
Sincronizzazione fra thread
Strutture dei sistemi di calcolo Funzionamento di un sistema di calcolo Struttura di I/O Struttura della memoria Gerarchia delle memorie Architetture di.
Strutture di controllo in C -- Flow Chart --
Le transazioni Itis Max Planck.
Espressioni condizionali
Lezione 2 Programmare in ASP
Concorrenza e Sincronizzazione di Thread e Processi
Requisiti precedenti Contenuti Verifiche Bibliografia Maura Zini.
TECNICHE DI INPUT/OUTPUT
Elementi di Informatica di base
Algoritmi e Strutture Dati
Seconda Università degli Studi di Napoli Facoltà di Economia Corso di Informatica Prof.ssa Zahora Pina.
Costruzione di una semplice Agenda telefonica Elettronica Esercizio sull'uso delle principali system call Unix.
Sistema Operativo (Software di base)
I processi.
1 Gestione del Processore (Scheduling). 2 Scheduling dei processi È l’attività mediante la quale il sistema operativo effettua delle scelte tra i processi,
Sistemi e Tecnologie Informatiche Verifica di correttezza di un programma.
La ricorsione.
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)
13 ottobre Decisioni F. Bombi 13 ottobre 2002.
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.
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
1 Gestione della Memoria Capitolo Introduzione alla gestione della memoria 4.2 Swapping 4.3 Memoria virtuale 4.4 Implementazione 4.5 Algoritmi di.
Informatica Generale Marzia Buscemi
Problema dell’Ordinamento. Problema dell’ordinamento Formulazione del problema –Si vuole ordinare una lista di elementi secondo una data proprietà P Esempio:
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Capitolo 1 Un’introduzione.
Algoritmi e Strutture Dati Luciano Gualà
Gestione delle periferiche. Le periferiche sono dispositivi che permettono le operazioni di input/output.
1 Competizione e cooperazione pag. 88 Cap.3 - Esecuzione concorrente di processi 1.
Algoritmi Avanzati a.a.2010/2011 Prof.ssa Rossella Petreschi Complessità e Trasportabilità Lezione n°3.
Il Sistema Operativo Processi e Risorse
Transcript della presentazione:

1 Risorse e Stallo

2 Risorse (1) Esempi di risorse –stampanti –nastri –tabelle I processi devono accedere alle risorse in un ordine ragionevole Supponiamo che un processo occupi la risorsa A e che richieda la risorsa B –se allo stesso istante un altro processo occupa B e richiede A –entrambi i processi restano bloccati (stallo, deadlock)

3 Risorse (2) Lo stallo (deadlock) avviene se … –i processi hanno accesso esclusivo alle risorse (le risorse sono seriali) Risorse prerilasciabili –possono essere cedute da un processo senza provocarne il fallimento Risorse non prerilasciabili –un processo fallisce se viene forzato a cederle prima che ne abbia terminato l’uso

4 Risorse (3) Sequenza di azioni necessarie per usare una risorsa 1.richiesta della risorsa 2.uso della risorsa 3.rilascio della risorsa Se la richiesta di acquisizione viene rifiutata il processo richiedente deve aspettare –il processo viene messo in stato di attesa oppure –la richiesta fallisce con un corrispondente codice di errore

5 Introduzione allo stallo Definizione : Un insieme di processi è in stallo se ogni processo nell’insieme sta aspettando un evento che solo un altro processo nello stesso insieme può generare. Generalmente l’evento è il rilascio di una risorsa Nessuno dei processi in stallo può … –passare in esecuzione –rilasciare risorse –essere riattivato

6 Quattro condizioni per lo stallo 1. Le risorse sono seriali (mutua esclusione) ogni risorsa o è assegnata ad un solo processo o è libera 2. Condizione di “hold & wait” un processo che vincola una risorsa ne può richiedere altre 3. Risorse non prerilasciabili i processi non possono essere forzati a rilasciare in anticipo le risorse acquisite 4. Attesa circolare almeno due processi ogni processo aspetta una risorsa occupata da un altro processo in attesa circolare

7 Affrontare lo Stallo Strategie per affrontare il problema dello stallo 1. Ignorare il problema 2. Riconoscerlo ed eliminarlo 3. Impedirlo Con specifiche politiche di allocazione 4. Evitarlo Rimuovere una delle quattro condizioni

8 Modelli per lo Stallo (1) Modello con grafi orientati (resource allocation graphs) –La risorsa R è assegnata al processo A –Il processo B richiede/aspetta la risorsa S –I processi C e D sono in stallo sulle risorse T e U I grafi orientati permettono di verificare se una data sequenza di richieste-acquisizioni porta allo stallo

9 Come avviene lo stallo Modelli per lo Stallo (2) A B C

10 Modelli per lo Stallo (3) Impedire lo stallo (o) (p) (q)

11 L’algoritmo dello struzzo Pretende che il problema non esista E’ una soluzione ragionevole se: –lo stallo capita raramente –il costo per evitare lo stallo è troppo elevato UNIX e Windows usano principalmente questo approccio C’è un compromesso tra –convenienza –correttezza

12 Individuare lo stallo con una sola risorsa di ogni tipo Un ciclo nel grafo di Holt denota uno stallo

13 Individuare lo stallo con più risorse di ogni tipo (1) Strutture dati necessarie per individuare lo stallo Risorse necessarie a ciascun processo per terminare l’elaborazione

14 Esempio di applicazione dell’algoritmo di individuazione dello stallo Stallo con più risorse do ogni tipo (2)

15 Individuare lo stallo con più risorse di ogni tipo (3) Notazioni: –Sia R i l’i-esima riga della matrice R –Dati due vettori X= e Y=, X  Y sse x i  y i per ogni i=1,…,m Algoritmo di individuazione dello stallo: 1.Inizialmente ogni processo P i è non marcato 2.Per ogni processo non marcato P i tale che R i  A –A=A+C i ; –marca P i ; 3.Se rimangono processi non marcati: –I processi non marcati sono in stallo

16 Eliminare lo stallo (1) Tramite prerilascio –forzare il prerilascio di una risorsa da parte di uno dei processi in stallo –dipende dalla natura della risorsa Tramite “rollback” –Salvataggio periodico dello stato dei processi –In caso di stallo: Si ripristina il processo all’ultimo stato salvato Si fa ripartire il processo

17 Eliminare lo stallo (2) Tramite terminazione dei processi –È il modo più semplice e drastico per eliminare lo stallo –Si forza la terminazione di uno dei processi nel ciclo dello stallo –Gli altri processi acquisiscono le risorse del processo terminato –Si sceglie un processo che può essere fatto ripartire dall’inizio (se possibile…)

18 Impedire lo stallo Traiettorie nell’uso delle risorse Traiettorie nell’uso delle risorse da parte di due processi

19 Stati Sicuri e Insicuri (1) Dimostrazione che lo stato (a) è sicuro Uno stato è sicuro se il sistema può garantire che tutti i processi potranno terminare senza generare deadlock (a) (b) (c) (d) (e)

20 Stati Sicuri e Insicuri (2) Dimostrazione che lo stato (b) è insicuro (a) (b) (c) (d)

21 L’algoritmo del banchiere per risorsa singola (1) Tre stati di allocazione delle risorse –(a) sicuro –(b) sicuro –(c) insicuro (a) (b) (c)

22 L’algoritmo del banchiere per risorsa singola (2) Prima di iniziare l’esecuzione ogni processo dichiara il massimo numero di risorse che gli sono necessarie Ad ogni richiesta di una nuova risorsa l’algoritmo controlla se accogliere la richiesta porta ad uno stato sicuro o insicuro –per ogni processo si calcolano le unità di risorsa ancora richiedibili (R = Max - Has) –si considerano i processi in ordine di R crescente controllando che ognuno possa ancora richiedere R risorse e terminare correttamente –se tutti i processi possono terminare correttamente lo stato è sicuro Solo le richieste che portano a stati sicuri sono accolte

23 Algoritmo del banchiere per risorse multiple (1) E= ; e i =numero di risorse di classe i P= ; p i =numero di risorse di classe i occupate A= ; a i =numero di risorse di classe i disponibili (A=E–P) C= R=

24 Algoritmo del banchiere per risorse multiple (2) Inizialmente ogni processo P j è non marcato while (  processi non marcati) { } Termina con successo: non ci sono processi in stallo if (  una riga R j di R tale che R j  A) { } else termina e segnala lo stallo di tutti i processi non marcati; Marca il processo P j ; A=A+ C j ;

25 Quattro condizioni per lo stallo Le risorse sono seriali (mutua esclusione) ogni risorsa o è assegnata ad un solo processo o è libera Condizione di “hold & wait” un processo che vincola una risorsa ne può richiedere altre Risorse non prerilasciabili i processi non possono essere forzati a rilasciare in anticipo le risorse acquisite Attesa circolare almeno due processi ogni processo aspetta una risorsa occupata da un altro processo in attesa circolare

26 Prevenire lo Stallo Eliminare la condizione di risorse seriali Alcuni dispositivi (ad esempio le stampanti) possono essere gestiti con spool –I processi scrivono l’output in un’area di spool –Solo il gestore della stampante richiede e usa la stampante –Quindi lo stallo per la stampante è eliminabile Non tutti i dispositivi possono essere gestiti con spool Ci può essere stallo nell’accesso all’area di spool Principio: –Evitare di assegnare una risorsa quando non strettamente necessario –Far in modo che il minor numero possibile di processi possa richiedere una risorsa

27 Eliminare la condizione di risorse non prerilasciabili Questa opzione non è percorribile Consideriamo ad esempio un processo che ottiene una stampante –… a metà della stampa –Viene forzato a cedere la stampante… –!!??

28 Eliminare la condizione di “hold & wait” I processi richiedono tutte le risorse necessarie prima di iniziare –Un processo non attende mai per le risorse Problemi –Può non sapere di quali risorse avrà bisogno –Vincola risorse che altri processi potrebbero usare Variazioni: –Un processo deve prima rilasciare tutte le risorse… –… e quindi richiedere immediatamente tutte quelle necessarie

29 Eliminare la condizione di attesa circolare (1) Risorse ordinate –Ad ogni classe di risorse è assegnato un numero –Le risorse devono essere richieste secondo l’ordine stabilito Esempio: non si può richiedere una risorsa di indice j dopo aver acquisito una risorsa di indice i con i>j Grafo delle risorse –Si dimostra che è aciclico (a) (b)

30 Eliminare la condizione di attesa circolare (2) Sommario degli approcci per evitare lo stallo CondizioneApproccio SerialitàUsare spool “Hold & Wait”Richiedere tutte le risorse inizialmente Non prerilasciabilitàForzare il prerilascio Attesa circolareOrdinare le risorse