Progetto e valutazione di un protocollo di power management per
Transcript
Progetto e valutazione di un protocollo di power management per
Seminario Programmare le Reti di Sensori Insegnamento di Sistemi Operativi Laurea Specialistica in Ingegneria Elettronica Ing. Ilaria Giannetti E-mail: [email protected] Telefono: 050 2217 468 Pervasive Computing & Networking Lab (PerLab) http://www.perlab.it Dipartimento di Ingegneria dell’Informazione, Università di Pisa © 2010 Ilaria Giannetti – Dipartimento di Ingegneria dell‟Informazione Informazioni generali PerLab Pagina web del corso http://www2.ing.unipi.it/~a008149/corsi/so/ Materiale: http://www2.ing.unipi.it/~a008149/corsi/so/materiale/ index.html Sezione “MATERIALE PER ESERCITAZIONI E PROGETTO (a.a. 2009/2010) - Slide esercitazioni” Sistemi Operativi 2 Sommario PerLab Tossim Installazione di TinyOS Esempio di applicazioni Sistemi Operativi 3 Simulatore TOSSIM TOSSIM PerLab Simulatore a eventi discreti per reti di sensori basate sul sistema operativo TinyOS Framework che permette di eseguire applicazioni TinyOS su un normale PC, invece che su un dispositivo mote reale Consente agli sviluppatori TinyOS di eseguire, testare e analizzare un‟applicazione per reti di sensori in un ambiente controllato e ripetibile Sistemi Operativi 5 Limitazioni PerLab Simulare TinyOs e le sue applicazioni Non simulare il mondo reale Non cattura tutti gli aspetti del mondo reale Non fornisce quindi una valutazione assoluta delle applicazioni Sistemi Operativi 6 Base PerLab Si basa su ipotesi che rendono accurati alcuni comportamenti semplificano altri comportamenti La domanda è TOSSIM può simulare X? Offre un modello accurato di X? Sistemi Operativi 7 Fedeltà PerLab Riproduce il comportamento di tinyOS ad un livello molto basso Simula la rete a livello di bit Simula i convertitori analogico - digitali Simula tutte le interruzioni a livello hardware Sistemi Operativi 8 Tempo PerLab Non modella il tempo di esecuzione, si basa sul tempo reale Dal punto di vista di TOSSIM, un pezzo di codice viene eseguito istantaneamente Il tempo è campionato in TOSSIM con una frequenza di 4 MHz, stessa frequenza di clock delle CPU presenti sulla maggior parte dei dispositivi mote reali Sistemi Operativi 9 Modelli 1/2 PerLab Modello: non modella il mondo reale, ma fornisce un‟astrazione dei fenomeni certi del mondo reale Modello radio: non modella la propagazione delle onde radio, ma fornisce un‟astrazione del tasso di errore per bit tra due nodi comunicanti Con l‟ausilio di tool esterni, è possibile modificare i modelli per implementare il tipo di modello desiderato. Sistemi Operativi 10 Modelli 2/2 PerLab Modello energetico: non modella il consumo di energia dei nodi ma durante la simulazione è possibile tenere traccia dei momenti in cui i dispositivi hardware transitano da uno stato di consumo energetico all‟altro (acceso, spento, in attesa, etc.) Applicando poi, dopo la simulazione, un modello di calcolo alle transazione da uno stato all‟altro, è possibile stimare il consumo energetico Misura non accurata Sistemi Operativi 11 Assemblaggio PerLab Simulatore: codice sorgente di un‟applicazione TinyOS Per simulare un protocollo o un sistema, bisogna scrivere una loro implementazione in TinyOS Pro: consente di prendere la propria implementazione e di eseguirla direttamente su un dispositivo reale Contro: difficoltà maggiore rispetto ad una simulazione astratta per via dell‟implementazione in TinyOS Sistemi Operativi 12 Ipotesi semplificative PerLab Ce ne sono varie Il codice eseguito nel simulatore potrebbe non essere eseguito su un dispositivo mote reale Esempio: in TOSSIM le interruzioni non hanno diritto di preemption, mentre su un mote reale un‟interruzione può essere sollevata mentre dell‟altro codice è in esecuzione Sistemi Operativi 13 Attendibilità PerLab Le reti di sensori hanno comportamenti complessi e altamente variabili che TOSSIM non può replicare Utile per confrontare il comportamento di un algoritmo rispetto ad un altro, MA non sono da considerare attendibili i risultati complessivi della simulazione Non è una piattaforma di valutazione, ma un sistema che permette di isolarsi dal rumore ambientale esterno per meglio comprendere il funzionamento degli algoritmi Sistemi Operativi 14 Architettura 1/2 PerLab Sfrutta la struttura del sistema TinyOS e dell‟intero sistema di compilazione, per generare una simulazione a eventi discreti direttamente dal grafo dei componenti di un‟applicazione TinyOS Sistemi Operativi 15 Architettura Cinque componenti: 2/2 PerLab 1. supporto alla compilazione per consentire l‟assemblaggio del simulatore direttamente dal codice sorgente di un‟applicazione TinyOS coda degli eventi discreta 2. coda degli eventi discreta 3. re-implementazioni di alcuni componenti che forniscono un‟astrazione software delle risorse hardware di un dispositivo (detti hardware abstraction ) Sistemi Operativi 4. meccanismi per l‟estensione dei modelli radio e ADC 5. servizi di comunicazione per consentire ad applicazioni esterne di interagire con la simulazione 16 1. Supporto alla compilazione PerLab Il compilatore nesC consente l‟assemblaggio del simulatore TOSSIM direttamente dal codice sorgente di un‟applicazione TinyOS Un‟applicazione può essere compilata per il framework di simulazione invece che per l‟hardware di un dispositivo mote, e viceversa Sistemi Operativi 17 Modello di esecuzione PerLab A eventi discreti Elemento centrale: la coda degli eventi TOSSIM Gli eventi in coda sostituiscono nell‟ambiente di simulazione le interruzioni hardware del mondo reale Sistemi Operativi 18 Eventi TOSSIM PerLab Invocano il gestore dell‟interruzione hardware che esso rappresenta all‟interno della simulazione Generati da: simulatore stesso eventi TinyOS comandi TinyOS Inseriti in coda degli eventi secondo un ordine temporale: in testa gli eventi tossim più imminenti in coda gli eventi tossim più lontani Sistemi Operativi 19 2. Coda degli eventi PerLab Gli eventi TOSSIM sono inseriti in coda degli eventi L‟inserimento segue un ordine temporale: in testa gli eventi TOSSIM più imminenti in coda gli eventi TOSSIM più lontani Riproduce la sequenza delle interruzioni hardware che nel mondo reale governerebbe l‟esecuzione dell‟applicazione TinyOS simulata Sistemi Operativi 20 Funzionamento Notifica di evento TOSSIM PerLab Invocazione del gestore dell‟interruzione hardware che esso rappresenta nella simulazione (hardware abstraction) La sua esecuzione determina la notifica di eventi TinyOS e l‟invocazione di comandi TinyOS Eventi notificati e comandi invocati contribuiranno alla generazione di altri eventi Sistemi Operativi 21 Simulatore vs realtà PerLab Il modello d‟esecuzione fornito dal simulatore TOSSIM è identico al modello concorrente di TinyOS Una sola eccezione: le interruzioni hardware, rappresentate dagli eventi TOSSIM, non possono interrompere l‟esecuzione di un task Sistemi Operativi 22 3. Hardware abstraction PerLab Emulazione hardware Ogni risorsa hardware corrisponde ad un‟astrazione che è un componete Risorse hardware emulate: il convertitore analogico-digitale (ADC) il clock il trasmettitore di potenza variabile la memoria EEPROM la sequenza di avvio vari componenti presenti nello stack radio sensori e attuatori Sistemi Operativi 23 4. Modello radio PerLab Un segnale di rete può assumere due valori: uno o zero Tutti i segnali hanno la stessa potenza e le collisioni sono modellate tutte come un „or‟ logico: non ci sono cancellazioni Due modelli: simple: tutti i nodi in una singola cella e, al suo interno, ciascun bit trasmesso è ricevuto senza errori lossy: rete rappresentata da grafo con archi orientati su cui è indicata la probabilità di errore per bit Sistemi Operativi 24 4. Modello ADC PerLab Simulazione a livello di porte Il tipo di modello determina come sono generati i valori prodotti dai dispositivi ADC Due modelli: casuale: generazione casuale di una stringa di 10 bit ogni volta che un dispositivo ADC vuole campionare il canale di comunicazione generale: generazione di stringhe predefinite di 10 bit, ma ha funzionalità aggiunte rispetto al modello casuale Sistemi Operativi 25 5. Servizi di comunicazione PerLab Consente ad applicazioni esterne di governare, monitorare ed eseguire la simulazione attraverso meccanismi di comunicazione basati su stack TCP/IP Interfaccia composta da comandi e eventi invia le notifiche di eventi alle applicazioni esterne per fornire informazioni sullo stato corrente della simulazione le applicazioni esterne invocano i comandi offerti dal simulatore per gestire la simulazione e per modificare il suo stato interno Sistemi Operativi 26 Programmazione PerLab TOSSIM è una libreria TinyOS che si trova in tos/lib/tossim Ogni directory di TinyOS con codice sorgente contiene una sottodirectory sim che contiene l‟implementazione TOSSIM di quel package Supporta 2 interfacce di programmazione: Python C++ Sistemi Operativi 27 Dettagli PerLab Il comando per la compilazione make telosb sim Output della simulazione: 0: 0: 0: 0: 00 0: 0: 0: 0: 00 LEDS: Yellow off. LEDS: Green off. LEDS: Red off. Sending message: ffff, 4 … LEDS: Yellow off. LEDS: Green off. LEDS: Red on. Sending message: ffff, 4 … Sistemi Operativi ff ff 04 7d 08 20 00 ff ff 04 7d 08 21 00 28 Installazione di TinyOS Metodi PerLab Windows Installazione manuale usando cygwin e il pacchetto RPM Eseguendo una macchina virtuale XubunTOS in VMware Player Linux Installazione manuale usando il pacchetto RPM Installazione automatica per i sistemi debian usando il repository TinyOS debian Eseguendo una macchina virtuale XubunTOS in VMware Player Sistemi Operativi 30 Installazione su Linux PerLab System -> Administration-> Synaptic Package Manager ( dal Top Panel ) Settare il repository sul Synaptic Package Manager. Settare „Software di terze parti‟. Clickare su Add e copiare: http://tinyos.stanford.edu/tinyos/dists/ubuntu NOME_DISTRIBUZIONE main Clickare OK e ricaricare i repository Cercare TinyOS ed installarlo Sistemi Operativi 31 Setting PerLab Aprire la shell e digitare gedit ~/.bashrc Aggiungere al file le seguenti righe in fondo #added export export export export export line below for tinyos TOSROOT=/opt/tinyos-2.1.0 TOSDIR=$TOSROOT/tos CLASSPATH=$TOSROOT/support/sdk/java/tinyos.jar MAKERULES=$TOSROOT/support/make/Makerules PATH=/opt/msp430/bin:$PATH Chiudere la shell e aprirne una nuova e digitare echo $makerules per controllare le variabili settate Sistemi Operativi 32 Primo programma: scrittura Aprire gedit, copiare e incollare il seguente codice PerLab /* The SKEL application */ module SkelC { uses interface Boot; configuration SkelAppC { } } implementation implementation { { components MainC, SkelC; event void Boot.booted() SkelC -> MainC.Boot; { } 1; } } Salvare in Salvare in /home/test/tinyos/apps/Skel/ /home/test/tinyos/apps/Skel/ SkelAppC.nc SkelC.nc Sistemi Operativi 33 Primo programma: makefile PerLab Creare un nuovo file con gedit e digitare: COMPONENT=SkelAppC include $(MAKERULES) Salvare in /home/test/tinyos/apps/Skel/Makefile Sistemi Operativi 34 Primo programma: verifica PerLab Compilazione: aprire una shell e digitare cd /home/test/tinyos/apps/Skel make telosb Sistemi Operativi 35 Esempi di applicazioni Ambiente di sviluppo PerLab Editor di testo Salvare applicazione in una cartella, di solito /percorso_installaz/tinyos/apps/Cartella_Applicaz Eclipse www.eclipse.org http://www.eclipse.org/downloads/ -> Eclipse classic http://wiki.eclipse.org/FAQ_Where_do_I_get_and_in stall_Eclipse%3F Plug-in per TinyOS http://www.eclipseplugincentral.com/modules.php -> cercare TinyOS http://tos-ide.ethz.ch/wiki/index.php Sistemi Operativi 37 Lista nodi connessi PerLab Aprire la shell e digitare il comando Motelist Sistemi Operativi 38 Skel PerLab Applicazione banale, di prova Nella cartella relativa all‟applicazione , compilare e installare sul nodo col comando make telosb install Usando il simulatore il comando è make telosb sim Sistemi Operativi 39 Blink PerLab Applicazione che spegne e accende i led in funzione del valore di un contatore Nella cartella relativa all‟applicazione , compilare e installare sul nodo col comando make telosb install Usando il simulatore il comando è make telosb sim Sistemi Operativi 40 Risorse e riferimenti PerLab TOSSIM: Tutorial: http://docs.tinyos.net/index.php/TOSSIM TinyOS installazione: Guide: http://docs.tinyos.net/index.php/Getting_started_usi ng_Ubuntu_9.10_and_TelosB_motes http://docs.tinyos.net/index.php/Installing_TinyOS_2 .1 Sistemi Operativi 41