TinyOs. Simulators. Programming for TinyOS.

Содержание

Слайд 2

План

TinyOS
Simulators
TOSSIM
SNS
Avrora
Programming for TinyOs

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

Слайд 3

TinyOs

Почему нам нужна новая операционная система?

Традиционные операционные системы:
Большие!
Многопотоковая архитектура

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

Слайд 4

TinyOs

Ограничения сенсорных сетей?

Мощность.
Ограниченный размер памяти.
Слабый микропроцессор.
Небольшие размеры.
Ограниченный

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

Слайд 5

TinyOs
Занимающая небольшой объем памяти.
Эффективная в плане энергии и вычислений.
Передача

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

Какая операционная система нам нужна?

Слайд 6

TinyOs

Конкуренция : Использует event-driven архитектуру.
Модульность.
Приложения составляются из нескольких компонентов.

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

Слайд 7

TinyOs and NesC

Новый язык NesC, основная единица кода – компонент.
Компонент:

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

Слайд 8

TinyOs and NesC

TinyOs and NesC

Слайд 9

Application = Graph of Components

Application = Graph of Components

Слайд 10

Commands/Events/Tasks

Команды (commands).
Должны быть не блокирующие.
То есть, берет параметры, начинает

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

Слайд 11

Scheduler

В Планировщике два уровня: события (events) и задачи (tasks).
Планировщик –

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

Слайд 12

Simulators

Simulators

Слайд 13

Simulators
TOSSIM
Avrora
EmStar
SNS

Simulators TOSSIM Avrora EmStar SNS

Слайд 14

TOSSIM

Использует реалистичные модели канала.
Высокая повторяемость экспериментов
Масштабируемость до тысяч узлов.

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).

Слайд 15

Avrora

Для AVR (Atmel) микроконтроллеров (узлы Mica2).
Тестирование программного кода перед установкой

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

http://compilers.cs.ucla.edu/avrora/simulator.html

Слайд 16

EmStar

Моделирует в коде.
От моделирования до реального эксперимента.
Имеет интерфейс для

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

Слайд 17

SNS

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

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

Слайд 18

Programming for TinyOS

Programming for TinyOS

Слайд 19

Programming for TinyOS

Нет динамической памяти.
Однозадачность; event-driven
Команды (commands) и события

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

Слайд 20

Programming for TinyOS

X вызывает компонент Y для чтения нескольких байт с

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

Слайд 21

Programming for TinyOS

Наименование файлов
Расширение nesC файлов: .nc
Clock.nc: либо интерфейс,

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

Слайд 22

Programming for TinyOS

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

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

Слайд 23

Programming for TinyOS

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

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

Слайд 24

Programming for TinyOS

Интерфейсы могут передаваться с параметрами.
Один и тот же

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

Слайд 25

Programming for TinyOS Configuration

Два компонента связываются(взаимодействуют) между собой с помощью интерфейсов.
Интерфейсы

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

Слайд 26

Programming for TinyOS

Programming for TinyOS

Слайд 28

Литература
Localization in Sensor Networks A. Savvides, L. Girod, M. Srivastava, and

Литература 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
Имя файла: TinyOs.-Simulators.-Programming-for-TinyOS..pptx
Количество просмотров: 128
Количество скачиваний: 0