Implementazione di sistemi real time



Похожие документы
Algoritmi di scheduling - Parte 2

Sistemi di Controllo Real Time

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

Sistemi operativi. Esempi di sistemi operativi

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

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

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

Approccio stratificato

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

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

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

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

La Gestione delle risorse Renato Agati

Architettura di un sistema di calcolo

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

Scheduling della CPU

Algoritmi di scheduling

Il Sistema Operativo

Sistemi di Automazione Industriale

Corso di Sistemi di Elaborazione delle informazioni

STRUTTURE DEI SISTEMI DI CALCOLO

Lo scheduling. Tipici schedulatori

Il Sistema Operativo (1)

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

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

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

IL SOFTWARE TIPI DI SOFTWARE. MACCHINE VIRTUALI Vengono definite così perché sono SIMULATE DAL SOFTWARE, UNIFORMANO L ACCESSO SISTEMA OPERATIVO

Input/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche

FONDAMENTI di INFORMATICA L. Mezzalira

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

Schedulazione in RTAI

J. Assfalg Appunti di Sistemi Operativi

Scheduling della CPU:

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

Sistemi Operativi Kernel

Informatica - A.A. 2010/11

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

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

DMA Accesso Diretto alla Memoria

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

Mac Application Manager 1.3 (SOLO PER TIGER)

PROVA INTRACORSO TRACCIA A Pagina 1 di 6

Lo scheduler di UNIX (1)

Il Software. Il software del PC. Il BIOS

Architettura del calcolatore

Secondo biennio Articolazione Informatica TPSIT Prova Quarta

Scheduling della CPU Simulazione in linguaggio Java

Sistema operativo: Gestione dei processi

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

Pronto Esecuzione Attesa Terminazione

MODELLISTICA DI IMPIANTI E SISTEMI 2

Contenuti. Visione macroscopica Hardware Software. 1 Introduzione. 2 Rappresentazione dell informazione. 3 Architettura del calcolatore

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

Nozioni di Informatica di base. dott. Andrea Mazzini

La programmazione. Sviluppo del software

Corso di Informatica

Esame di INFORMATICA

Informatica e Bioinformatica: Sistemi Operativi

Architettura di un calcolatore

Sistemi operativi e reti A.A Lezione 2

Il software. la parte contro cui si può solo imprecare. Il software

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

Software. Algoritmo. Algoritmo INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042)

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

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

Gestione della memoria centrale

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Sistemi Operativi SCHEDULING DELLA CPU

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

PROTOTIPAZIONE DI UN TRADUTTORE DA SORGENTE PLC AD ASSEMBLY DI UNA MACCHINA VIRTUALE

Corso di Informatica

Controllo logico sequenziale

Mutua esclusione distribuita

Processi e Thread. Scheduling (Schedulazione)

Introduzione ai Sistemi Operativi

SCHEDULATORI DI PROCESSO

I processi. Un processo è una attività, controllata da un programma, che si svolge su un processore.

Gestione del processore e dei processi

Architettura hardware

MODULO 02. Iniziamo a usare il computer

Introduzione alla Virtualizzazione

Software per Helpdesk

Il software. Capitolo 3 La potenza non è nulla senza il software. Informatica di Base -- R.Gaeta 1

Tesina per l esame di Sistemi Operativi a cura di Giuseppe Montano. Prof. Aldo Franco Dragoni

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA)

Struttura del calcolatore

Linux I/O Scheduling overview

Dispensa di Informatica I.1

Definizione di processo. Un processo è un programma (o una parte di una programma) in corso di esecuzione

J. Assfalg Appunti di Sistemi Operativi

Транскрипт:

Implementazione di sistemi real time Automazione 28/10/2015 Vincenzo Suraci

STRUTTURA DEL NUCLEO TEMATICO HARDWARE ABSTRACTION LAYER IMPLEMENTAZIONE EVENT-DRIVEN IMPLEMENTAZIONE TIME-DRIVEN SISTEMI DI REAL TIME SISTEMI OPERATIVI REAL TIME Via Ariosto 25-00185 Roma http://www.diag.uniroma1.it 2

