Sistemi di Controllo Real Time

Похожие документы
Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

Algoritmi di scheduling - Parte 2

Implementazione di sistemi real time

Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer.

Sistemi operativi e reti A.A Lezione 2

Il Sistema Operativo

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

Dispensa di Informatica I.1

Architettura di un calcolatore

ASPETTI GENERALI DI LINUX. Parte 2 Struttura interna del sistema LINUX

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

1 Processo, risorsa, richiesta, assegnazione 2 Concorrenza 3 Grafo di Holt 4 Thread 5 Sincronizzazione tra processi

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Scheduling della CPU

Gestione della memoria centrale

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

Approccio stratificato

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

Sistemi Operativi Kernel

Scheduling. Sistemi Operativi e Distribuiti A.A Bellettini - Maggiorini. Concetti di base

La manutenzione come elemento di garanzia della sicurezza di macchine e impianti

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone

Le Infrastrutture Software ed il Sistema Operativo

REGIONE MARCHE GIUNTA REGIONALE

Sistemi Operativi. Scheduling della CPU SCHEDULING DELLA CPU. Concetti di Base Criteri di Scheduling Algoritmi di Scheduling

Sistemi Operativi SCHEDULING DELLA CPU. Sistemi Operativi. D. Talia - UNICAL 5.1

Un sistema operativo è un insieme di programmi che consentono ad un utente di

Sistemi di Automazione Industriale

