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 Tesi di laurea magistrale in ingegneria elettronica
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: IdNumero identificativo univoco del task NameNome del task Arrival patternPeriodo del task TypeTipo di task: periodico, aperiodico, undefined PriorityPriorità del task (un valore basso indica un task ad alta priorità) UsageTempo di utilizzo della risorsa DeadlineLimite di tempo massimo entro il quale il task deve essere portato a termine Tabella delle tecniche
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 laffidabilità. 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 dellambiente 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. Formato xml garantisce la leggibilità da altre applicazioni e laggiunta di nuove informazioni opzionali. Interfacciamento tramite dll Loperazione 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...). Possibilità di inserire commenti aggiuntivi per il set di tasks. Valori di default intelligenti per nuovi tasks. Ordinamento in base alle varie colonne (parametri dei 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 lintero sistema
Ottimizzazione E possibile effettuare in modo automatico un ottimizzazione basata sulla modifica della priorità dei singoli task al fine di migliorare laffidabilità dellintero 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 Lottimizzazione basata sulla permutazione delle priorità avviene analizzando tutti i casi possibili e valutandoli attraverso lutilizzo di una funzione di costo. La funzione di costo è parametrizzata Lesplorazione può essere effettuata in parallelo tramite multithreading E possibile escludere dallottimizzazione uno o più tasks Lesplorazione 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, leventuale analisi e lottimizzazione 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 dellapplicazione Splashscreen Guida interattiva Tray – icon Form di About Screenshot del contenuto presente nei forms Pacchetto di installazione e distribuzione
Risultati ottenuti Le prove effettuate, una delle quali è riportata in tabella, evidenziano che è possibile migliorare laffidabilità del sistema tramite una corretta ottimizzazione.
Conclusioni Il tool realizzato si è rivelato utile per lanalisi 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