Seminario Programmare le Reti di Sensoria008149/corsi/so/materiale/...VMware Player Linux...

41
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

Transcript of Seminario Programmare le Reti di Sensoria008149/corsi/so/materiale/...VMware Player Linux...

Page 1: Seminario Programmare le Reti di Sensoria008149/corsi/so/materiale/...VMware Player Linux Installazione manuale usando il pacchetto RPM Installazione automatica per i sistemi debian

Seminario

Programmare le Reti di SensoriInsegnamento 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

Page 2: Seminario Programmare le Reti di Sensoria008149/corsi/so/materiale/...VMware Player Linux Installazione manuale usando il pacchetto RPM Installazione automatica per i sistemi debian

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

Page 3: Seminario Programmare le Reti di Sensoria008149/corsi/so/materiale/...VMware Player Linux Installazione manuale usando il pacchetto RPM Installazione automatica per i sistemi debian

PerLab

Sistemi Operativi

Sommario

Tossim

Installazione di TinyOS

Esempio di applicazioni

3

Page 4: Seminario Programmare le Reti di Sensoria008149/corsi/so/materiale/...VMware Player Linux Installazione manuale usando il pacchetto RPM Installazione automatica per i sistemi debian

Simulatore TOSSIM

Page 5: Seminario Programmare le Reti di Sensoria008149/corsi/so/materiale/...VMware Player Linux Installazione manuale usando il pacchetto RPM Installazione automatica per i sistemi debian

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

Page 6: Seminario Programmare le Reti di Sensoria008149/corsi/so/materiale/...VMware Player Linux Installazione manuale usando il pacchetto RPM Installazione automatica per i sistemi debian

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

Page 7: Seminario Programmare le Reti di Sensoria008149/corsi/so/materiale/...VMware Player Linux Installazione manuale usando il pacchetto RPM Installazione automatica per i sistemi debian

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

Page 8: Seminario Programmare le Reti di Sensoria008149/corsi/so/materiale/...VMware Player Linux Installazione manuale usando il pacchetto RPM Installazione automatica per i sistemi debian

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à

Page 9: Seminario Programmare le Reti di Sensoria008149/corsi/so/materiale/...VMware Player Linux Installazione manuale usando il pacchetto RPM Installazione automatica per i sistemi debian

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

Page 10: Seminario Programmare le Reti di Sensoria008149/corsi/so/materiale/...VMware Player Linux Installazione manuale usando il pacchetto RPM Installazione automatica per i sistemi debian

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

Page 11: Seminario Programmare le Reti di Sensoria008149/corsi/so/materiale/...VMware Player Linux Installazione manuale usando il pacchetto RPM Installazione automatica per i sistemi debian

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

Page 12: Seminario Programmare le Reti di Sensoria008149/corsi/so/materiale/...VMware Player Linux Installazione manuale usando il pacchetto RPM Installazione automatica per i sistemi debian

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

Page 13: Seminario Programmare le Reti di Sensoria008149/corsi/so/materiale/...VMware Player Linux Installazione manuale usando il pacchetto RPM Installazione automatica per i sistemi debian

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

Page 14: Seminario Programmare le Reti di Sensoria008149/corsi/so/materiale/...VMware Player Linux Installazione manuale usando il pacchetto RPM Installazione automatica per i sistemi debian

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à

Page 15: Seminario Programmare le Reti di Sensoria008149/corsi/so/materiale/...VMware Player Linux Installazione manuale usando il pacchetto RPM Installazione automatica per i sistemi debian

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

Page 16: Seminario Programmare le Reti di Sensoria008149/corsi/so/materiale/...VMware Player Linux Installazione manuale usando il pacchetto RPM Installazione automatica per i sistemi debian

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

Page 17: Seminario Programmare le Reti di Sensoria008149/corsi/so/materiale/...VMware Player Linux Installazione manuale usando il pacchetto RPM Installazione automatica per i sistemi debian

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

Page 18: Seminario Programmare le Reti di Sensoria008149/corsi/so/materiale/...VMware Player Linux Installazione manuale usando il pacchetto RPM Installazione automatica per i sistemi debian

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

Page 19: Seminario Programmare le Reti di Sensoria008149/corsi/so/materiale/...VMware Player Linux Installazione manuale usando il pacchetto RPM Installazione automatica per i sistemi debian

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

Page 20: Seminario Programmare le Reti di Sensoria008149/corsi/so/materiale/...VMware Player Linux Installazione manuale usando il pacchetto RPM Installazione automatica per i sistemi debian

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

