Tesi di laurea magistrale in ingegneria elettronica
Tools di supporto alla configurazione e alla manutenzione degli
apparati fail safe. Sviluppo di moduli di software residenti su
piattaforme standard (es. Personal Computer) in grado di:
interfacciarsi direttamente con schede microprocessore per la
loro configurazione, generare la configurazione per le stesse
ed aiutare l'utente nella manutenzione dell'impianto
Relatore accademico:
Chiar.moProf. Rodolfo Zunino
Relatore aziendale:
Ing. Giacomo Donati
Candidato:
Lorenzo Banderali
Sistemi in tempo reale
Sistemi in tempo reale (RTS): sistemi la cui correttezza dipende non
solo dal risultato della computazione ma anche dal tempo in cui i
risultati sono prodotti
Il sistema è multitasking e cianscun task è contraddistinto dai seguenti
parametri:
Id
Tabella
delle tecniche
Numero
identificativo
univoco del task
Name
Nome del task
Arrival pattern
Periodo del task
Type
Tipo di task: periodico, aperiodico, undefined
Priority
Priorità del task (un valore basso indica un task ad alta priorità)
Usage
Tempo di utilizzo della risorsa
Deadline
Limite di tempo massimo entro il quale il task deve essere
portato a termine
Obiettivo
Sviluppo di un sistema software in grado di:
• Analizzare se il sistema sarà schedulabile rispettando i vincoli temporali e
fornendo, in caso positivo, anche un margine indicativo di sicurezza.
• Cercare di rendere schedulabile il set di tasks, qualora non rispetti i vincoli
temporali, o migliorarne l’affidabilità.
• Mostrare in modo grafico i dati acquisiti dal dispositivo per verificare come
è avvenuta schedulazione.
• Generare un report facilmente esportabile e consultabile anche in
modo stand-alone e da qualsiasi piattaforma.
Scelta del linguaggio e
dell’ambiente di sviluppo
C# è il nuovo linguaggio di programmazione di Microsoft, nato e concepito
per diventare il principale strumento di sviluppo per la piattaforma .NET.
E’ un linguaggio di programmazione semplice ma efficace per la scrittura di
applicazioni aziendali ed è un'evoluzione dei linguaggi C e C++.
Utilizza numerose caratteristiche di C++ nelle aree di istruzioni, espressioni
e operatori
• Completo supporto dell'interoperabilità tramite i servizi COM+ 1.0 e
.NET Framework con accesso basato completamente su libreria.
•Affidabilità grazie alle funzionalità di Garbage Collection e type-safety.
•Utilizza la libreria di runtime di .NET Framework.
Fonte: MSDN
Tipico scenario di utilizzo del software
SchedAnalyzer
Interfaccia
I dati possono essere importati ed esportati in 2 formati
• Formato “vtd” permette di interfacciarsi con i dispositivi (target CPU). Il
formato del file è binario.
Interfacciamento
tramite dll
• Formato “xml” garantisce la leggibilità da altre applicazioni e l’aggiunta di
nuove informazioni opzionali.
L’operazione di lettura avviene in modo affidabile e fault tolerant
Visulizzazione & editazione
E’ possibile visualizzare, modificare cancellare ed aggiungere un nuovo task
attraverso un form grafico.
• Controllo automatico della correttezza dei dati inseriti in base a
regole (valori negativi, duplicati per campi univoci, etc...).
• Valori di default intelligenti per nuovi tasks.
• Ordinamento in base alle varie colonne (parametri dei tasks)
• Possibilità di inserire commenti aggiuntivi per il set di tasks.
Analisi di schedulabilità
E’ possibile analizzare la schedulabilità del sistema ed individuare
eventuali task critici al fine di ottimizzarli.
• Rispetto della deadline e margine da parte dei singoli tasks
• Report indicativo globale per l’intero sistema
Ottimizzazione
E’ possibile effettuare in modo automatico un ottimizzazione basata
sulla modifica della priorità dei singoli task al fine di migliorare
l’affidabilità dell’intero sistema.
• Ottimizzazione tramite permutazione della priorità dei singoli tasks
• Ottimizzazione tramite criterio rate monotonic: priorità maggiore
per i tasks che devono essere schedulati frequentemente
Ottimizzazione
L’ottimizzazione basata sulla permutazione delle priorità avviene
analizzando tutti i casi possibili e valutandoli attraverso l’utilizzo di
una funzione di costo.
 La funzione di costo è parametrizzata
 L’esplorazione può essere effettuata in parallelo tramite multithreading
 E’ possibile escludere dall’ottimizzazione uno o più tasks
L’esplorazione di tutti i possibili casi può richiedere molto tempo poiché
la crescita è di tipo fattoriale rispetto al numero di tasks da ottimizzare.
Visualizzazione degli eventi
E’ possibile visualizzare come è avvenuta realmente la schedulazione
dei singoli task sul dispositivo (target CPU).
La finestra consente lo zoom, lo scorrimento orizzontale e verticale, il
ridimensionamento, la visualizzazione delle deadline, dei “tic” ed è possibile ordinare i
tasks.
Generazione del report
E’ possibile generare un report HTML che riporti la descrizione di tutti i
tasks che caratterizzano il sistema, l’eventuale analisi e
l’ottimizzazione apportata.
 Visualizzabile in modo stand-alone
tramite comune web browser.
 Compatibile con tutti i S.O.
 Facilmente importabile anche
attraverso altri applicativi (es World).
 Consultabile via web.
Altre funzionalità
• Formato dei settaggi dell’applicazione
• Guida interattiva
• Splashscreen
• Form di “About”
• Tray – icon
• Pacchetto di installazione e distribuzione
• Screenshot del contenuto presente nei forms
Risultati ottenuti
Le prove effettuate, una delle quali è riportata in tabella, evidenziano
che è possibile migliorare l’affidabilità del sistema tramite una corretta
ottimizzazione.
Conclusioni
Il tool realizzato si è rivelato utile per l’analisi a priori e a posteriori dei
sistemi in tempo reale ed è attualmente utilizzato da A.S.F (Ansaldo
Segnalamento Ferroviario).
Ringrazio il personale di A.S.F per avermi coinvolto ed appassionato
nel lavoro
Scarica

Presentazione ppt