HARDWARE ABSTRACTION LAYER (HAL) Via Ariosto 25-00185 Roma http://www.diag.uniroma1.it 3

SISTEMA OPERATIVO Un qualsiasi sistema di controllo real time è oggigiorno implementato via software. A fare da collante tra il livello software che implementa la logica del sistema di controllo e le risorse hardware controllate, vi è il sistema operativo. Il sistema operativo è l interfaccia software che permette di gestire i task real time e non real time che devono essere eseguiti dal processore. SOFTWARE TASK REAL TIME SISTEMA OPERATIVO TASK NON REAL TIME RISORSE HARDWARE PROCESSORE MEMORIA PERIFERICHE I/O Via Ariosto 25-00185 Roma http://www.diag.uniroma1.it 4

HARDWARE ABSTRACTION LAYER Per disaccoppiare il sistema operativo dalle infinite possibili combinazioni di risorse hardware viene introdotto un componente chiamato HARDWARE ABSTRACTION LAYER. TASK REAL TIME TASK NON REAL TIME SOFTWARE SISTEMA OPERATIVO HARDWARE ABSTRACTION LAYER (HAL) RISORSE HARDWARE PROCESSORE MEMORIA PERIFERICHE I/O Via Ariosto 25-00185 Roma http://www.diag.uniroma1.it 5

HARDWARE ABSTRACTION LAYER I task NON REAL TIME vengono gestiti dal HAL con politica BEST EFFORT. I task REAL TIME vengono gestiti attraverso lo SCHEDULER che ospita uno degli algoritmi di scheduling studiati. TASK REAL TIME TASK NON REAL TIME SOFTWARE SCHEDULER SISTEMA OPERATIVO BEST EFFORT HARDWARE ABSTRACTION LAYER (HAL) RISORSE HARDWARE PROCESSORE MEMORIA PERIFERICHE I/O Via Ariosto 25-00185 Roma http://www.diag.uniroma1.it 6

HARDWARE ABSTRACTION LAYER Il sistema operativo controlla periodicamente che le deadline dei task real time vengano rispettate attraverso un WATCHDOG TIMER. Allo scadere del timer se una deadline è scaduta, l anomalia è segnalata e viene eseguita una routine di emergenza. TASK REAL TIME TASK NON REAL TIME SOFTWARE SCHEDULER SISTEMA OPERATIVO WATCHDOG TIMER BEST EFFORT HARDWARE ABSTRACTION LAYER (HAL) RISORSE HARDWARE PROCESSORE MEMORIA PERIFERICHE I/O Via Ariosto 25-00185 Roma http://www.diag.uniroma1.it 7

IMPLEMENTAZIONE EVENT-DRIVEN Via Ariosto 25-00185 Roma http://www.diag.uniroma1.it 8

EVENT DRIVEN DEFINIZIONE Un sistema operativo si dice EVENT DRIVEN se esso è in grado di schedulare un task (scartandolo, mettendolo in coda o mandandolo subito in esecuzione) nello stesso istante in cui si verifica l evento che lo ha attivato. task EVENTO TASK ATTIVATO tempo Sistema Operativo Event-driven RILEVAZIONE EVENTO TASK SCHEDULATO tempo Via Ariosto 25-00185 Roma http://www.diag.uniroma1.it 9

EVENT DRIVEN VANTAGGI INTUITIVO: ogni task viene mandato allo scheduler non appena l evento che lo attiva occorre SEMPLICE DA USARE: ad ogni task può essere associata una priorità e l algoritmo di scheduling pensa a soddisfare anche vincoli hard real time SVANTAGGI COMPLESSO DA REALIZZARE: definire un algoritmo di scheduling generale che risolva il problema della programmazione concorrente è difficile ed oneroso se non si conoscono a priori le caratteristiche dei task in ingresso Via Ariosto 25-00185 Roma http://www.diag.uniroma1.it 10

