Introduction to RTOS Part 1 - What is a Real-Time Operating System (RTOS)? | Digi-Key Electronics

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!

Video description

A real-time operating system (RTOS) is an operating system that runs multi-threaded applications and can meet real-time deadlines. See this article to read more about them: https://www.digikey.com/en/maker/videos/shawn-hymel/getting-started-with-stm32-and-nucleo-part-3-how-to-run-multiple-threads-with-cmsis-rtos-interface An RTOS is often a lightweight operating system (OS) designed to run on microcontrollers. Much like general purpose operating systems, they offer a scheduler to run multiple threads or tasks, resource management (such as file I/O), and device drivers. An RTOS is necessary when embedded engineers need to run several threads at the same time on a processor. The “real-time” part of an RTOS means that such software can meet real-time deadlines. Note that this does not mean “fast,” but rather, it can guarantee that task execution time can be calculated prior to runtime. Embedded programmers often use a “bare-metal” or “super loop” structure instead of an RTOS when concurrency is not needed. This is the familiar “setup” and “loop forever” style of embedded code where no OS is employed. Many embedded applications can be written in this format, and they are often easier to debug. In the rest of the series, we will cover various RTOS concepts and provide demonstrations on the ESP32 using Arduino. After each video, excluding this one, we will issue a challenge and the solution can be found in a Maker.IO link provided in the video’s description. We encourage you to try the challenge without looking at the solution. Product Links: https://www.digikey.com/en/products/detail/adafruit-industries-llc/3405/7244967 Related Videos: Introduction to RTOS Part 1 - What is a Real-Time Operating System (RTOS)? - https://youtu.be/F321087yYy4​ Introduction to RTOS Part 2 - Getting Started with FreeRTOS - https://youtu.be/JIr7Xm_riRs​ Introduction to RTOS Part 3 - Task Scheduling - https://youtu.be/95yUbClyf3E​ Introduction to RTOS Part 4 - Memory Management - https://youtu.be/Qske3yZRW5I​ Introduction to RTOS Part 5 - Queue - https://youtu.be/pHJ3lxOoWeI​ Introduction to RTOS Part 6 - Mutex - https://youtu.be/I55auRpbiTs​ Introduction to RTOS Part 7 - https://youtu.be/5JcMtbA9QEE​ Introduction to RTOS Part 8 - https://youtu.be/b1f1Iex0Tso Introduction to RTOS Part 9 - https://youtu.be/qsflCf6ahXU Introduction to RTOS Part 10 - https://youtu.be/hRsWi4HIENc Introduction to RTOS Part 11 - https://youtu.be/C2xKhxROmhA Introduction to RTOS Part 12 - https://youtu.be/LPSHUcH5aQc Related Articles: https://www.digikey.com/en/maker/videos/shawn-hymel/getting-started-with-stm32-and-nucleo-part-3-how-to-run-multiple-threads-with-cmsis-rtos-interface Learn more: Maker.io - https://www.digikey.com/en/maker Digi-Key’s Blog – TheCircuit https://www.digikey.com/en/blog Connect with Digi-Key on Facebook https://www.facebook.com/digikey.electronics/ And follow us on Twitter https://twitter.com/digikey