Introduction to RTOS Part 1 - What is a Real-Time Operating System (RTOS)? | Digi-Key Electronics
Introducción a los sistemas operativos en tiempo real (RTOS)
Resumen de la sección: En esta sección, se introduce el concepto de un sistema operativo en tiempo real (RTOS) y se destacan las diferencias clave entre un RTOS y un sistema operativo general. También se menciona la importancia de los RTOS en aplicaciones que requieren plazos de tiempo estrictos.
Funciones principales de un sistema operativo
- Un sistema operativo es responsable de programar tareas y aplicaciones del usuario.
- Administra recursos virtuales como archivos, bibliotecas y carpetas.
- Proporciona controladores de dispositivos para permitir la comunicación con periféricos.
Sistemas operativos generales vs. RTOS
- Los sistemas operativos generales están diseñados para priorizar la interacción humana, lo que puede resultar en retrasos aceptables.
- Los RTOS están diseñados para cumplir plazos de tiempo estrictos y garantizar la ejecución oportuna de tareas críticas.
- Los RTOS suelen ofrecer funciones similares a los sistemas operativos generales, pero también pueden proporcionar controladores específicos para microcontroladores.
Arquitectura básica: Super Loop vs. RTOS
- La arquitectura "Super Loop" es común en microcontroladores simples, donde las tareas se ejecutan secuencialmente dentro de un bucle principal.
- El uso de un RTOS permite ejecutar múltiples tareas concurrentemente, lo que evita retrasos y mejora la capacidad de respuesta del sistema.
Importancia del timing en los proyectos
- Si se requieren plazos estrictos, como en dispositivos médicos o controladores de motores, un RTOS puede garantizar el cumplimiento de los plazos.
- Los RTOS también permiten la ejecución concurrente de múltiples tareas, lo que puede ser beneficioso en muchos proyectos.
Terminología: Tarea vs. Hilo vs. Proceso
- En el contexto de FreeRTOS, el término "tarea" se utiliza para referirse a una unidad de utilización de CPU similar a un hilo.
- Un hilo es una unidad de utilización de CPU con su propio contador de programa y conjunto de memoria.
- Un proceso es una instancia de un programa informático que se está ejecutando y generalmente tiene uno o más hilos.
Arquitectura básica: Super Loop
Resumen de la sección: Se describe la arquitectura básica del "Super Loop" y se mencionan sus ventajas e inconvenientes en comparación con el uso de un RTOS.
Arquitectura del "Super Loop"
- En la arquitectura del "Super Loop", las tareas se ejecutan secuencialmente dentro de un bucle principal.
- Es fácil implementar y tiene poca sobrecarga en términos de ciclos y memoria.
- Es adecuado para proyectos simples con pocas tareas.
Limitaciones del "Super Loop"
- No permite la ejecución concurrente de tareas, lo que puede resultar en retrasos si una tarea toma mucho tiempo.
- Si hay tareas críticas con plazos estrictos, pueden producirse retrasos en otras tareas no críticas.
Ejecución concurrente de tareas con un RTOS
Resumen de la sección: Se explica cómo un RTOS permite la ejecución concurrente de múltiples tareas y cómo se pueden asignar prioridades a las tareas para controlar su ejecución.
Ejecución concurrente en un RTOS
- Un RTOS permite la ejecución concurrente de múltiples tareas, incluso en microcontroladores con un solo núcleo.
- El tiempo de CPU se divide entre las tareas y se les asigna una porción del tiempo según sus prioridades.
Priorización de tareas
- Las tareas pueden tener diferentes prioridades, lo que determina cuándo se ejecutan en relación con otras tareas.
- Asignar una alta prioridad a una tarea puede mejorar la capacidad de respuesta del sistema, pero puede afectar el rendimiento de otras tareas.
Terminología y uso de términos en FreeRTOS
Resumen de la sección: Se aclara el uso de los términos "tarea", "hilo" y "proceso" en el contexto específico de FreeRTOS.
Uso específico en FreeRTOS
- En FreeRTOS, el término "tarea" se utiliza para referirse a una unidad similar a un hilo que utiliza CPU.
- A menudo, los términos "tarea" y "hilo" se utilizan indistintamente debido al contexto particular del sistema operativo.
¿Por qué usar un RTOS?
Resumen de la sección: En esta sección, el presentador discute las razones por las cuales uno podría querer utilizar un sistema operativo en tiempo real (RTOS) en lugar de un bucle super simple para controlar tareas en microcontroladores.
Ventajas del uso de un RTOS
- Los microcontroladores con poca memoria y capacidad de procesamiento pueden beneficiarse del uso de un bucle super simple.
- A medida que los microcontroladores se vuelven más potentes, es más viable utilizar un RTOS.
- Un RTOS permite realizar múltiples tareas concurrentemente, lo cual es útil cuando se necesita manejar entrada de usuario, lectura/escritura en una tarjeta SD, controlar hardware y realizar cálculos al mismo tiempo.
- El uso de un RTOS puede ser especialmente beneficioso al trabajar en proyectos grandes con equipos multidisciplinarios.
- Existen diferentes sistemas operativos en tiempo real disponibles, pero FreeRTOS es popular y fácilmente accesible.
Introducción a FreeRTOS
Resumen de la sección: En esta sección, el presentador introduce FreeRTOS como el sistema operativo en tiempo real utilizado en la serie y explica por qué fue elegido.
Características y popularidad de FreeRTOS
- FreeRTOS es el sistema operativo en tiempo real más popular para dispositivos IoT según una encuesta realizada por la Fundación Eclipse en 2018.
- FreeRTOS es gratuito y de código abierto, lo que facilita su uso y experimentación.
- Amazon se encarga del mantenimiento de FreeRTOS desde 2017.
- El proyecto Zephyr respaldado por la Linux Foundation también es una opción a considerar en el campo de los sistemas operativos en tiempo real.
Uso de Arduino con FreeRTOS
Resumen de la sección: En esta sección, el presentador explica por qué utiliza Arduino como plataforma para enseñar conceptos de RTOS y cómo esto facilita el aprendizaje para programadores y aficionados a la electrónica.
Ventajas de utilizar Arduino con FreeRTOS
- Muchos programadores y aficionados a la electrónica tienen experiencia previa con Arduino, lo que crea un punto de partida común para aprender sobre RTOS.
- La mayoría de los ejemplos de código y conceptos relacionados con tareas, semáforos, mutex, etc., pueden ser fácilmente adaptados a otros sistemas si no se desea utilizar Arduino.
- El ESP32 ya viene con una versión modificada de FreeRTOS instalada, lo que simplifica aún más la configuración inicial.
Próximos pasos: Desafíos y proyectos demostrativos
Resumen de la sección: En esta sección final, el presentador menciona los desafíos propuestos al finalizar cada video y anima a los espectadores a probarlos en sus propios dispositivos. También adelanta que el próximo video mostrará cómo comenzar con FreeRTOS creando una tarea para hacer parpadear un LED.
Desafíos y proyectos demostrativos
- Al final de cada video, se presentará un desafío relacionado con los conceptos aprendidos.
- Se anima a los espectadores a probar los desafíos en sus propios dispositivos ESP32 o cualquier otro dispositivo que ejecute FreeRTOS.
- El presentador proporcionará un enlace a su solución para que los espectadores puedan compararla con la suya propia.
¡Continúa aprendiendo sobre FreeRTOS y RTOS en el próximo video!