ділу пам'яті дозволяє візначаті вимоги до пам'яті на Рівні компіляції та унікат накладних витрат, пов'язаних з дінамічнім розподілом. Крім того, цею підхід дозволяє скорочуваті годину Виконання Завдяк статичному размещения змінніх во время компіляції вместо доступу до них за вказівніком во время Виконання.
Команди є неблокіруємімі Запитів до компонентів нижчих кулі. Команда зберігає необхідні Параметри в своєму фреймі и может ініціюваті Потік для его Подальшого Виконання. Щоб НЕ вінікало невизначенності затрімок, годину ВІДПОВІДІ від вікліканої команді не винне перевіщуваті заданого інтервалу годині, при цьом команда винна Повернути статус, Який вказує, успішно вона завершить чи ні. Команда не может подаваті сигналі про події.
Обробнікі подій прямо або побічно мают Справу з апаратними подіямі. Самий Нижній куля компонентів містіть обробнікі, безпосередно пов'язані з апаратними переривані. Оброблювач подій может покласть інформацію в свой фрейм, запустіті потоки, податі сигнал ВИЩОГО уровня про події або віклікаті відряд нижчих кулі. Апаратна Подія ініціює фонтан ОБРОБКИ, яка пошірюється вгору по рівнях через події и может вернуться вниз через команди. Щоб унікнуті ціклів у ланцюжку команд/подій, команді не могут подаваті сигналі про події. Як відряд, так и події прізначені для Виконання невеликий, Суворов фіксованій порції ОБРОБКИ, яка вінікає всередіні контексту что віконується потоку.
Основна робота покладається на потоки. Потоки в TinyOS є атомарний І, на відміну від потоків в других ОС, віконуються аж до свого завершення, хочай смороду и могут буті вітіснені подіямі. Потоки могут віклікаті відряд нижчих уровня, сігналізуваті про події більш Високому рівню и плануваті Другие потоки усередіні компонента. Семантика потоку "Виконання аж до завершення" дозволяє мати один стек, Який віділяється Виконує потоку, что Дуже істотно в системах З ОБМЕЖЕНОЮ пам'яттю. Потоки Дають можлівість сімулюваті паралельних Обробка усередіні шкірного компонента, ТОМУ ЩО смороду віконуються асинхронно по відношенню до подій. Однак потоки не повінні блокувати або простоюваті в очікуванні, тому в таких випадка смороду будут перешкоджаті розвітку ОБРОБКИ в других компонентах. Пучки потоків Забезпечують засіб для вбудовування довільніх обчислювальних обробок у модель, керованого подіямі.
У Системі передбача такоже окрема Абстракція Завдання, что розуміється як трівалій обчислювальний процес. Взаємовідношення между Поняття "команда" і "Завдання" Наступний: команда - це атомарний ськладової Завдання. Команда ставитися у черго на Виконання планувальніка, потім вона віконується и может буті тимчасово перервалася обробка події.
Планувальнік працює за принципом Черги FIFO, тоб для передачі Керування наступної задачі нужно повне Завершення попередньої задачі. Однак, в залежності від вимог програми, могут використовуват и більш складні Механізми планування, засновані на пріорітетах або на дедлайн. Ключовий моментом є ті, что планувальнік орієнтований на енергозбереження: процесор засінає, ЯКЩО черго планувальніка порожня, а Периферійні Пристрої Працюють, и Кожне з них мож розбудіті систему. Колі черга становится порожній, новий Потік может буті запущених на Виконання Тільки в результаті якого-небудь події, яка может вінікнуті Тільки в апаратних прилаштовані. Планувальнік має Вкрай Малі Розміри - Всього 178 байт, дані планувальніка займають позбав 16 байтів.
У TinyOS Повністю відсутні Механізми Блокування Виконання, Що означає необхідність Введення індікації Завершення трівалої Операції відповіднім асинхронним подією. Традіційні Прийоми побудова ОС реального годині и звічні відпрацьовані архітектурні решение тут виявило незастосовні. У результаті вся ОС та ее компоненти побудовані за принципом кінцевіх автоматів - переходів Зі стану в стан. Отже, TinyOS Складається з набору компонентів (КОЖЕН розміром пріблізно 200 байт), з якіх розробник збірають систему для шкірного конкретного сенсора. Для компонування системи з набору компонентів, Які статично компонуються з ядром, вікорістовується Спеціальний Описова мову. После проведення компонування Модифікація системи не можлива.
Для забезпечення дінамічності во время Виконання булу розроблено Віртуальна машина, яка є надбудовою над ОС TinyOS. Код для віртуальної машини можна завантажити в систему во время Виконання. Для роботи цієї віртуальної машини необхідні 600 байт оператівної пам'яті ї менше 8 KB пам'яті команд 8-бітового мікроконтролера. Програми віртуальної машини представляються +8-бітовімі інструкціямі Всього трьох тіпів, что об'єднуються у "капсули" - атомарні послідовності НЕ більш чем двадцяті чотірьох інструкцій. Ієрархічна структура мережі виходе автоматично Завдяк того, что ВСІ сенсором слідують пробачимо правилами, Закладення у TinyOS. Правила ці, Наприклад, візначають способ поиска найкоротшого шляху до найближче стаціонарного Вузли, а Вже перелогових від те, ...