Page 21: Seminario Programmare le Reti di Sensoria008149/corsi/so/materiale/...VMware Player Linux Installazione manuale usando il pacchetto RPM Installazione automatica per i sistemi debian

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

Page 22: Seminario Programmare le Reti di Sensoria008149/corsi/so/materiale/...VMware Player Linux Installazione manuale usando il pacchetto RPM Installazione automatica per i sistemi debian

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à

Page 23: Seminario Programmare le Reti di Sensoria008149/corsi/so/materiale/...VMware Player Linux Installazione manuale usando il pacchetto RPM Installazione automatica per i sistemi debian

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

Page 24: Seminario Programmare le Reti di Sensoria008149/corsi/so/materiale/...VMware Player Linux Installazione manuale usando il pacchetto RPM Installazione automatica per i sistemi debian

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

Page 25: Seminario Programmare le Reti di Sensoria008149/corsi/so/materiale/...VMware Player Linux Installazione manuale usando il pacchetto RPM Installazione automatica per i sistemi debian

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

Page 26: Seminario Programmare le Reti di Sensoria008149/corsi/so/materiale/...VMware Player Linux Installazione manuale usando il pacchetto RPM Installazione automatica per i sistemi debian

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

Page 27: Seminario Programmare le Reti di Sensoria008149/corsi/so/materiale/...VMware Player Linux Installazione manuale usando il pacchetto RPM Installazione automatica per i sistemi debian

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

Page 28: Seminario Programmare le Reti di Sensoria008149/corsi/so/materiale/...VMware Player Linux Installazione manuale usando il pacchetto RPM Installazione automatica per i sistemi debian

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

Page 29: Seminario Programmare le Reti di Sensoria008149/corsi/so/materiale/...VMware Player Linux Installazione manuale usando il pacchetto RPM Installazione automatica per i sistemi debian

Installazione di TinyOS

Page 30: Seminario Programmare le Reti di Sensoria008149/corsi/so/materiale/...VMware Player Linux Installazione manuale usando il pacchetto RPM Installazione automatica per i sistemi debian

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

Page 31: Seminario Programmare le Reti di Sensoria008149/corsi/so/materiale/...VMware Player Linux Installazione manuale usando il pacchetto RPM Installazione automatica per i sistemi debian

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

Page 32: Seminario Programmare le Reti di Sensoria008149/corsi/so/materiale/...VMware Player Linux Installazione manuale usando il pacchetto RPM Installazione automatica per i sistemi debian

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

Page 33: Seminario Programmare le Reti di Sensoria008149/corsi/so/materiale/...VMware Player Linux Installazione manuale usando il pacchetto RPM Installazione automatica per i sistemi debian

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

Page 34: Seminario Programmare le Reti di Sensoria008149/corsi/so/materiale/...VMware Player Linux Installazione manuale usando il pacchetto RPM Installazione automatica per i sistemi debian

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

Page 35: Seminario Programmare le Reti di Sensoria008149/corsi/so/materiale/...VMware Player Linux Installazione manuale usando il pacchetto RPM Installazione automatica per i sistemi debian

PerLab

Sistemi Operativi

Compilazione:

aprire una shell e digitare

cd /home/test/tinyos/apps/Skel

make telosb

35

Primo programma: verifica

Page 36: Seminario Programmare le Reti di Sensoria008149/corsi/so/materiale/...VMware Player Linux Installazione manuale usando il pacchetto RPM Installazione automatica per i sistemi debian

Esempi di applicazioni

Page 37: Seminario Programmare le Reti di Sensoria008149/corsi/so/materiale/...VMware Player Linux Installazione manuale usando il pacchetto RPM Installazione automatica per i sistemi debian

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

Page 38: Seminario Programmare le Reti di Sensoria008149/corsi/so/materiale/...VMware Player Linux Installazione manuale usando il pacchetto RPM Installazione automatica per i sistemi debian

PerLab

Sistemi Operativi

Aprire la shell e digitare il comando

Motelist

38

Lista nodi connessi

Page 39: Seminario Programmare le Reti di Sensoria008149/corsi/so/materiale/...VMware Player Linux Installazione manuale usando il pacchetto RPM Installazione automatica per i sistemi debian

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

Page 40: Seminario Programmare le Reti di Sensoria008149/corsi/so/materiale/...VMware Player Linux Installazione manuale usando il pacchetto RPM Installazione automatica per i sistemi debian

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

Page 41: Seminario Programmare le Reti di Sensoria008149/corsi/so/materiale/...VMware Player Linux Installazione manuale usando il pacchetto RPM Installazione automatica per i sistemi debian

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