56
Estudo sobre o TinyOS em aplicações de redes sensoriais sem fio Universidade Federal do Ceará Engenharia de Teleinformática – Sistemas de Tempo Real Professor: Helano Castro Aluno: Tiago Augusto da Silva Bencardino 2011.1

Rssf com TinyOS

Embed Size (px)

DESCRIPTION

Estudo sobre redes de sensoriamento sem fio com o sistema operacional TinyOS.

Citation preview

Page 1: Rssf com TinyOS

Estudo sobre o TinyOS em aplicações de redes sensoriais sem fio

Universidade Federal do Ceará Engenharia de Teleinformática – Sistemas de Tempo Real Professor: Helano Castro Aluno: Tiago Augusto da Silva Bencardino 2011.1

Page 2: Rssf com TinyOS

}  Redes de sensoriamento sem fio §  Definição §  Exemplo §  Conceitos §  Motes §  Motivação para SO

}  TinyOS •  Histórico •  Arquitetura •  Gerenciamento de processos e eventos •  Active messages •  Aplicações

Page 3: Rssf com TinyOS

}  O que é? ◦  Conjunto de nós com capacidade de sensoriamento,

processamento e comunicação sem fio

}  Para quê? ◦  Monitorar variáveis de interesse ou detectar evento em

uma região

Page 4: Rssf com TinyOS

}  Controle: monitoramento industrial }  Meio ambiente: florestas, oceanos }  Segurança: alarmes de residências, prédios, fábricas }  Tráfego: monitoramento de vias, estacionamentos,

fotos sensores

}  Medicina: monitorar funcionamento de órgãos como o coração

}  Militar: vigilância monitoramento, rastreamento, segurança, controle e manutenção

Page 5: Rssf com TinyOS

}  Monitoramento das forças amigas }  Processo de vigilância – áreas críticas, rotas de

aproximação e caminhos estreitos }  Estudos sobre a tropa inimiga e o terreno de

batalha – ataques surpresa e métodos de defesa }  Sistemas modernos de mira automática }  Controlar um elemento da tropa: pressão

cardíaca, temperatura, infecção }  Guerra biológica/química: detecção de agentes

contaminadores

Page 6: Rssf com TinyOS

}  Ponteiro: detecção de alvos – acústicos, sísmicos, magnéticos

}  Localização e reconhecimento: fusão dos dados }  C2: nós “sink” móveis

Page 7: Rssf com TinyOS
Page 8: Rssf com TinyOS

}  Baixo custo e baixo consumo de energia }  Limitação de memória e capacidade de

processamento. }  Nós simples podem mudar de posição ou falhar

devido a influência do meio. }  Variáveis de ambiente precisam ser processadas

rapidamente para evitar perda de deadlines.

}  Precisam coletar informação, processar parcialmente e transmitir dados.

Page 9: Rssf com TinyOS

}  Fluxo de dados predominantemente unidimensional – nós intermediários como multi-hop / ad-hoc

}  Energia consumida ~ distância² }  Sink: nós especiais que processam ou consomem

dados

Page 10: Rssf com TinyOS
Page 11: Rssf com TinyOS

}  Auto-organização: organizar em grupos }  Auto-configuração: adaptar-se a mudanças do

ambiente e topologia }  Auto-diagnóstico: detectar problemas (baixa

densidade ou desperdício de energia) }  Auto-cura: recuperar-se dos problemas.

Tolerância a falhas }  Auto-proteção: detectar, identificar, proteger

contra ameaças internas e externas }  Auto-conhecimento: conhecer o ambiente e a si

próprio

Page 12: Rssf com TinyOS

}  Escalabilidade: grande número de nós distribuídos

}  Tolerância a falhas: grandes quantidades de nós podem falhar e o sistema deve, automaticamente, reconfigurar-se

}  Redundância de informação: algumas aplicações podem multiplicar a informação para aumentar a precisão.

}  Overhead mínimo para outras aplicações

Page 13: Rssf com TinyOS

}  Grande número de nós distribuídos

}  Restrição de energia

}  Rede autônoma, com alto grau de cooperação

}  Protocolos de comunicação e eleição de líder devem levar em conta topologia física da rede

}  Muito sujeita a falhas devido a perda de nós e interrupção de comunicação (meio hostil)

Page 14: Rssf com TinyOS
Page 15: Rssf com TinyOS

}  Funções de um mote: ◦  Capturar informações sensoriais do meio ◦  Processar, mesmo que limitadamente ◦  Comunicar com outros nós na rede

}  Objetivos principais (Goals)

◦  Prover o maior alcance possível (dezenas de km) ◦  Baixíssimo consumo de energia (uA) ◦  Fácil processo de desenvolvimento para os usuários

Page 16: Rssf com TinyOS

}  Funções principais:

◦  Executar tarefas

◦  Processar informação

◦  Controlar funcionalidades de outros componentes

Page 17: Rssf com TinyOS

}  Meios de transmissão wireless:

◦  Laser: consome menos energia, porém muito sensível a mudanças climáticas ◦  Infra-Red: também não precisam de antena, mas

possui limitações broadcasting ◦  ISM/RF: Mais relevante e mais usado; tendem a usar

freqüências fixas: 173,433,868 MHz e 2.4GHz.

}  Estados operacionais: transmit, receive, idle e sleep.

Page 18: Rssf com TinyOS

}  Tipos de memória ◦  RAM: raramente usada devido ao seu consumo ◦  Flash: Bom custo e boa capacidade de

armazenamento

}  Assim como em desktops, duas categorias de memórias: ◦  User memory: derivadas da aplicação/pessoal ◦  Program memory: usada para programar o

dispositivo. Pode conter uma id do dispositivo.

Page 19: Rssf com TinyOS

}  Gasto para monitorar, comunicar e processar. }  Maior gasto: comunicação. ◦  Exemplo: o gasto energético para transmitir 1Kb

por 100 metros é o mesmo de executar 3mi de instruções em um processador de 100 MHz

}  Pode ser armazenado em baterias ou capacitores. ◦  baterias comuns: NiCd, NiZn, niMh, lithium-ion.

}  Podem também captar energia por fonte solar, diferença de temperatura, indução EM ou vibrações.

Page 20: Rssf com TinyOS

}  Dispositivos de hardware que medem uma condição física como temperatura, som, pressão, etc.

}  Sinal analógico convertido em digital por um A/D e enviado para o controlador para ser processado.

Page 21: Rssf com TinyOS

Microcontroller

Radio

Flash Storage

Network

Page 22: Rssf com TinyOS

}  Principal motivo para ter um SO: configurações flexíveis nos nós sensores

}  Limitação de memória: torna-se impossível armazenamento de todos os programas nos nós

}  Compartilhamento dos aplicativos entre os nós da rede

}  Customização para o projeto }  Baixo custo/processamento limitam

algoritmos complexos. Ex: alguns algoritmos de gerenciamento de processos

Page 23: Rssf com TinyOS

Sistema Operacional

Modelo ROM RAM Tipo de processo

TinyOS v1 Events 3.4 kB 336 B Tasks, commands, event handlers

TinyOS v2 Events 3.4 kB 336 B Tasks, commands, event handlers Contiki Events 3.8 kB 230 B Protothreads MantisOS Multithreading 14 kB 500 B Threads Nano-RK Multithreading 10 kB 2000 B Tasks with priority T-Kernel Multithreading 28 kB 2000 B Threads Bertha Mobile agents 10 kB 1500 B Process Fragments CORMO Events 5.5 kB 130 B Tasks and event handlers SOS Events 20 kB 1163 B Tasks defined as modules SenOS State Machines ----- ------ Processes

Page 24: Rssf com TinyOS

“Hurry up and Sleep!”

Page 25: Rssf com TinyOS

}  Sistema operacional baseado em componente }  Código livre (free) e aberto (open-source)

}  Linguagem de programação utilizada: nesC

}  Incorporado em Smartdusts (Wireless MEMS), como os nós RSSF

}  Recursos MUITO limitados (ex: 8KB de memória de programa, 512 bytes de RAM).

Page 26: Rssf com TinyOS

}  1999: iniciou-se como projeto em UC Berkeley como parte do DARPA NEST program, gerando a primeira plataforma (WeC);

}  2000: Associação com a Crossbow Inc., para produção de hardware específico;

}  2001: versão 0.6 com plataforma mica e mix entre C e Perl script;

}  2002: versão 1.0, com linguagem nesC, desenvolvida em parceria com a Intel.

Page 27: Rssf com TinyOS

}  2003: versão 1.1 lançada com algumas novidades em nesC, entre elas detecção de condições de corrida (data race)

}  2006: Versão 2.0 lançada no 3º TinyOS Technology Exchange em Stanford, CA

}  2007: 2.01 e 2.02 }  2008: 2.1.0 }  Abril de 2010: ultima versão, 2.1.1

Page 28: Rssf com TinyOS

}  Recursos limitados: ◦  motes são limitados ◦  não podemos parar e esperar por melhorias ◦  Embora exista a Lei de moore: ◦  ↑ processamento, ↓ tamanho

}  Concorrência reativa: ◦  monitorar o ambiente, rotear dados, processar

dados locais, etc. ◦  Alguns eventos exigem uma resposta em tempo

real. ◦  Abordagem que gerencie concorrencia e reduza

bugs potenciais enquanto respeite recursos e deadlines.

Page 29: Rssf com TinyOS

}  Flexibilidade: ◦  Altas taxas de inovação de Software e Hardware ◦  exigência um OS flexível para reduzir espaço, energia

e tempo de projeto

}  Baixo Consumo: ◦  Densidade de baterias não acompanham lei de moore ◦  Poucos motes utilizam captação de energia suficiente ◦  S.O. deve ter uma boa estratégia para o duty-cycle e

gerenciamento de energia

Page 30: Rssf com TinyOS

}  Propósito geral, muitas funcionalidades, API’s }  Proteção entre app’s não confiáveis ao kernel ◦  Overhead para definir fronteiras kernel/user e

controle de interrupção }  Arquitetura multi-thread ◦  Muitas threads == Muita memória ◦  Overhead de troca de contexto

}  Modelo I/O ◦  Bloqueio: memória sendo bloqueada ◦  Polling: gasto de ciclos de CPU, energia

Page 31: Rssf com TinyOS

}  Características únicas: ◦  Arquitetura baseada em componentes ◦  Concorrência baseada em tarefas e eventos

◦  Operações divididas em fases

Page 32: Rssf com TinyOS

}  Aplicação: escalonador + componentes ◦  Compilado em 1 (um) executável

}  Arquitetura orientada a eventos }  Stack única e compartilhada }  Sem diferença entre região do kernel/user

Actuating Sensing Communication

Application (User Components)

Main (includes Scheduler)

Page 33: Rssf com TinyOS

}  Um ou mais componentes são “acoplados de modo a personalizar o SO para a aplicação

}  Usados para abstrações comuns, como comunicação, roteamento, sensoriamento, atuação e armazenagem.

}  Utilizam interfaces com funcionalidades especiais

Page 34: Rssf com TinyOS

Messaging Component

Internal State Internal Tasks

Commands Events

Page 35: Rssf com TinyOS

}  Comunicam-se com outros components }  São bi-direcionais e contém: ◦  Commands: implementadas pelos providers ◦  Events: implementadas pelos users

Page 36: Rssf com TinyOS

Interface Description ADC Sensor hardware interface Clock Hardware clock EEPROMRead/Write EEPROM read and write HardwareId Hardware ID access I2C Interface to I2C bus Leds Red/yellow/green LEDs MAC Radio MAC layer Mic Microphone interface Pot Hardware potentiometer for transmit power Random Random number generator ReceiveMsg Receive Active Message SendMsg Send Active Message StdControl Init, start, and stop components Time Get current time TinySec Lightweight encryption/decryption WatchDog Watchdog timer control

Page 37: Rssf com TinyOS

}  Command ◦  Inter-component ◦  Requisição para um componente executar algum

serviço, como iniciar a leitura de um sensor

}  Event ◦  Inter-component ◦  Sinal que representa o resultado de um serviço ou: ◦  Sinal assíncrono devido a uma interrupção de

hardware/chegada de mensagem

Page 38: Rssf com TinyOS

}  Comandos e eventos não podem ser bloqueados

}  O request de serviço é dividido de modo que: ◦  O comando retorna imediatamente ◦  O sinal de evento completa em seguida

Page 39: Rssf com TinyOS

}  são intra-component }  não interferem entre si, ou seja, não há

preempção entre as mesmas. }  Executam até terminar (Run to Completion) –

atômicas a outras tarefas }  Uitilizam a política FIFO para escalonamento }  Quando não há mais tasks na fila, o sistema

dorme

Page 40: Rssf com TinyOS

}  Tarefas são enviadas ao escalonador através do operador post

}  O escalonador pode executar tarefas em qualquer ordem, desde que obedeça o run-to-completion

}  O padrão do escalonador TinyOS é FIFO (first-in, first-out); porém, outras políticas já foram implementadas pela U. Berkeley, como a Earliest-deadline first.

