'

TinyOs. Simulators. Programming for TinyOS.

Понравилась презентация – покажи это...





Слайд 0

TinyOs. Simulators. Programming for TinyOS. Садков Александр Аспирант РФ axel@wl.unn.ru http://www.wl.unn.ru Сайт курса: http://www.sumkino.com/wsn/course


Слайд 1

План TinyOS Simulators TOSSIM SNS Avrora Programming for TinyOs


Слайд 2

TinyOs Почему нам нужна новая операционная система? Традиционные операционные системы: Большие! Многопотоковая архитектура – большие объемы памяти. Пространство ядра системы и пользовательское пространство разделены. Нет энергетических ограничений. Большие вычислительные ресурсы.


Слайд 3

TinyOs Ограничения сенсорных сетей? Мощность. Ограниченный размер памяти. Слабый микропроцессор. Небольшие размеры. Ограниченный параллелизм. Передача информации с помощью маломощных трансиверов: Малая скорость передачи Короткие расстояния


Слайд 4

TinyOs Занимающая небольшой объем памяти. Эффективная в плане энергии и вычислений. Передача информации должно быть фундаментальным. Real-time. Достаточно гибкая. Какая операционная система нам нужна?


Слайд 5

TinyOs Конкуренция : Использует event-driven архитектуру. Модульность. Приложения составляются из нескольких компонентов. OS + Приложения компилируются в единый исполняемый модуль. Использование event/command модели. FIFO и системы планирования. Нет границы между ядром системы и приложениями.


Слайд 6

TinyOs and NesC Новый язык NesC, основная единица кода – компонент. Компонент: Обрабатывает команды (commands) Посылает события (events) Имеет Frame для хранения локального состояния. Использует задачи (tasks) для конкуренции. Компонент предоставляет интерфейсы (interfaces). Используются другими компонентами для связи. Компоненты связываются между собой с помощью конфигуратра (configuration).


Слайд 7

TinyOs and NesC


Слайд 8

Application = Graph of Components


Слайд 9

Commands/Events/Tasks Команды (commands). Должны быть не блокирующие. То есть, берет параметры, начинает обработку и возвращается к приложению; откладывает выполнение трудоемких задач путем объявления задач (tasks). События (events): Могут вызывать команды, сигнализировать другие события, объявлять задачи, но не могут быть вызваны командами. Заменяют задачи, но не наоборот. Задачи (tasks): Планирование FIFO. Не могут быть заменены другими задачами, но заменяются событиями. Используются для выполнения вычислительно интенсивных задач. Могут быть объявлены командами или событиями.


Слайд 10

Scheduler В Планировщике два уровня: события (events) и задачи (tasks). Планировщик – простой FIFO Задача не может быть заменена другой задачей Событие может заменить задачу (имеет больший приоритет)


Слайд 11

Simulators


Слайд 12

Simulators TOSSIM Avrora EmStar SNS


Слайд 13

TOSSIM Использует реалистичные модели канала. Высокая повторяемость экспериментов Масштабируемость до тысяч узлов. Компилирует напрямую TinyOs код. Помогает отловить наиболее общие баги. Не очень подходит для моделирования «временных» задач. Philip Levis, Nelson Lee, Matt Welsh, and David Culler TOSSIM: Accurate and Scalable Simulation of Entire TinyOS Applications. In Proceedings of the First ACM Conference on Embedded Networked Sensor Systems (SenSys 2003).


Слайд 14

Avrora Для AVR (Atmel) микроконтроллеров (узлы Mica2). Тестирование программного кода перед установкой на железо. Профилировщик – позволяет лучше понять поведение программы. Дебаггер. Моделирование энергозатрат. http://compilers.cs.ucla.edu/avrora/simulator.html


Слайд 15

EmStar Моделирует в коде. От моделирования до реального эксперимента. Имеет интерфейс для подключения реальных узлов. Работает не со всеми узлами. Невысокая скорость работы.


Слайд 16

SNS Детальное моделирование физического уровня. Модульность. Интуитивно понятный интерфейс. Не предназначен для моделирования кода. (не эмулятор) Ограниченная масштабируемость. Невысокая скорость работы.


Слайд 17

Programming for TinyOS


Слайд 18

Programming for TinyOS Нет динамической памяти. Однозадачность; event-driven Команды (commands) и события (events) должны делать небольшую работу. Объявление задач(tasks) для выполнения долгих процессов. Программный код должен представлять из себя машину состояний.


Слайд 19

Programming for TinyOS X вызывает компонент Y для чтения нескольких байт с флеш с помощью команды Y.multiRead(). Объявляем задачу A чтения первого байта из памяти вызывая Flash.Read() Возвращаем статуc OK. Когда возвращается Flash.ReadDone(), объявляем задачу A для чтения второго байта и т.д. Когда все байты считаны, сигнализируем событие (signal event) Y.multiReadDone() Если произошли какие-то ошибки сигнализируем событие Y.multiReadDone() с кодом ошибки.


Слайд 20

Programming for TinyOS Наименование файлов Расширение nesC файлов: .nc Clock.nc: либо интерфейс, либо конфигуратор ClockС.nc: конфигуратор ClockM.nc: модуль


Слайд 21

Programming for TinyOS Интерфейсы связывают между собой компоненты


Слайд 22

Programming for TinyOS Модули могут реализовывать один или несколько интерфейсов. Модули могут использовать другие интерфейсы.


Слайд 23

Programming for TinyOS Интерфейсы могут передаваться с параметрами. Один и тот же интерфейс может несколько разных «вхождений».


Слайд 24

Programming for TinyOS Configuration Два компонента связываются(взаимодействуют) между собой с помощью интерфейсов. Интерфейсы в user компоненте связываются (wired) с такими же интерфейсами на provider компоненте. Три типа связи: endpoint1 = endpoint2 endpoint1 -> endpoint2 endpoint1 <- endpoint2 (equivalent: endpoint2 -> endpoint1) Компонент, который использует интерфейс должен быть слева, компонент, который предоставляет интерфей справа.


Слайд 25

Programming for TinyOS


Слайд 26


Слайд 27

Литература Localization in Sensor Networks A. Savvides, L. Girod, M. Srivastava, and D. Estrin, Book Chapter, Wireless Sensor Networks, Edited by Znati, Radhavendra and Sivalingam. Power-Efficient Sensor Placement and Transmission Structure for Data Gathering under Distortion Constraints D. Ganesan, R. Cristescu and B. Berefull-Lozano Coverage in wireless ad hoc sensor networks X. Li, P. Wan, and O. Frieder Impact of Heterogeneous Deployment on Lifetime Sensing Coverage in Sensor Networks, Jae-Joon Lee, Bhaskar Krishnamachari, C.C. Jay Kuo Topology Control for Wireless Sensor Networks J. Pan, Y.T. Hou, L. Cai, Y. Shi, and S.X. Shen


Слайд 28

The End


×

HTML:





Ссылка: