tesi di laurea Anno Accademico 2005/2006 relatore Ch.mo Prof. Ing. Domenico Cotroneo correlatore Ing. Armando Migliaccio candidato Giuseppe Di Luca Matr. 534/1493
LibeRTOS KUSP Contesto Linux based Real Time Operating System Implementato nell ambito del progetto KURT Linux KURT Linux: Kansas University Real Time Linux Particolare attenzione alle problematiche Real Time Parte integrante del progetto KUSP Kansas University System Programming Pacchetto con strumenti per la programmazione del sistema operativo LibeRTOS Supporto per l innovativo l meccanismo di schedulazione Group Scheduling Kusp Experiments: pacchetto contenente esempi di funzionamento Perché il Group Scheduling Inefficacia delle tradizionali politiche di scheduling per i Real Time tasks Superamento delle problematiche per i metodi di scheduling basati i su priorità Evita la composizione di varie politiche di scheduling con quelle e a priorità
Il concetto Il Group Scheduling Model Raggruppamento delle computazioni affini per la formazione di gruppi semanticamente omogenei Rendere computation-specific le politiche di scheduling del sistema La struttura Le entità del modello: i nodi Gruppo/Processo Organizzazione gerarchica dei nodi in un albero: lo Scheduling Decision D Tree (SDT e SSDT) Le politiche di scheduling: Scheduling Decision Functions (SDFs) Associazione ai nodi processo delle specifiche computazioni da svolgeres Esempi di funzionamento
Vantaggi Particolari del Group Scheduling Rappresentazione esplicita della struttura computazionale delle applicazioni Aumento della personalizzabilità del sistema Aumento della trasparenza del sistema Svantaggi API difficili da gestire per il programmatore Complessità nella costruzione del codice per applicazioni con elevato numero di nodi Programmi Group Scheduling difficilmente manutenibili Soluzioni Progettazione di un tool per la costruzione visuale dell albero di schedulazione Automatizzazione dei processi di generazione del codice per le strutture s create graficamente
Caratteristiche Il tool sviluppato: GS Graphic Tool/1 Possibilità di creare visivamente la struttura gerarchica Aggiunta/Rimozione/Modifica dei nodi dell albero Definizione delle caratteristiche e dei parametri di scheduling per i nodi Possibilità di definizione delle computazioni per i nodi Processo Configurabilità Definizione dei percorsi di inclusione per i files di intestazione ne che definiscono gli schedulers Generazione del codice Selezione del percorso di salvataggio Generazione del file di intestazione per l inclusione l dei prototipi delle primitive Group Scheduling e delle computazioni eventualmente implementate Generazione del sorgente effettivo dell applicazione Scrittura del Makefile per la compilazione del sorgente generato
Progettazione Il tool sviluppato: GS Graphic Tool/2 Definizione delle entità previste dal modello: Nodo e Albero Definizione di un interfaccia per la visualizzazione della struttura creata Definizione di un interfaccia generale per l inserimento l delle caratteristiche dei nodi Interfaccia text-editing editing per inserimento codice computazioni Architettura Pattern MVC
Le interfacce grafiche Dettagli implementativi Utilizzo del toolkit grafico GTK+: Gimp ToolKit Composizione degli oggetti grafici (widgets( widgets) ) secondo la teoria di packing Meccanismo di segnali ed eventi per la gestione delle interazioni GtkTreeView E un oggetto introdotto dalle versioni più recenti del toolkit GTK+ fornisce un Model implementato dall oggetto GtkTreeStore collegabile all oggetto View che visualizza i dati Il Controller dell applicazione gestisce gli aggiornamenti del Model in base alle interazioni dell utente View aggiornata automaticamente da GTK+ attraverso il meccanismo dei segnali GtkSourceView Estensione del widget GtkTextView di GTK+ Supporto al text editing con funzionalità di evidenziazione della sintassi di molti linguaggi Autoindentazione del codice, hi-lighting della riga corrente, evidenziazione delle parentesi corrispondenti
Schermate dell applicazione/1 Interfaccia principale di semplice utilizzo Look personalizzato grazie ai package forniti dal toolkit GTK+ Menubar per la scelta di funzioni di utilità Possibilità configurazione dei percorsi di inclusione (menù Modifica) Barra dei bottoni per l accesso l alle principali funzionalità del tool Suggerimenti (tooltips) definiti per i singoli bottoni
Schermate dell applicazione/2 Entry per l inserimento l del nome Radio button per la scelta del tipo Scelta della SDF per i gruppi Associazione delle computazioni ai processi Possibilità di inserimento per parametri scheduler-specific Possibilità di espansione del percorso creato
Contributi della tesi Conclusione Obiettivi raggiunti Progetto e realizzazione di un tool visuale per la costruzione di applicazioni per Linux LibeRTOS che sfruttino il Group Scheduling Automatizzazione dei processi di generazione dei files per le strutture costruite graficamente: file di intestazione per i prototipi file contenente il codice sorgente per la struttura Makefile per la compilazione del codice