Page 41: Rssf com TinyOS

}  Eventos podem chegar a qualquer momento }  Execução imediata para realizar “best-effort”

de tempo real }  Um evento gera uma interrupção por

hardware

}  Resumidamente: tarefas são atômicas entre si, mas não são atômicas em relação a comandos e eventos.

Page 42: Rssf com TinyOS

}  Tarefas: computar ◦  FIFO não-preemptável ◦  Número limitado de processos

}  Eventos: fluxo de dados simultâneo ◦  Oriundos de uma interrupção por hardware ◦  Preemptam tarefas ◦  Podem ser sinais de eventos, chamadas de

comandos ou posts de tarefas

Page 43: Rssf com TinyOS

}  Modos de operação: ◦  Síncrono (SC): devido as tarefas ◦  Assíncrono (AC): devido as interrupções por

hardware

}  Em SO comuns, o approach AC é evitado ao máximo; componentes usam RT hardware

}  Cabe ao programador construir

compartilhamento seguro de dados entre AC e SC

Page 44: Rssf com TinyOS

}  Embora não exista condição de corrida entre tarefas, podem existir entre SC/AC ou mesmo AC/AC

}  Soluções: ◦  Converter os códigos conflituosos para tarefas ◦  Usar seções atômicas para acesso de regiões

compartilhadas

}  Nas seções atômicas, as interrupções são desabilitadas.

Page 45: Rssf com TinyOS
Page 46: Rssf com TinyOS

}  Socket/TCP/IP? }  Muita memória para buffering e threads ◦  Informação é guardada em uma pilha antes da

thread ler ◦  Threads podem bloquear se não houver informação

a ser lida ainda }  Transmite MUITOS bits (sequence #, ack,

retransmissão) }  Adequado a arquitetura multi-thread }  Solução: Active Messages

Page 47: Rssf com TinyOS

}  Cada mensagem contém: ◦  Um nome de event handle ◦  Target node ◦  Data Payload para passar argumentos

}  Handler ◦  Extrair a mensagem ◦  Executar a informação ou enviar resposta

}  Objetivo da comunicação: ser magra }  Resposta deve ser rápida e assíncrona

Page 48: Rssf com TinyOS

}  Emissor

}  Receptor

Page 49: Rssf com TinyOS

}  Send Command ◦  Endereço de destino ◦  Handler ID ◦  Corpo da mensagem

}  AM componente: ◦  Checagem de endereço ◦  Despacho

}  Entrega confiável não é garantida, porém: ◦  Transmissão básica ◦  CRC checked packets component ◦  Forward error packets component

Page 50: Rssf com TinyOS

}  Normalmente iniciada por um nó gateway root

}  Cada root periodicamente envia uma mensagem com seu id e distância (0) para sua vizinhança

}  O handler checa se a fonte é o mais perto; caso seja: ◦  Guarda o source ID como parente multi-hop ◦  Incrementa a distância ◦  Retransmite a messagem com o seu próprio id

Page 51: Rssf com TinyOS

}  Rede Hierárquica (clusters) ◦  Seleção do nó líder de grupo ◦  Broadcast a partir do cluster-head ◦  Nós sensores entram no cluster-head mais próximo

Page 52: Rssf com TinyOS

}  Monitoramento de entidades de tempo real como temperatura, pressão, etc

}  Estudo de padrões científicos como migração de pássaros ou descongelamento de superfícies

}  Assistência em linhas de montagem

}  Muitos outros

Page 53: Rssf com TinyOS

}  Video 1 ◦  Sensores no corpo para detectar postura ◦  http://www.youtube.com/watch?v=tf87ZtCYjbs

}  Video 2 ◦  Boatgame ◦  http://www.youtube.com/watch?v=H7_pGXG8kmE

Page 54: Rssf com TinyOS
Page 55: Rssf com TinyOS

}  http://www.gta.ufrj.br/grad/08_1/rssf/index.html

}  http://www.marvinlemos.net/wp-content/uploads/2010/10/relatorio_tecnico_tinyos.pdf

}  http://homepages.dcc.ufmg.br/~loureiro/cm/docs/sbrc03.pdf

}  http://docs.tinyos.net/tinywiki/index.php/Main_Page

Page 56: Rssf com TinyOS

}  http://www.mdpi.com/1424-8220/10/6/5809/pdf

}  http://www.cs.berkeley.edu/~culler/AIIT/papers/TinyOS/levis06tinyos.pdf