IMPLEMENTAZIONE TIME-DRIVEN Via Ariosto 25-00185 Roma http://www.diag.uniroma1.it 11

TIME DRIVEN Sistema Operativo Time-driven tempo Via Ariosto 25-00185 Roma http://www.diag.uniroma1.it 12

TIME DRIVEN Un sistema di controllo TIME DRIVEN deve gestire necessariamente le problematiche relative alla GESTIONE SINCRONA di EVENTI ASINCRONI (che attivano i task). In un sistema di controllo DIGITALE, un EVENTO può essere associato al valore logico di un variabile binaria (SEGNALE LOGICO). Segnale logico (evento) EVENTO RILEVATO Sistema Operativo Time-driven tempo Via Ariosto 25-00185 Roma http://www.diag.uniroma1.it 13

TIME DRIVEN PROBLEMA 1 OSSERVABILITÀ DEGLI EVENTI In un sistema di controllo time driven un evento può NON ESSERE OSSERVABILE. In particolare ciò può avvenire solo se il segnale logico associato all evento rimane attivo per un tempo inferiore del periodo di rilevazione. Segnale logico (evento) EVENTO RILEVATO EVENTO NON RILEVATO!!! Sistema Operativo Time-driven tempo Via Ariosto 25-00185 Roma http://www.diag.uniroma1.it 14

TIME DRIVEN PROBLEMA 2 RITARDO DI RILEVAZIONE In un sistema di controllo time driven ogni occorrenza di un task è soggetta ad un ritardo di rilevazione che impatta necessariamente sullo start time del task. RITARDO DI RILEVAZIONE Task TASK ATTIVATO Segnale logico (evento) Sistema Operativo Time-driven TASK SCHEDULATO tempo Via Ariosto 25-00185 Roma http://www.diag.uniroma1.it 15

TIME DRIVEN PROBLEMA 3 ORDINE DI OCCORRENZA In un sistema di controllo time driven, l ordine in cui si presentano due o più eventi occorrenti tra due rilevazioni successive viene perso. Task A 1 TASK A 1 ATTIVATO Task A 2 Sistema Operativo Time-driven TASK A 2 ATTIVATO? tempo Via Ariosto 25-00185 Roma http://www.diag.uniroma1.it 16

TIME DRIVEN VANTAGGI SEMPLICE DA REALIZZARE: è sufficiente abilitare un timer per rilevare periodicamente l occorrenza di eventi REATTIVITÀ: ipotizzando che l elaborazione di qualsiasi task si concluda entro l intervallo di tempo tra due istanti di rilevazione successivi, è possibile determinare il limite superiore del response time del sistema di controllo, pari a due volte il periodo di rilevazione response time SVANTAGGI FLESSIBILITÀ: le problematiche evidenziate (osservabilità degli eventi, ritardo di rilevazione, ordine di occorrenza) rendono questo approccio poco flessibile tempo Via Ariosto 25-00185 Roma http://www.diag.uniroma1.it 17

SISTEMI DI REAL TIME Via Ariosto 25-00185 Roma http://www.diag.uniroma1.it 18

OBIETTIVO DEI SISTEMI DI REAL TIME OBIETTIVO dei SISTEMI DI REAL TIME in funzione della PIRAMIDE DELLA CONTROLLO DI SEQUENZE LOGICHE PER LA SUPERVISIONE CONTROLLO DI SEQUENZE LOGICHE DI COORDINAMENTO CONTROLLO DIGITALE DI VARIABILI ANALOGICHE Via Ariosto 25-00185 Roma http://www.diag.uniroma1.it 19

REALIZZAZIONE DEI SISTEMI DI REAL TIME REALIZZAZIONE dei SISTEMI DI REAL TIME in funzione della PIRAMIDE DELLA EVENT DRIVEN TIME DRIVEN Via Ariosto 25-00185 Roma http://www.diag.uniroma1.it 20

