Post on 17-Jul-2019
Seminario
Programmare le Reti di SensoriInsegnamento di Sistemi Operativi
Laurea Specialistica in Ingegneria Elettronica
Ing. Ilaria Giannetti
E-mail: ilaria.giannetti@iet.unipi.it 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
PerLab
Sistemi Operativi
Informazioni generali
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”
2
PerLab
Sistemi Operativi
Sommario
Tossim
Installazione di TinyOS
Esempio di applicazioni
3
Simulatore TOSSIM
PerLab
Sistemi Operativi
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
5
TOSSIM
PerLab
Sistemi Operativi
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
6
Limitazioni
PerLab
Sistemi Operativi
Si basa su ipotesi che
rendono accurati alcuni comportamenti
semplificano altri comportamenti
La domanda è
TOSSIM può simulare X?
Offre un modello accurato di X?
7
Base
PerLab
Sistemi Operativi
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
8
Fedeltà
PerLab
Sistemi Operativi
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
9
Tempo
PerLab
Sistemi Operativi
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.
10
Modelli 1/2
PerLab
Sistemi Operativi
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
11
Modelli 2/2
PerLab
Sistemi Operativi
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
12
Assemblaggio
PerLab
Sistemi Operativi
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
13
Ipotesi semplificative
PerLab
Sistemi Operativi
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
14
Attendibilità
PerLab
Sistemi Operativi 15
Architettura 1/2
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
PerLab
Sistemi Operativi
Cinque componenti:
16
Architettura 2/2
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 )
4. meccanismi per
l‟estensione dei
modelli radio e ADC
5. servizi di
comunicazione per
consentire ad
applicazioni esterne
di interagire con la
simulazione
PerLab
Sistemi Operativi
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
17
1. Supporto alla compilazione
PerLab
Sistemi Operativi
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
18
Modello di esecuzione
PerLab
Sistemi Operativi
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
19
Eventi TOSSIM
PerLab
Sistemi Operativi
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
20
2. Coda degli eventi
PerLab
Sistemi Operativi
Notifica di evento TOSSIM
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 eventi21
Funzionamento
PerLab
Sistemi Operativi
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
22
Simulatore vs realtà
PerLab
Sistemi Operativi
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
23
3. Hardware abstraction
PerLab
Sistemi Operativi
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
24
4. Modello radio
PerLab
Sistemi Operativi
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
25
4. Modello ADC
PerLab
Sistemi Operativi
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 26
5. Servizi di comunicazione
PerLab
Sistemi Operativi
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++
27
Programmazione
PerLab
Sistemi Operativi
Il comando per la compilazione
make telosb sim
Output della simulazione:
0: LEDS: Yellow off.
0: LEDS: Green off.
0: LEDS: Red off.
0: Sending message: ffff, 4 ff ff 04 7d 08 20 00
00 …
0: LEDS: Yellow off.
0: LEDS: Green off.
0: LEDS: Red on.
0: Sending message: ffff, 4 ff ff 04 7d 08 21 00
00 …
28
Dettagli
Installazione di TinyOS
PerLab
Sistemi Operativi
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
30
Metodi
PerLab
Sistemi Operativi
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
31
Installazione su Linux
PerLab
Sistemi Operativi
Aprire la shell e digitaregedit ~/.bashrc
Aggiungere al file le seguenti righe in fondo#added line below for tinyos
export TOSROOT=/opt/tinyos-2.1.0
export TOSDIR=$TOSROOT/tos
export CLASSPATH=$TOSROOT/support/sdk/java/tinyos.jar
export MAKERULES=$TOSROOT/support/make/Makerules
export PATH=/opt/msp430/bin:$PATH
Chiudere la shell e aprirne una nuova e digitareecho $makerules
per controllare le variabili settate
32
Setting
PerLab
Sistemi Operativi
Aprire gedit, copiare e incollare il seguente
codice
33
Primo programma: scrittura
configuration SkelAppC { }
implementation
{
components MainC, SkelC;
SkelC -> MainC.Boot;
}
Salvare in
/home/test/tinyos/apps/Skel/
SkelAppC.nc
/* The SKEL application */
module SkelC
{
uses interface Boot;
}
implementation
{
event void Boot.booted()
{
1;
}
}
Salvare in
/home/test/tinyos/apps/Skel/
SkelC.nc
PerLab
Sistemi Operativi
Creare un nuovo file con gedit e digitare:
34
Primo programma: makefile
COMPONENT=SkelAppC
include $(MAKERULES)
Salvare in
/home/test/tinyos/apps/Skel/Makefile
PerLab
Sistemi Operativi
Compilazione:
aprire una shell e digitare
cd /home/test/tinyos/apps/Skel
make telosb
35
Primo programma: verifica
Esempi di applicazioni
PerLab
Sistemi Operativi
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
37
Ambiente di sviluppo
PerLab
Sistemi Operativi
Aprire la shell e digitare il comando
Motelist
38
Lista nodi connessi
PerLab
Sistemi Operativi
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
39
Skel
PerLab
Sistemi Operativi
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
40
Blink
PerLab
Sistemi Operativi
Risorse e riferimenti
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
41