In questa tesi è stata fatta una descrizione del tracing dei processi, per tener traccia delle attività svolte nel sistema operativo e degli istanti in cui hanno luogo: quando vanno in esecuzione, quando perdono la risorsa CPU a favore di un altro task, quando tornano pronti (ready) dopo un periodo di sospensione. All'inizio, il discorso era confinato ai soli processi Linux (sistema usato per questo lavoro). È stato studiato uno strumento di tracciamento, ftrace: come si attiva/disattiva, come traccia, cosa può tracciare, i suoi mezzi di elaborazione (tracer) e, poi, è stata condotta un'analisi del codice per capire approfonditamente il funzionamento del tracer sched_switch (commutazioni e riattivazioni di task). Si è, poi, preso in considerazione il sistema real time RTAI con i suoi task, con l’obiettivo, definito all’inizio della tesi, di ottenere il tracciamento delle commutazioni e delle riattivazioni di questi processi, insieme alle commutazioni e alle riattivazioni di quelli Linux, con l'uso di ftrace (in particolare è stato utilizzato il tracer sched_switch). Prima di tutto, si è verificato se lo strumento fosse già in grado di eseguire il tracing dei task RTAI e si è constatato che è in grado di tracciare i processi RTAI user space, ma non quelli kernel space. Si è quindi ravvisata la necessità di operare una integrazione di ftrace nel sistema real time. Inserendosi in RTAI e, grazie all'aiuto di una funzione appositamente sviluppata (task_conv) e di ftrace stesso, tutti i task RTAI sono risultati tracciabili correttamente nelle prove post-integrazione. Con questo risultato è possibile, quindi, esaminare la vita di processi real time, insieme a quelli Linux: come si comportano, quando cedono la CPU, quando la ottengono. Si ha a disposizione un quadro generale che consente di constatare cosa succede nel sistema durante l'esecuzione dei processi. Il risultato ottenuto con questa tesi è di rilevante importanza per la comunità di RTAI, perciò si è cominciato un merging del lavoro svolto nella distribuzione di RTAI. Ai lettori è richiesta una conoscenza di base del sistema operativo Linux: i comandi usati sono, comunque, corredati di sintetiche spiegazioni. La tesi contiene anche una quantità significativa di codice scritto in linguaggio C: per una sua comprensione è ovviamente necessaria la conoscenza del linguaggio stesso, anche se ogni riga di codice è corredata da adeguati commenti esplicativi.

Analisi e sviluppo di un framework integrato per il tracciamento di task Linux ed RTAI

Marini, Enrico
2010/2011

Abstract

In questa tesi è stata fatta una descrizione del tracing dei processi, per tener traccia delle attività svolte nel sistema operativo e degli istanti in cui hanno luogo: quando vanno in esecuzione, quando perdono la risorsa CPU a favore di un altro task, quando tornano pronti (ready) dopo un periodo di sospensione. All'inizio, il discorso era confinato ai soli processi Linux (sistema usato per questo lavoro). È stato studiato uno strumento di tracciamento, ftrace: come si attiva/disattiva, come traccia, cosa può tracciare, i suoi mezzi di elaborazione (tracer) e, poi, è stata condotta un'analisi del codice per capire approfonditamente il funzionamento del tracer sched_switch (commutazioni e riattivazioni di task). Si è, poi, preso in considerazione il sistema real time RTAI con i suoi task, con l’obiettivo, definito all’inizio della tesi, di ottenere il tracciamento delle commutazioni e delle riattivazioni di questi processi, insieme alle commutazioni e alle riattivazioni di quelli Linux, con l'uso di ftrace (in particolare è stato utilizzato il tracer sched_switch). Prima di tutto, si è verificato se lo strumento fosse già in grado di eseguire il tracing dei task RTAI e si è constatato che è in grado di tracciare i processi RTAI user space, ma non quelli kernel space. Si è quindi ravvisata la necessità di operare una integrazione di ftrace nel sistema real time. Inserendosi in RTAI e, grazie all'aiuto di una funzione appositamente sviluppata (task_conv) e di ftrace stesso, tutti i task RTAI sono risultati tracciabili correttamente nelle prove post-integrazione. Con questo risultato è possibile, quindi, esaminare la vita di processi real time, insieme a quelli Linux: come si comportano, quando cedono la CPU, quando la ottengono. Si ha a disposizione un quadro generale che consente di constatare cosa succede nel sistema durante l'esecuzione dei processi. Il risultato ottenuto con questa tesi è di rilevante importanza per la comunità di RTAI, perciò si è cominciato un merging del lavoro svolto nella distribuzione di RTAI. Ai lettori è richiesta una conoscenza di base del sistema operativo Linux: i comandi usati sono, comunque, corredati di sintetiche spiegazioni. La tesi contiene anche una quantità significativa di codice scritto in linguaggio C: per una sua comprensione è ovviamente necessaria la conoscenza del linguaggio stesso, anche se ogni riga di codice è corredata da adeguati commenti esplicativi.
2010-03-08
90
linux, rtai, tracciamento, tracing
File in questo prodotto:
File Dimensione Formato  
Tesi_specialistica-Marini_Enrico_586188.pdf

accesso aperto

Dimensione 1.44 MB
Formato Adobe PDF
1.44 MB Adobe PDF Visualizza/Apri

The text of this website © Università degli studi di Padova. Full Text are published under a non-exclusive license. Metadata are under a CC0 License

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/20.500.12608/13309