Valutazione delle Prestazioni. Valutazione delle Prestazioni. Architetture dei Calcolatori (Lettere. Tempo di risposta e throughput

J. Assfalg Appunti di Sistemi Operativi

Sistemi e schedulazione in tempo reale

IL RISPARMIO ENERGETICO E GLI AZIONAMENTI A VELOCITA VARIABILE L utilizzo dell inverter negli impianti frigoriferi.

Metodologia di monitoraggio Impianti fotovoltaici

Il Sistema Operativo (1)

Scheduling della CPU:

Introduzione alla Virtualizzazione

GESTIONE DEI PROCESSI

Pag. 1. Introduzione allo scheduling. Concetti fondamentali. Scheduling della CPU. Concetti fondamentali. Concetti fondamentali. Algoritmi.

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

TECNICO SUPERIORE PER L AUTOMAZIONE INDUSTRIALE

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI

Architettura hardware

Esame di INFORMATICA

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

Architetture Applicative

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

ARCHITETTURA DI RETE FOLEGNANI ANDREA

Sistemi Operativi SCHEDULING DELLA CPU

FONDAMENTI di INFORMATICA L. Mezzalira

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi

Gestione del processore e dei processi

PREMESSA AUTOMAZIONE E FLESSIBILITA'

Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web: Prof. G. Quarella prof@quarella.

Application note. CalBatt NomoStor per i sistemi di accumulo di energia

Progettaz. e sviluppo Data Base

Corso di Sistemi di Elaborazione delle informazioni

Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa. Raccolta prove scritte. Prova scritta

Capire i benefici di una rete informatica nella propria attività. I componenti di una rete. I dispositivi utilizzati.

Corso di Informatica

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09

POLITECNICO DI TORINO

La Gestione delle risorse Renato Agati

Problemi di Scheduling

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

Automazione Industriale (scheduling+mms) scheduling+mms.

Introduzione all analisi dei segnali digitali.

S i s t e m a d i v a l u t a z i o n e d e l l e p r e s t a z i o n i d e i d i p e n d e n t i

Il sistema operativo. Sistema operativo. Multiprogrammazione. Il sistema operativo. Gestione della CPU

Macchine a stati finiti. Sommario. Sommario. M. Favalli. 5th June 2007

Regolamento sui limiti al cumulo degli incarichi ricoperti dagli Amministratori del Gruppo Banco Popolare

Corso di Informatica

CPU. Maurizio Palesi

Mac Application Manager 1.3 (SOLO PER TIGER)

Macchine a stati finiti G. MARSELLA UNIVERSITÀ DEL SALENTO

Scheduling della CPU. Concetti fondamentali. Concetti fondamentali. Concetti fondamentali. Dispatcher. Scheduler della CPU

RETI E SISTEMI INFORMATIVI

Scheduling della CPU

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia

L amministratore di sistema. di Michele Iaselli

ESERCIZIO 1 (b) Dove è memorizzato il numero del primo blocco del file? Insieme agli altri attributi del file, nella cartella che contiene il file.

Scheduling. Lo scheduler è la parte del SO che si occupa di

Sensori a effetto Hall bipolari con ritenuta stabilizzati e non stabilizzati con circuito chopper

Gestione Turni. Introduzione

Base di dati e sistemi informativi

Ciclo di vita dimensionale

LA POSIZIONE ASSOCIATIVA IN TEMA DI VITA UTILE DELLE APPARECCHIATURE DI LABORATORIO E FORNITURE IN SERVICE

CLASSE III A I.T.I. (ABACUS) SISTEMI DI ELABORAZIONE E TRASMISSIONE DEI DATI VERIFICA DI RECUPERO

Pronto Esecuzione Attesa Terminazione

Macchine a stati finiti. Sommario. Sommario. M. Favalli. Le macchine a stati si utilizzano per modellare di sistemi fisici caratterizzabili mediante:

Generazione Automatica di Asserzioni da Modelli di Specifica

Транскрипт:

Sistemi di Controllo Real Time Automazione 13/10/2015 Vincenzo Suraci

STRUTTURA DEL NUCLEO TEMATICO SISTEMI REAL TIME CLASSIFICAZIONE DEI SISTEMI REAL TIME PARALLELISMO E PROGRAMMAZIONE CONCORRENTE

SISTEMI REAL TIME

SISTEMI REAL TIME Un sistema di controllo che si propone lo scopo di coordinare un insieme definito di elementi singoli deve necessariamente pianificare un ALGORITMO per SEQUENZIALIZZARE e TEMPORIZZARE gli interventi degli elementi singoli per raggiungere un ben preciso obiettivo di produzione. Le TECNOLOGIE utilizzate per implementare l algoritmo di controllo al livello di coordinamento sono, per la maggioranza dei sistemi di automazione industriale attuali, basate su PROGRAMMAZIONE SOFTWARE di opportuni MICROPROCESSORI. Per un corretto funzionamento di un insieme di elementi singoli è fondamentale che il sistema di controllo monitori costantemente lo stato dell impianto e impartisca i COMANDI ADEGUATI ogni qualvolta vengano determinate opportune condizioni. Tali comandi devono essere eseguiti in un TEMPO OPPORTUNO affinché abbiano l efficacia necessaria al raggiungimento degli obiettivi desiderati.

SISTEMI REAL TIME L ALGORITMO che implementa la legge di controllo si dice: LOGICAMENTE CORRETTO quando i risultati forniti sono quelli attesi a partire da ben definiti dati di ingresso INGRESSO ALGORITMO USCITA CONTROLLATA USCITA DESIDERATA CHECK DI CORRETTEZZA LOGICA

SISTEMI REAL TIME L ALGORITMO che implementa la legge di controllo si dice: LOGICAMENTE CORRETTO quando i risultati forniti sono quelli attesi a partire da ben definiti dati di ingresso TEMPORALMENTE CORRETTO quando i risultati sono forniti rispettando delle prestabilite specifiche temporali dette DEADLINE INGRESSO ALGORITMO USCITA CONTROLLATA USCITA DESIDERATA CHECK DI CORRETTEZZA LOGICA CHECK DI CORRETTEZZA TEMPORALE

SISTEMI REAL TIME Il SISTEMA DI CONTROLLO che elabora l algoritmo, si può definire SISTEMA REAL TIME se e solo se: 1. è in grado elaborare le informazioni in modo da fornire delle risposte LOGICAMENTE CORRETTE 2. è in grado elaborare le informazioni in modo da fornire delle risposte TEMPORALMENTE CORRETTE

SISTEMI REAL TIME Una considerazione intuitiva porta erroneamente a classificare come SISTEMI REAL TIME, quei sistemi che hanno CAPACITÀ COMPUTAZIONALI estremamente ELEVATE. In realtà non è né sufficiente, né necessario avere un MICROPROCESSORE estremamente potente per garantire che esso costituisca un SISTEMA REAL TIME. La correttezza logica dipende da come è stato implementato il programma di controllo. Un BUG nel software mina tale requisito, indipendentemente dalla CPU La correttezza temporale dipende da molti fattori HW e SW: dal BIOS, dal OS, dalla modalità di gestione degli IRQ, dalla gestione del BUS, dalla gestione delle periferiche, ecc.

SISTEMI REAL TIME Il soddisfacimento dei requisiti di correttezza logica e temporale devono essere soddisfatti nella TOTALITÀ DEI CASI e NON MEDIAMENTE durante tutto il ciclo di vita del sistema di controllo. Pertanto comportamento di un sistema real time deve essere PREVEDIBILE. La proprietà di un sistema di controllo di avere un comportamento prevedibile è nota anche come COMPORTAMENTO DETERMINISTICO. Per ottenere sistemi di controllo REAL TIME è pertanto necessario studiare, progettare ed adottare ARCHITETTURE HARDWARE E SOFTWARE DEDICATE che rispettino tale proprietà.

CLASSIFICAZIONE DEI SISTEMI REAL TIME

SISTEMI REAL TIME Dato un impianto industriale, non tutti i dispositivi devono essere necessariamente governati da un sistema di controllo real time. Nel caso di un ascensore, ad esempio, è importante avere un controllo real time della parte legata alla sicurezza fisica delle persone (rilevazione apertura e chiusura delle porte, posizione e velocità dell abitacolo, etc.). Non è necessario avere un controllo real time della parte legata alla prenotazione della chiamata.

SISTEMI REAL TIME In tal senso è utile definire il concetto di Quality of Service (QoS) di un sistema di controllo esprimibile in funzione della capacità di rispettare i vincoli di correttezza logica e temporale. Ad esempio si possono definire due parametri di QoS in termini di: coefficiente di correttezza logica pari al rapporto tra RISULTATI CORRETTI TOTALE DEI RISULTATI ELABORATI coefficiente di correttezza temporale pari al rapporto RISULTATI ELABORATI ENTRO LA DEADLINE TOTALE DEI RISULTATI ELABORATI

SISTEMI HARD REAL TIME Un sistema di controllo si dice HARD REAL TIME se e solo se: NON VIOLA MAI IL VINCOLO DI CORRETTEZZA LOGICA (i task danno sempre risultati corretti) NON VIOLA MAI IL VINCOLO DI CORRETTEZZA TEMPORALE (i task non superano mai le deadline) Ovverosia, un sistema di controllo si dice HARD REAL TIME se e solo se: coefficiente di correttezza logica = 1 coefficiente di correttezza temporale = 1 Un sistema di controllo HARD REAL TIME viene richiesto ogni qualvolta anche solo una violazione dei vincoli di correttezza logica o temporale possono compromettere l incolumità di persone o cose, oppure la funzionalità stessa del sistema controllato (si pensi, ad esempio, agli impianti chimici o nucleari).

SISTEMI SOFT REAL TIME Ogni qualvolta non è necessario ricorrere ad un sistema HARD REAL TIME, si può optare per l adozione di un sistema SOFT REAL TIME. Un sistema di controllo si dice SOFT REAL TIME se e solo se: può violare il vincolo di correttezza logica (i task possono dare risultati scorretti) può violare il vincolo di correttezza temporale (i task possono superare le deadline) Ovverosia, un sistema di controllo si dice SOFT REAL TIME se: Max (coefficiente di correttezza logica, coefficiente di correttezza temporale ) < 1 Differenti sistemi di controllo SOFT REAL TIME possono pertanto essere classificati in base alla QoS che sono in grado di offrire. HARD REAL TIME 0 SOFT REAL TIME 1 QoS

VINCOLI REAL TIME Esiste una relazione tra i requisiti dei sistemi di controllo real time e la velocità di esecuzione dei task da parte del sistema controllato. Tale relazione è espressa come RAPPORTO tra il TEMPO IMPIEGATO dal sistema ad eseguire il task e la DEADLINE. Tale rapporto è detto VINCOLO REAL TIME. VINCOLO REAL TIME = TEMPO DI ESECUZIONE DEL TASK DEADLINE

VINCOLI REAL TIME Un VINCOLO REAL TIME si dice LARGO se le deadline temporali sono ampie rispetto al tempo necessario a svolgere le operazioni previste. Un VINCOLO REAL TIME si dice STRETTO se le deadline temporali sono prossime al tempo di calcolo necessario a svolgere le operazioni previste. Realizzare un sistema HARD REAL TIME con VINCOLI REAL TIME STRETTI implica una progettazione sistematica delle architetture hardware e software per sfruttare al meglio le risorse a disposizione.

PARALLELISMO E PROGRAMMAZIONE CONCORRENTE

DEFINIZIONE DI TASK Un sistema di controllo real time deve spesso coordinare attività tra loro completamente differenti e scorrelate. Pertanto è bene definire le attività in maniera indipendente da qualsiasi caratterizzazione tecnologica. DEFINIZIONE Dicesi TASK (o PROCESSO) una unità atomica di lavoro, innescata da un EVENTO, che deve terminare entro un intervallo di tempo finito chiamato DEADLINE. L intervallo di tempo tra l evento e la deadline è detto TIMESCOPE del task. task EVENTO TIMESCOPE DEADLINE TASK tempo

PARALLELISMO Il sistema di controllo real time deve spesso coordinare diversi elementi singoli che evolvono indipendentemente l uno dall altro. L indipendenza dei Task associati ad elementi diversi, genera immediatamente un problema di coordinamento dovuto alla necessità di svolgere CONTEMPORANEAMENTE più di un Task in parallelo. Questo problema è noto come PARALLELISMO. tasks PARALLELISMO PARALLELISMO elemento A tempo elemento B tempo

PARALLELISMO Per poter svolgere contemporaneamente le attività previste da Task paralleli, l architettura del sistema di controllo deve essere accuratamente progettata. Si parla di architettura MONOPROCESSORE quando una sola unità di calcolo, che è in grado di eseguire le attività di un solo task per volta, deve eseguire i compiti richiesti dai diversi task. Si parla di architettura MULTIPROCESSORE quando più unità di calcolo possono eseguire contemporaneamente i compiti richiesti dai diversi task.

PARALLELISMO Quando il numero massimo di Task paralleli è maggiore del numero di unità di calcolo disponibili nel sistema di controllo, bisogna pianificare una strategia di PARALLELISMO LOGICO. Quando il numero massimo di Task paralleli è minore o uguale al numero di unità di calcolo disponibili nel sistema di controllo, si può attuare una strategia di PARALLELISMO REALE. È bene sottolineare che anche sistemi di controllo con architetture MULTIPROCESSORE possono applicare strategie di PARALLELISMO LOGICO, per poter eseguire in maniera parallela (ma non contemporanea) anche un numero di Task maggiore del numero di unità di calcolo disponibili.

PROGRAMMAZIONE CONCORRENTE (SCHEDULING) Quando una stessa unità di calcolo, o PROCESSORE, deve eseguire più Task in parallelo, deve applicare una strategia di gestione che usi in modo sequenziale l unica risorsa fisica disponibile (il processore) in modo da terminare le attività previste per i differenti Task entro le relative deadline. Lo studio e la definizione di questa strategia di gestione è chiamato PROGRAMMAZIONE CONCORRENTE o SCHEDULING.

PROGRAMMAZIONE CONCORRENTE (SCHEDULING) Nella maggior parte dei sistemi di automazione di complessità media è sempre verificato che il numero di Task paralleli sia maggiore del numero delle unità di calcolo presenti nel sistema di controllo. Spesso infatti i sistemi di controllo sono MONOPROCESSORE e richiedono, pertanto, la gestione via HARDWARE o via SOFTWARE di un ALGORITMO DI SCHEDULING. Senza perdita di generalità nel seguito analizzeremo spesso il caso di sistemi di controllo MONOPROCESSORE, in quanto sono i sistemi più diffusi nel settore della Automazione.

STATI DI UN TASK Dato un istante di tempo t, ed un generico Task, possiamo stabilire che esso è: ATTIVO se l evento che lo ha innescato è avvenuto prima dell istante t e la deadline scadrà dopo l instante t PRONTO se il task è attivo, ma non è eseguito dal processore nell istante di tempo t IN ESECUZIONE se il task è attivo ed è eseguito dal processore nell istante di tempo t Si ha PARALLELISMO quando esiste un istante di tempo t in cui il numero di task attivi è maggiore di uno. Si deve attuare SCHEDULING quando esiste un istante di tempo t in cui il numero di task attivi è maggiore del numero delle unità di calcolo del sistema di controllo.

PARAMETRI CARATTERISTICI DI UN TASK Dato un task A i si possono definire i seguenti PARAMETRI CARATTERISTICI: a i ACTIVATION TIME istante in cui il task diventa ATTIVO s i START TIME istante in cui il task viene ESEGUITO per la prima volta e i END TIME istante in cui l esecuzione del task viene terminata definitivamente d i DEADLINE ASSOLUTA istante in cui il task deve essere completato task EVENTO TIMESCOPE DEADLINE Task A i tempo

PARAMETRI CARATTERISTICI DI UN TASK C i = e i s i COMPUTATION TIME tempo complessivo di esecuzione del task D i = d i a i DEADLINE RELATIVA tempo massimo di esecuzione del task R i = e i a i RESPONSE TIME tempo impiegato per terminare il task L i = e i d i LATENESS ritardo tra la deadline e la terminazione del task task RESPONSE TIME LATENESS Una LATENESS positiva è indice di un sistema SOFT REAL TIME Task A i tempo COMPUTATION TIME DEADLINE RELATIVA

RUOLO DELLO SCHEDULING Si consideri una situazione di parallelismo come mostrato in figura: tasks PARALLELISMO PARALLELISMO Task A 1 tempo Task A 2 tempo In fase di scheduling si deve pianificare una strategia di esecuzione di tutti i task che: 1. rispetti i vincoli sulle risorse a disposizione (ad es. di calcolo) 2. rispetti le priorità dei task (ad es. quelli HARD real time da quelli SOFT real time) 3. massimizzi, quando possibile, opportuni indici prestazionali (ad es. consumo energetico, occupazione di memoria, etc.)

RUOLO DELLO SCHEDULING Quando si presentano situazioni di parallelismo, in cui nello stesso istante di tempo più task sono attivi, i task vengono (virtualmente) collocati in una coda di attesa (READY QUEUE). Quando un task viene terminato, esso può essere tolto dalla coda di attesa. Lo scheduler interviene per associare un task presente nella coda ad una delle unità di elaborazione disponibili (DISPATCHING). EVENTO TASK READY QUEUE SCHEDULER DISPATCHING UNITÀ DI ELABORAZIONE 1 UNITÀ DI ELABORAZIONE 2 UNITÀ DI ELABORAZIONE n

RUOLO DELLO SCHEDULING In situazioni di parallelismo può capitare che task a maggiore priorità sottraggano le risorse di elaborazione associate a task con minore priorità. Tale meccanismo è chiamato PREEMPTION e rispetta il VINCOLO DI PRECEDENZA tra task. EVENTO TASK READY QUEUE SCHEDULER DISPATCHING UNITÀ DI ELABORAZIONE 1 UNITÀ DI ELABORAZIONE 2 UNITÀ DI ELABORAZIONE n PREEMPTION

RUOLO DELLO SCHEDULING In situazioni di parallelismo può capitare che due o più task attivi siano costretti ad operare uno alla volta perché condividono una stessa risorsa che può essere utilizzata da un solo task alla volta. In questo caso lo scheduler deve rispettare un VINCOLO DI MUTUA ESCLUSIONE SU RISORSE CONDIVISE e mettere i task attivi concorrenti in una coda a parte (BLOCKED QUEUE) BLOCKED QUEUE EVENTO TASK READY QUEUE SCHEDULER DISPATCHING UNITÀ DI ELABORAZIONE 1 UNITÀ DI ELABORAZIONE 2 UNITÀ DI ELABORAZIONE n PREEMPTION

ESEMPIO DI SCHEDULING Ipotizzando di avere un sistema MONOPROCESSORE ed il problema in figura: tasks PARALLELISMO PARALLELISMO Task A 1 tempo Task A 2 e A 3 tempo Una possibile soluzione del problema di scheduling può essere: processore tempo

ESEMPIO DI VINCOLO DI PRECEDENZA Ipotizziamo di avere un sistema MONOPROCESSORE deputato alla REGOLAZIONE DELLA TEMPERATURA IN UN AMBIENTE CHIUSO. La strumentazione sia data da: un SENSORE DI TEMPERATURA un attuatore costituito da un MOTORE ELETTRICO CC pilotato in corrente connesso ad una VENTOLA per la regolazione del flusso d aria un attuatore costituito da un POTENZIOMETRO connesso ad una RESISTENZA ELETTRICA per la regolazione della temperatura di uscita dell aria In totale possono essere individuati, in ordine di priorità, 4 task: 1. ricezione delle informazioni dal sensore di temperatura 2. elaborazione dei dati raccolti 3. elaborazione del valore di riferimento per il motore elettrico 4. elaborazione del valore di riferimento per il potenziometro

ESEMPIO DI VINCOLO DI PRECEDENZA Applicando uno scheduling con preemption avremo: PRIORITÀ Task 1 Task 2 Task 3 Task 4 tempo tempo tempo tempo processore tempo

VINCOLO DI PRECEDENZA vs MUTUA ESCLUSIONE Ipotizziamo di avere un sistema MONOPROCESSORE deputato al coordinamento di elementi singoli (differenti task) che, per questioni di gestione dell impianto, eseguono un log costante ad un unica stampante condivisa. In questo caso l applicazione di uno scheduling con preemption non è sufficiente a garantire una correttezza logica del funzionamento dell impianto. Si ipotizzino due Task, A 1 e A 2 il primo dei quali deve stampare la stringa «Temperatura = 20,3 C» ed il secondo deve stampare la stringa «Umidità = 35,4%» Supponiamo inoltre che: il task A 1 abbia maggior priorità rispetto al task A 2 il task A 1 diventi attivo dopo il task A 2

VINCOLO DI PRECEDENZA vs MUTUA ESCLUSIONE Dal punto di vista grafico avremo: ELIMINAZIONE DATI DALLA MEMORIA PRIORITÀ Task A 1 Task A 2 UMID TEMPERATURA = 20,3 C CARICAMENTO DATI IN MEMORIA ITÀ = 35,4% tempo tempo Processore Stampante UMIDTEMPERATURA = 20,3 CITÀ = 35,4% CORRETTEZZA LOGICA VIOLATA tempo tempo

VINCOLO DI PRECENDENZA E DI MUTUA ESCLUSIONE Per risolvere correttamente il problema di scheduling è necessario mantenere sia la coda dei task attivi (READY QUEUE) che la coda dei task bloccati (BLOCKED QUEUE). Il tentativo di accesso alla risorsa condivisa già in uso da parte di un altro processo deve essere bloccato sino alla liberazione della risorsa stessa. Nel nostro esempio la risorsa condivisa è la STAMPANTE e per garantire il vincolo di correttezza logica è necessario applicare un algoritmo di scheduling con preemption e con gestione della blocked queue.

VINCOLO DI PRECEDENZA E DI MUTUA ESCLUSIONE Dal punto di vista grafico avremo: CARICAMENTO DATI IN MEMORIA ELIMINAZIONE DATI DALLA MEMORIA PRIORITÀ Task A 1 Task A 2 UMID BLOCKED ITÀ = 35,4% TEMPERATURA = 20,3 C READY tempo tempo Processore Stampante UMIDITÀ = 35,4% TEMPERATURA = 20,3 C tempo CORRETTEZZA LOGICA GARANTITA tempo

VINCOLO DI PRECEDENZA E DI MUTUA ESCLUSIONE Il primo evento è quello che attiva il Task A 2 che viene messo nella «READY QUEUE» BLOCKED QUEUE STAMPANTE READY QUEUE SCHEDULER EVENTO TASK DISPATCHING UNITÀ DI ELABORAZIONE 1 PREEMPTION

VINCOLO DI PRECEDENZA E DI MUTUA ESCLUSIONE Lo scheduler manda in esecuzione il Task A 2 visto che la risorsa di elaborazione è disponibile. Il Task A 2 carica i dati nella memoria della stampante e avvia la stampa dei caratteri della stringa. BLOCKED QUEUE UMID STAMPANTE READY QUEUE SCHEDULER EVENTO TASK DISPATCHING UNITÀ DI ELABORAZIONE 1 PREEMPTION

VINCOLO DI PRECEDENZA E DI MUTUA ESCLUSIONE Mentre la stampante sta operando, un nuovo evento attiva il Task A 1 che viene collocato nella READY QUEUE. BLOCKED QUEUE UMID STAMPANTE READY QUEUE SCHEDULER EVENTO TASK DISPATCHING UNITÀ DI ELABORAZIONE 1 PREEMPTION

VINCOLO DI PRECEDENZA E DI MUTUA ESCLUSIONE Il Task A 1 ha maggiore priorità rispetto al Task A 2 pertanto lo scheduler fa PREEMPTION e manda all unità di elaborazione il Task A 1 e sposta il Task A 2 nella READY QUEUE. BLOCKED QUEUE UMID STAMPANTE READY QUEUE SCHEDULER EVENTO TASK DISPATCHING UNITÀ DI ELABORAZIONE 1 PREEMPTION

VINCOLO DI PRECEDENZA E DI MUTUA ESCLUSIONE Il Task A 1 carica i dati di stampa nella stampante. BLOCKED QUEUE UMID STAMPANTE READY QUEUE SCHEDULER EVENTO TASK DISPATCHING UNITÀ DI ELABORAZIONE 1 PREEMPTION

VINCOLO DI PRECEDENZA E DI MUTUA ESCLUSIONE Quando il Task A 1 tenta di stampare, la risorsa è già occupata dal Task A 2 pertanto lo scheduler applica il vincolo di mutua esclusione agendo in questa sequenza: sposta il Task A 1 nella BLOCKED QUEUE sposta il Task A 2 nella unità di elaborazione BLOCKED QUEUE UMID STAMPANTE READY QUEUE SCHEDULER EVENTO TASK DISPATCHING UNITÀ DI ELABORAZIONE 1 PREEMPTION

VINCOLO DI PRECEDENZA E DI MUTUA ESCLUSIONE Quando il Task A 2 completa la stampa, libera la risorsa stampante. BLOCKED QUEUE UMIDITÀ = 35,4% STAMPANTE READY QUEUE SCHEDULER EVENTO TASK DISPATCHING UNITÀ DI ELABORAZIONE 1 PREEMPTION

VINCOLO DI PRECEDENZA E DI MUTUA ESCLUSIONE Lo scheduler sposta il Task A 1 dalla BLOCKED QUEUE alla READY QUEUE BLOCKED QUEUE UMIDITÀ = 35,4% STAMPANTE READY QUEUE SCHEDULER EVENTO TASK DISPATCHING UNITÀ DI ELABORAZIONE 1 PREEMPTION

VINCOLO DI PRECEDENZA E DI MUTUA ESCLUSIONE Il Task A 1 ha maggiore priorità rispetto al Task A 2 pertanto lo scheduler fa PREEMPTION e manda all unità di elaborazione il Task A 1 e sposta il Task A 2 nella READY QUEUE. BLOCKED QUEUE UMIDITÀ = 35,4% STAMPANTE READY QUEUE SCHEDULER EVENTO TASK DISPATCHING UNITÀ DI ELABORAZIONE 1 PREEMPTION

VINCOLO DI PRECEDENZA E DI MUTUA ESCLUSIONE Il Task A 1 può finalmente stampare e terminare completamente tutte le attività, liberando tutte le risorse (stampante ed unità di elaborazione). UMIDITÀ = 35,4% TEMPERATURA = 20,3 C BLOCKED QUEUE STAMPANTE READY QUEUE SCHEDULER EVENTO TASK DISPATCHING UNITÀ DI ELABORAZIONE 1 PREEMPTION

VINCOLO DI PRECEDENZA E DI MUTUA ESCLUSIONE Lo scheduler sposta il Task A 2 nella unità di elaborazione. UMIDITÀ = 35,4% TEMPERATURA = 20,3 C BLOCKED QUEUE STAMPANTE READY QUEUE SCHEDULER EVENTO TASK DISPATCHING UNITÀ DI ELABORAZIONE 1 PREEMPTION

VINCOLO DI PRECEDENZA E DI MUTUA ESCLUSIONE Il Task A 2 può finalmente terminare completamente tutte le attività, liberando tutte le risorse (stampante ed unità di elaborazione). UMIDITÀ = 35,4% TEMPERATURA = 20,3 C BLOCKED QUEUE STAMPANTE READY QUEUE SCHEDULER EVENTO TASK DISPATCHING UNITÀ DI ELABORAZIONE 1 PREEMPTION

BIBLIOGRAFIA Sezioni 2.1, 2.2 e 2.3 TITOLO Sistemi di automazione industriale Architetture e controllo AUTORI Claudio Bonivento Luca Gentili Andrea Paoli EDITORE McGraw-Hill