Articulo de referencia

Nano-RK

Nano-RK es un sistema operativo en tiempo real (RTOS) para redes de sensores inalámbricas [ 1 ] [ 2 ] de la Universidad Carnegie Mellon , diseñado para ejecutarse en microcontro...

Nano-RK es un sistema operativo en tiempo real (RTOS) para redes de sensores inalámbricas [ 1 ] [ 2 ] de la Universidad Carnegie Mellon , diseñado para ejecutarse en microcontroladores para su uso en redes de sensores. Nano-RK admite un planificador totalmente preemptivo de prioridad fija con primitivas de temporización de grano fino para admitir conjuntos de tareas en tiempo real . "Nano" implica que el RTOS es pequeño, utilizando 2 KB de memoria de acceso aleatorio (RAM) y 18 KB de memoria flash , mientras que RK es la abreviatura de núcleo de recursos . Un núcleo de recursos proporciona reservas sobre la frecuencia con la que se pueden usar los recursos del sistema. Por ejemplo, una tarea podría tener permitido ejecutarse solo 10 ms cada 150 ms (reserva de CPU), o un nodo podría tener permitido transmitir solo 10 paquetes de red por minuto (reserva de red). Estas reservas forman un presupuesto de energía virtual para garantizar que un nodo cumpla con su vida útil de batería diseñada y para evitar que un nodo fallido genere tráfico de red excesivo. Nano-RK es un software de código abierto , está escrito en C y se ejecuta en la plataforma de redes de sensores FireFly basada en Atmel , los nodos MicaZ y el procesador MSP430 . [ 3 ]    

Se producen compromisos al utilizar un RTOS en redes de sensores. [ 4 ]

Ventajas

NanoRK aprovecha la planificación preventiva basada en prioridades para respetar el factor de tiempo real de ser determinista , asegurando así la puntualidad y sincronización de las tareas. Debido a la limitación de energía de la batería en el nodo inalámbrico, NanoRK proporciona eficiencia de la unidad central de procesamiento (CPU), la red y los sensores mediante el uso de reservas de energía virtual, lo que lo convierte en un núcleo de recursos. Estas reservas de energía pueden imponer presupuestos de energía y comunicación para minimizar el impacto negativo en la vida útil del nodo debido a errores involuntarios o comportamientos maliciosos de otros nodos dentro de la red. Admite el reenvío de paquetes, el enrutamiento y otros protocolos de planificación de red con la ayuda de una pila de red inalámbrica ligera. En comparación con otros sistemas operativos de sensores actuales, NanoRK proporciona una amplia funcionalidad y una planificación oportuna con un tamaño reducido para su núcleo de recursos integrado (RK). [ 5 ]

Características

Configuración estática : Nano-RK utiliza un enfoque de diseño estático para el control del consumo energético y no permite la creación dinámica de tareas, lo que obliga a los desarrolladores de aplicaciones a establecer cuotas y prioridades tanto para las tareas como para las reservas en un entorno de prueba estático. Este diseño permite crear un presupuesto energético para cada tarea, lo que garantiza el cumplimiento de los requisitos de la aplicación y la eficiencia energética durante toda la vida útil del sistema. Mediante un enfoque de configuración estática, todas las configuraciones de tiempo de ejecución y los requisitos de potencia se predefinen y verifican antes de que el sistema se implemente y ejecute en un entorno real. Este enfoque también contribuye a garantizar la estabilidad y el tamaño reducido en comparación con los sistemas operativos en tiempo real tradicionales.

Compatibilidad con el temporizador Watchdog : Watchdog es un temporizador de software que activa un reinicio del sistema si este se bloquea debido a fallos críticos durante un período prolongado. El mecanismo Watchdog puede restablecer el funcionamiento normal del sistema esperando a que finalice el temporizador y reiniciando el dispositivo. En Nano-RK, el temporizador Watchdog está vinculado directamente a la señal de reinicio del procesador REBOOT ON ERROR. Por defecto, se habilita al arrancar el sistema y se reinicia cada vez que se ejecuta el planificador. Si el sistema no responde dentro del período de tiempo predefinido, se reiniciará y ejecutará la secuencia de instrucciones de inicialización para intentar recuperar el control.

Modo de suspensión profunda : por motivos de eficiencia energética, si no hay tareas elegibles para ejecutar, el sistema puede apagarse y entrar en modo de suspensión profunda. En este modo, solo el temporizador de suspensión profunda puede reactivar el sistema con un período de latencia predefinido. Tras la reactivación, se ajusta el tiempo de intercambio de contexto para garantizar que la CPU se active a tiempo. Si un nodo sensor no desea entrar en modo de suspensión profunda, también puede optar por un estado de bajo consumo energético mientras continúa gestionando sus periféricos.

Cola de espera

Nano-RK implementa una lista doblemente enlazada de nodos de cola de tareas listas dentro de un arreglo de tamaño fijo, denominado cola de tareas listas, que ordena todas las tareas listas en orden descendente según la prioridad más alta de cada tarea. Dado que el número de tareas que se ejecutan en la implementación de Nano-RK se configura estáticamente en un entorno de prueba antes del despliegue, el tamaño de la cola de tareas listas también se fija a este número de tareas que pueden estar listas para ejecutarse. En el archivo nrk defs.h se encuentra un arreglo de longitud fija llamado nrk readyQ junto con dos punteros que hacen referencia a las dos celdas más importantes dentro de este arreglo. El puntero del nodo libre (free node) y el puntero del nodo principal (head node) apuntan a la siguiente celda del arreglo que se asignará y a la tarea actual de mayor prioridad lista para ejecutarse, respectivamente.

Planificador

El núcleo de Nano-RK es un planificador estático en tiempo real con prioridad y eficiencia energética. Para la planificación con prioridad, el planificador siempre selecciona la tarea de mayor prioridad de la cola de tareas listas. Para ahorrar energía, las tareas no solicitan recursos, sino que se bloquean ante ciertos eventos y se desbloquean cuando estos ocurren. Cuando no hay tareas en la cola de tareas listas, el sistema se puede apagar para ahorrar energía. Durante el funcionamiento del sistema, solo una tarea (la tarea actual), representada por la tarea actual tcb, se ejecuta durante un período predefinido. Por lo tanto, la función principal del planificador es decidir qué tarea debe ejecutarse a continuación y durante cuánto tiempo, hasta que se active nuevamente.

Referencias

  1. nano-RK Nano-RK: Un sistema operativo en tiempo real (RTOS) para redes de sensores inalámbricas. Archivado el 11 de mayo de 2008 en Wayback Machine.
  2. A. Eswaran, A. Rowe y R. Rajkumar, "Nano-RK: Un sistema operativo centrado en recursos y con conciencia energética para redes de sensores", Simposio de Sistemas en Tiempo Real del IEEE, diciembre de 2005.
  3. Anand Eswaran, Anthony Rowe y Raj Rajkumar, “FireFly: una plataforma de redes de sensores en tiempo real sincronizada”
  4. embedded.com
  5. [3] Anand Eswaran y Anthony Rowe y Raj Rajkumar, “Nano-RK: un RTOS centrado en recursos y consciente de la energía para redes de sensores”, 2005.
  • Sitio web oficial