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