REALIZZAZIONE DEI SISTEMI DI REAL TIME OSSERVAZIONE A livello di coordinamento e conduzione sono presenti task misti, pertanto è intuitivo pensare di usare sistemi di controllo real time event driven. Ma abbiamo visto quanto sia: difficile forzare il sistema operativo ad essere costantemente pronto a rilevare un nuovo evento; complesso realizzare uno scheduling hard real time. Pertanto dal punto di vista implementativo è molto più conveniente realizzare sistemi di controllo finalizzati all Automazione completamente time driven. Via Ariosto 25-00185 Roma http://www.diag.uniroma1.it 21

REALIZZAZIONE DEI SISTEMI DI REAL TIME REALIZZAZIONE dei SISTEMI DI REAL TIME in funzione della PIRAMIDE DELLA EVENT DRIVEN TIME DRIVEN Via Ariosto 25-00185 Roma http://www.diag.uniroma1.it 22

DA EVENT-DRIVEN A TIME-DRIVEN OSSERVAZIONE Un evento è un entità asincrona (slegata quindi dal clock del sistema di controllo digitale) che modifica lo stato del sistema. Segnali logici (eventi) tempo Time-driven OS (0;0) (0;1) (1;1) (0;0) (0;1) (1;0) (0;0) L idea è quella di fotografare periodicamente (in maniera sincrona con il clock del sistema di controllo digitale) tale stato e in base ad esso eseguire i task necessari. In tale modo si ottiene una gestione SINCRONA e PERIODICA di TUTTE le attività e quindi si aprono le porte ad una implementazione completamente time-driven. Via Ariosto 25-00185 Roma http://www.diag.uniroma1.it 23

DA EVENT-DRIVEN A TIME-DRIVEN Via Ariosto 25-00185 Roma http://www.diag.uniroma1.it 24

DA EVENT-DRIVEN A TIME-DRIVEN IPOTESI 2 Il problema del ritardo di rilevazione può essere mitigato ipotizzando che ogni task abbia una deadline relativa pari almeno al doppio del periodo di rilevazione: IPOTESI 3 Ipotizziamo che la somma dei tempi di calcolo degli n task sia inferiore al periodo di rilevazione: Via Ariosto 25-00185 Roma http://www.diag.uniroma1.it 25

DA EVENT-DRIVEN A TIME-DRIVEN Via Ariosto 25-00185 Roma http://www.diag.uniroma1.it 26

DA EVENT-DRIVEN A TIME-DRIVEN OSSERVAZIONE Al sistema di controllo TIME-DRIVEN possono essere accostate strategie di scheduling BEST EFFORT di task completamente aperiodici (ad es. richieste manuali di informazioni sullo stato della macchina tramite Human Machine Interface). Si può accostare al sistema di controllo TIME-DRIVEN una strategia di SERVIZIO IN BACKGROUND. Via Ariosto 25-00185 Roma http://www.diag.uniroma1.it 27

ESEMPIO PROBLEMA Dato un problema di Automazione con sistema di controllo digitale TIME DRIVEN composto da 3 task periodici: Lettura ingressi (T 1 = 8 t.u., C 1 = 1 t.u.) Elaborazione azioni di intervento (T 2 = 12 t.u., C 2 = 1 t.u.) Attuazione (T 3 = 16 t.u., C 3 = 1 t.u.) e da un task aperiodico: Richiesta aggiornamento HMI (a 4 (1) = 3 t.u., C 4 (1) = 15 t.u., D 4 (1) = 40 t.u.) mostrare uno schema di timeline scheduling + servizio in background che risolva il problema dato. Via Ariosto 25-00185 Roma http://www.diag.uniroma1.it 28

ESEMPIO cont d SVOLGIMENTO Verifichiamo la condizione NECESSARIA per la schedulabilità dei task periodici: Verifichiamo la condizione SUFFICIENTE per i sistemi TIME DRIVEN: Via Ariosto 25-00185 Roma http://www.diag.uniroma1.it 29

