«Proporcionar un producto gratuito que supere la calidad y el servicio exigido por los usuarios de las alternativas comerciales»
Los desarrolladores de FreeRTOS han estado trabajando en estrecha colaboración con las principales empresas de chips del mundo durante más de 15 años para proporcionarle un RTOS y herramientas de alta calidad, líderes en el mercado y de nivel comercial….pero ¿qué es un RTOS?
Esta página comienza definiendo un sistema operativo, luego lo refina para definir un sistema operativo en tiempo real (RTOS), y luego lo refina una vez más para definir un kernel de tiempo real (o ejecutivo en tiempo real).
Vea también el punto de la FAQ «por qué un RTOS» para obtener información sobre cuándo y por qué puede ser útil utilizar un RTOS en su diseño de software de sistemas embebidos.
¿Qué es un sistema operativo de propósito general?
Un sistema operativo es un programa informático que soporta las funciones básicas de un ordenador, y proporciona servicios a otros programas (o aplicaciones)que se ejecutan en el ordenador.Las aplicaciones proporcionan la funcionalidad que el usuario del ordenador desea o necesita. Los servicios proporcionados por el sistema operativo hacen que la escritura de las aplicaciones sea más rápida, más sencilla y más fácil de mantener. Si estás leyendo esta página web, estás utilizando un navegador web (el programa de aplicación que proporciona la funcionalidad que te interesa), que a su vez se ejecuta en un entorno proporcionado por un sistema operativo.
¿Qué es un RTOS?
La mayoría de los sistemas operativos parecen permitir que varios programas se ejecuten al mismo tiempo. Esto se llama multitarea. En realidad, cada núcleo del procesador sólo puede ejecutar un único hilo de ejecución en un momento dado.Una parte del sistema operativo llamada programador es responsable de decidir qué programa se ejecuta y cuándo, y proporciona la ilusión de ejecución simultánea al cambiar rápidamente entre cada programa.
El tipo de un sistema operativo se define por cómo el programador decide qué programa se ejecuta y cuándo. Por ejemplo, el programador utilizado en un sistema operativo multiusuario (como Unix) se asegurará de que cada usuario tenga una cantidad justa de tiempo de procesamiento. Como otro ejemplo, el programador de un sistema operativo de escritorio (como Windows) tratará de garantizar que el ordenador siga respondiendo a su usuario.
El programador de un sistema operativo en tiempo real (RTOS) está diseñado para proporcionar un patrón de ejecución predecible (normalmente descrito como determinista). Un requisito de tiempo real es aquel que especifica que el sistema embebido debe responder a un determinado evento dentro de un tiempo estrictamente definido (la fecha límite).Sólo se puede garantizar el cumplimiento de los requisitos de tiempo real si se puede predecir el comportamiento del planificador del sistema operativo (y por lo tanto es determinista).
Los planificadores tradicionales de tiempo real, como el planificador utilizado en FreeRTOS, logran el determinismo permitiendo al usuario asignar una prioridad a cada hilo de ejecución. El planificador utiliza entonces la prioridad para saber qué hilo de ejecución debe ejecutarse a continuación. En FreeRTOS, un hilo de ejecución se llama tarea.
¿Qué es FreeRTOS?
FreeRTOS es una clase de RTOS que está diseñado para ser lo suficientemente pequeño para ejecutarse en un microcontrolador – aunque su uso no se limita a aplicaciones de microcontroladores.
Un microcontrolador es un procesador pequeño y con recursos limitados que incorpora, en un solo chip, el propio procesador, la memoria de sólo lectura (ROM o Flash) para mantener el programa que se va a ejecutar, y la memoria de acceso aleatorio (RAM) que necesitan los programas que ejecuta. Por lo general, el programa se ejecuta directamente desde la memoria de sólo lectura.
Los microcontroladores se utilizan en aplicaciones totalmente embebidas (aquellas aplicaciones en las que nunca se ven los procesadores en sí, o el software que están ejecutando) que normalmente tienen un trabajo muy específico y dedicado a hacer. Las restricciones de tamaño, y la naturaleza de la aplicación final dedicada, rara vez justifican el uso de una implementación completa de RTOS – o incluso hacen posible el uso de una implementación completa de RTOS. Esto significa que es más preciso describirlo como un kernel en tiempo real, o un ejecutivo en tiempo real. La funcionalidad adicional, como la interfaz de la consola de comandos o las pilas de red, puede incluirse con componentes adicionales.
Siguiente: Fundamentos del RTOS