Нано-РК
![]() | Эту статью может потребовать очистки Википедии , чтобы она соответствовала стандартам качества . Конкретная проблема: неправильная заглавная буква/пунктуация/грамматика, чрезмерно техническая детализация реализации, некоторые части читаются как реклама со стороны авторов программного обеспечения. ( июнь 2020 г. ) |
Разработчик | Университет Карнеги-Меллон |
---|---|
Написано в | С |
Рабочее состояние | Снято с производства |
Исходная модель | с открытым исходным кодом |
Первоначальный выпуск | декабрь 2005 г |
Финальный выпуск | Редакция 427 от 12 февраля 2008 г |
Маркетинговая цель | Беспроводные сенсорные сети |
Доступно в | Английский |
Платформы | Atmel FireFly, пылинки MicaZ, MSP430 |
ядра Тип | Операционная система реального времени |
По умолчанию пользовательский интерфейс | Интерфейс командной строки |
Лицензия | GPL или коммерческая |
Нано-РК — это для беспроводной сенсорной сети . операционная система реального времени (RTOS) [1] [2] от Университета Карнеги-Меллон , предназначенный для работы на микроконтроллерах для использования в сенсорных сетях. с фиксированным приоритетом Nano-RK поддерживает полностью вытесняющий планировщик и детализированными примитивами синхронизации для поддержки наборов задач в реальном времени . «Нано» подразумевает, что ОСРВ небольшая, использует 2 КБ оперативной памяти (ОЗУ) и 18 КБ флэш-памяти , тогда как RK — это сокращение от «resource kernel» . ресурсов Ядро обеспечивает резервирование частоты использования системных ресурсов. Например, задаче может быть разрешено выполняться только 10 мс каждые 150 мс (резервирование ЦП), или узлу может быть разрешено передавать только 10 сетевых пакетов в минуту (резервирование сети). Эти резервирования формируют виртуальный энергетический бюджет , чтобы обеспечить соответствие узла расчетному сроку службы батареи и предотвратить создание избыточного сетевого трафика вышедшим из строя узлом. Nano-RK — это программное обеспечение с открытым исходным кодом , написанное на языке C и работающее на базе сенсорной сетевой платформы FireFly на базе Atmel , мотов MicaZ и процессора MSP430 . [3]
При использовании ОСРВ в сенсорных сетях возникают компромиссы. [4]
Преимущества
[ редактировать ]NanoRK использует преимущества упреждающего планирования на основе приоритетов, чтобы учитывать фактор детерминированности реального времени , обеспечивая тем самым своевременность и синхронизацию задач. Из-за характеристики ограниченного заряда батареи беспроводного узла Nano-RK обеспечивает эффективность центрального процессора (ЦП), сети и датчиков за счет использования виртуального резервирования энергии, называя эту систему ресурсным ядром. Такое резервирование энергии может обеспечить соблюдение бюджета энергии и связи, чтобы минимизировать негативное влияние на срок службы узла от непреднамеренных ошибок или злонамеренного поведения других узлов в сети. Он поддерживает пересылку пакетов, маршрутизацию и другие протоколы сетевого планирования с помощью легкого стека беспроводной сети. По сравнению с другими современными сенсорными операционными системами Nano-RK обеспечивает богатую функциональность и своевременное планирование при небольшом размере встроенного ядра ресурсов (RK). [5]
Функции
[ редактировать ]Статическая конфигурация . Nano-RK использует статический подход во время разработки для управления энергопотреблением и запрещает динамическое создание задач, требуя от разработчиков приложений устанавливать квоты/приоритеты как задач, так и резервирования в статической конструкции испытательного стенда. Такая конструкция позволяет создавать энергетический бюджет для каждой задачи, чтобы поддерживать требования приложений и энергоэффективность на протяжении всего срока службы системы. При использовании подхода статической конфигурации все конфигурации среды выполнения и требования к электропитанию заранее определяются и проверяются разработчиком до того, как система будет развернута и запущена в реальном мире. Этот подход также помогает гарантировать стабильность и малые размеры по сравнению с традиционными ОСРВ.
Поддержка сторожевого таймера . Сторожевой таймер — это программный таймер, который запускает действие по сбросу системы, если система зависает из-за критических сбоев в течение длительного периода времени. Сторожевой механизм может вернуть систему из неотвечающего состояния в нормальную работу, дождавшись срабатывания таймера и затем перезагрузив устройство. В Нано-РК сторожевой таймер привязан непосредственно к сигналу сброса процессора REBOOT ON ERROR. По умолчанию он включается при загрузке системы и сбрасывается при каждом запуске планировщика. Если система не отвечает в течение заранее определенного периода времени, она перезагрузится и выполнит последовательность инструкций инициализации, чтобы, возможно, восстановить контроль.
Режим глубокого сна . В целях энергоэффективности, если нет подходящих задач для запуска, систему можно выключить и предоставить ей возможность перейти в режим глубокого сна. Когда система находится в этом режиме, только таймер глубокого сна может разбудить систему с заранее заданным периодом задержки. После выхода из спящего режима устанавливается следующее время смены контекста, чтобы гарантировать своевременный выход ЦП. Если сенсорный узел не желает переходить в глубокий сон, ему также предоставляется возможность перейти в состояние низкого энергопотребления, продолжая при этом управлять своими периферийными устройствами.
Готовая очередь
[ редактировать ]В Nano-RK реализован двусвязный список узлов очереди готовности внутри массива фиксированного размера, называемого очередью готовности, который упорядочивает все готовые задачи в порядке убывания в зависимости от того, какой из приоритетов задачи выше. Поскольку количество задач, выполняемых в реализации Nano-RK, статически настраивается на испытательном стенде перед развертыванием, размер очереди готовности также фиксируется на этом количестве задач, которые могут быть готовы к запуску. Массив фиксированной длины с именем nrk ReadyQ находится в файле nrk defs.h вместе с двумя указателями для ссылки на две наиболее важные ячейки в этом массиве. Указатель свободного узла (свободный узел) и указатель головного узла (головной узел) указывают на следующую выделяемую ячейку массива и текущую задачу с наивысшим приоритетом, готовую к запуску, соответственно.
Планировщик
[ редактировать ]Ядром Nano-RK является статический вытесняющий планировщик реального времени, основанный на приоритетах и энергоэффективный. При упреждающем планировании на основе приоритетов планировщик всегда выбирает задачу с наивысшим приоритетом из очереди готовности. В целях экономии энергии задачи не опрашивают ресурс, а скорее блокируются при определенных событиях и могут быть разблокированы, когда события происходят. Если в очереди готовности нет задач, систему можно отключить для экономии энергии. Когда система работает, одна и только одна задача (текущая задача), обозначаемая nrk cur Task tcb, выполняется в течение заранее определенного периода. Таким образом, самая важная задача планировщика — решить, какая задача должна быть запущена следующей и как долго она должна выполняться, пока планировщик не запустится снова.
Ссылки
[ редактировать ]- ^ nano-RK Nano-RK: Операционная система реального времени (RTOS) с беспроводной сенсорной сетью. Архивировано 11 мая 2008 г. на Wayback Machine.
- ^ [1] А. Эсваран, А. Роу и Р. Раджкумар, «Nano-RK: энергосберегающая ресурсоориентированная операционная система для сенсорных сетей», Симпозиум IEEE по системам реального времени, декабрь 2005 г.
- ^ Ананд Эсваран, Энтони Роу и Радж Раджкумар, «FireFly: сетевая платформа датчиков реального времени с синхронизацией по времени»
- ^ встроенный.com
- ^ [3] Ананд Эсваран, Энтони Роу и Радж Раджкумар, «Нано-РК: энергоориентированная ресурсоориентированная ОСРВ для сенсорных сетей», 2005.