ESEMPIO cont d Passiamo quindi a tracciare la TIMELINE e i differenti TIMESLICE che la compongono. Calcoliamo pertanto il MINOR CYCLE (pari alla durata del TIMESLICE) e il MAJOR CYCLE (che definisce la periodicità dell algoritmo di TIMELINE SCHEDULING). TIMELINE MAJOR CYCLE = 12 MINOR CYCLE = 48 t.u. time TIME SLICE = MINOR CYCLE = 4 t.u. Via Ariosto 25-00185 Roma http://www.diag.uniroma1.it 30

ESEMPIO cont d Tracciamo il diagramma temporale dei 3 task periodici ed identifichiamo la soluzione, notando che: 1. Il task A 1 dovrà ripetersi MAJOR CYCLE / T 1 = 6 volte in un MAJOR CYCLE 2. Il task A 2 dovrà ripetersi MAJOR CYCLE / T 2 = 4 volte in un MAJOR CYCLE 3. Il task A 3 dovrà ripetersi MAJOR CYCLE / T 3 = 3 volte in un MAJOR CYCLE A 1 A 2 Tempo (t.u.) A 3 Tempo (t.u.) µp Tempo (t.u.) Tempo (t.u.) Via Ariosto 25-00185 Roma http://www.diag.uniroma1.it 31

ESEMPIO cont d Troviamo una soluzione al problema: A 1 Tempo (t.u.) A 2 Tempo (t.u.) A 3 µp A 4 Tempo (t.u.) Tempo (t.u.) Via Ariosto 25-00185 Roma http://www.diag.uniroma1.it 32

SISTEMI OPERATIVI REAL TIME Via Ariosto 25-00185 Roma http://www.diag.uniroma1.it 33

Consumer Electronics OS I sistemi operativi più diffusi (Windows, Linux, Mac OS) non sono adatti per gestire sistemi di controllo real time. Il problema principale risiede nella impossibilità di determinare il massimo tempo di esecuzione di un task (processo o thread che sia). Un computer non industriale è equipaggiato con risorse che bloccano la CPU e rendono difficilissimo gestire il determinismo dello scheduler implementato nel Kernel: Periferiche di I/O (Universal Serial Bus USB) DMA (Direct Memory Access) dell Hard Disk CACHE della CPU (quando si svuota la CPU non può lavorare) Memoria Virtuale (paging) IRQ (Interrupt Request) da parte di periferiche PCI ACPI (Advanced Configuration and Power Interface) cambia la frequenza della CPU Via Ariosto 25-00185 Roma http://www.diag.uniroma1.it 34

Sistemi Operativi Real Time Per rendere un Sistema Operativo Real Time è necessario mettere mano al codice del suo scheduler e del suo HAL (Hardware Abstraction Layer). Ma questo è possibile solo se il Kernel del sistema operativo è Open Source. TASK REAL TIME TASK NON REAL TIME SOFTWARE SCHEDULER SISTEMA OPERATIVO WATCHDOG TIMER BEST EFFORT HARDWARE ABSTRACTION LAYER (HAL) RISORSE HARDWARE PROCESSORE MEMORIA PERIFERICHE I/O Via Ariosto 25-00185 Roma http://www.diag.uniroma1.it 35

Esempi di Sistemi Operativi Real Time NON COMMERCIALI Nome ChibiOS/RT Cara)eris,che Open Source ; Sistemi Embedded Open Source; Wireless Sensor Nodes RTAI Linux Open Source (italiano); Computer Industriali; Linux based Open Source (italiano); Sistemi Embedded; Arduino Open Source; Cross plaborm Ethernut Open Source; Sistemi embedded dedicac Open Source; Sistemi embedded Via Ariosto 25-00185 Roma http://www.diag.uniroma1.it 36

BIBLIOGRAFIA Sezione 2.5 e 2.6 TITOLO Sistemi di automazione industriale Architetture e controllo AUTORI Claudio Bonivento Luca Gentili Andrea Paoli EDITORE McGraw-Hill Via Ariosto 25-00185 Roma http://www.diag.uniroma1.it 37