Universidade Federal do Cear Engenharia de Teleinformtica Sistemas de Tempo Real Professor: Helano Castro Aluno: Tiago Augusto da Silva Bencardino 2011.1
TinyOS
Bibliografia
O que ? Conjunto de ns com capacidade de sensoriamento, processamento e comunicao sem fio Para qu? Monitorar variveis de interesse ou detectar evento em uma regio
Controle: monitoramento industrial Meio ambiente: florestas, oceanos Segurana: alarmes de residncias, prdios, fbricas Trfego: monitoramento de vias, estacionamentos, fotos sensores Medicina: monitorar funcionamento de rgaos como o corao Militar: vigilncia monitoramento, rastreamento, segurana, controle e manuteno
Monitoramento das foras amigas Processo de vigilncia reas crticas, rotas de aproximao e caminhos estreitos Estudos sobre a tropa inimiga e o terreno de batalha ataques surpresa e mtodos de defesa Sistemas modernos de mira automtica Controlar um elemento da tropa: presso cardaca, temperatura, infeco Guerra biolgica/qumica: deteco de agentes contaminadores
Ponteiro: deteco de alvos acsticos, ssmicos, magnticos Localizao e reconhecimento: fuso dos dados C2: ns sink mveis
Baixo custo e baixo consumo de energia Limitao de memria e capacidade de processamento. Ns simples podem mudar de posio ou falhar devido a influncia do meio. Variveis de ambiente precisam ser processadas rapidamente para evitar perda de deadlines. Precisam coletar informao, processar parcialmente e transmitir dados.
Fluxo de dados predominantemente unidimensional ns intermedirios como multi-hop / ad-hoc Energia consumida ~ distncia Sink: ns especiais que processam ou consomem dados
Auto-organizao: organizar em grupos Auto-configurao: adaptar-se a mudanas do ambiente e topologia Auto-diagnstico: detectar problemas (baixa densidade ou desperdcio de energia) Auto-cura: recuperar-se dos problemas. Tolerncia a falhas Auto-proteo: detectar, identificar, proteger contra ameaas internas e externas Auto-conhecimento: conhecer o ambiente e a si prprio
Escalabilidade: grande nmero de ns distribudos Tolerncia a falhas: grandes quantidades de ns podem falhar e o sistema deve, automaticamente, reconfigurar-se Redundncia de informao: algumas aplicaes podem multiplicar a informao para aumentar a preciso. Overhead mnimo para outras aplicaes
Grande nmero de ns distribudos Restrio de energia Rede autnoma, com alto grau de cooperao Protocolos de comunicao e eleio de lder devem levar em conta topologia fsica da rede Muito sujeita a falhas devido a perda de ns e interrupo de comunicao (meio hostil)
Principal motivo para ter um SO: configuraes flexveis nos ns sensores Limitao de memria: torna-se impossvel armazenamento de todos os programas nos ns Compartilhamento dos aplicativos entre os ns da rede Customizao para o projeto Baixo custo/processamento limitam algoritmos complexos. Ex: alguns algoritmos de gerenciamento de processos
Sistema Operacional
TinyOS v1 TinyOS v2 Contiki MantisOS Nano-RK
Modelo
Events Events Events Multithreading Multithreading
ROM
3.4 kB 3.4 kB 3.8 kB 14 kB 10 kB
RAM
336 B 336 B 230 B 500 B 2000 B
Tipo de processo
Tasks, commands, event handlers Tasks, commands, event handlers Protothreads Threads Tasks with priority
T-Kernel Bertha
CORMO SOS SenOS
28 kB 10 kB
5.5 kB 20 kB
2000 B 1500 B
130 B 1163 B ------
Sistema operacional baseado em componente Cdigo livre (free) e aberto (open-source) Linguagem de programao utilizada: nesC Incorporado em Smartdusts (Wireless MEMS), como os ns RSSF Recursos MUITO limitados (ex: 8KB de memria de programa, 512 bytes de RAM).
1999: iniciou-se como projeto em UC Berkeley como parte do DARPA NEST program, gerando a primeira plataforma (WeC); 2000: Associao com a Crossbow Inc., para produo de hardware especfico; 2001: verso 0.6 com plataforma mica e mix entre C e Perl script; 2002: verso 1.0, com linguagem nesC, desenvolvida em parceria com a Intel.
2003: verso 1.1 lanada com algumas novidades em nesC, entre elas deteco de condies de corrida (data race) 2006: Verso 2.0 lanada no 3 TinyOS Technology Exchange em Stanford, CA 2007: 2.01 e 2.02 2008: 2.1.0 Abril de 2010: ultima verso, 2.1.1
Caractersticas nicas:
Arquitetura baseada em componentes Concorrncia baseada em tarefas e eventos Operaes divididas em fases
TinyOS prov componentes para abstraes comuns tais como comunicao, roteamento, sensoriamento, atuao e armazenagem.
Tarefas no interferem entre si, ou seja, no h preempo entre as mesmas. Tarefas executam at terminar (Run to Completion) atmicas a outras tarefas
Com isso, possvel perceber que interfaces podem ser fornecidas ou usadas pelos componentes. As interfaces fornecidas consistem na funcionalidade que o componente prov ao aplicativo; as interfaces usadas representam a funcionalidade necessria ao componente para executar o seu trabalho.