Un sistema operativo en tiempo real (Real Time Operating System), también conocido como RTOS por sus siglas en inglés, es un sistema operativo liviano utilizado para desarrollar cosas íntimas e integrar tareas de diseño con recursos y tiempos específicos de manera óptima y sencilla como suele aplicar para los sistemas integrados.Cuánto tiempo tarda el sistema operativo, después del reconocimiento, en servir la interrupción.Si la ejecución de la RSI necesita un cambio de proceso, entonces el retardo será mayor que si la RSI puede ser ejecutada dentro del contexto del proceso actual.Si una RSI puede ser interrumpida por la llegada de otra interrupción, entonces el servicio se retrasará.El determinismo y la reactividad juntos conforman el tiempo de respuesta a eventos externos.Ventajas Un Sistema Operativo en Tiempo Real es pequeño, rápido, receptivo y determinista.Esto significa que ejecutará tareas de manera rápida y eficiente, respondiendo como se espera cada vez.Debido a la importancia de su dispositivo host, la infraestructura RTOS es más segura y es menos probable que se bloquee o falle.Aunque para propósito general un procesador moderno suele ser más rápido, para programación en tiempo real deben utilizarse procesadores lo más predecibles posible, sin paginación.En los diseños típicos, una tarea tiene tres estados: ejecución, preparada y bloqueada.Cuando está cerrado hay una cola de tareas esperando la apertura del semáforo.En un punto muerto, dos tareas (T1,T2) pretenden adquirir dos semáforos (semA, semB) en orden inverso.Hay dos problemas con el reparto de la memoria en SOTR (sistemas operativos en tiempo real).En base a estas consideraciones se identifican las siguientes clases de algoritmos: • Enfoques estáticos dirigidos por tabla.El resultado del análisis es una planificación que determina cuando, en tiempo de ejecución, debe comenzar a ejecutarse cada tarea.Una nueva tarea será aceptada como ejecutable sólo si es posible satisfacer sus restricciones de tiempo.Cuando llega una tarea, el sistema le asigna una prioridad basada en las características de la misma.Para las comunicaciones se suelen usar conexiones o redes deterministas CAN bus o puertos serie, ya que las redes más usuales, como Ethernet son indeterministas y no pueden garantizarnos el tiempo de respuesta.En este tipo se aceptan retrasos por parte del propio sistema operativo.Hay un periodo de tiempo límite para una tarea especifica pero son aceptables los retrasos que se puedan dar siempre y cuando el tiempo no sea muy alto, es decir se manejar retrasos suavemente.La capa de portabilidad del dispositivo es específica tanto para la placa como para el compilador utilizado, ya que parte de la funcionalidad requerida se implementa generalmente en código ensamblador y/o mecanismos específicos del compilador.Es importante entender esta estructura en capas, ya que FreeRTOS no admite la carga dinámica de aplicaciones.Dependiendo de la placa y las herramientas requeridas, esto puede tomar varias formas diferentes.Cada wiki específico de la placa incluye detalles sobre qué compiladores son compatibles y cómo se configura el proyecto.Las adaptaciones oficiales incluyen la funcionalidad base de los primitivos y configuraciones del sistema operativo.Existen varias capacidades adicionales que pueden o no estar presentes en una placa en particular.También existen algunas limitaciones, como el tamaño del código, impuestas por las herramientas seleccionadas para las adaptaciones.Los ajustes se incluyen en el archivo FreeRTOSConfig.h proporcionado con la adaptación para la placa seleccionada.En cambio, los sistemas por lotes no están diseñados para una interacción en tiempo real y se ejecutan en lotes, generalmente en segundo plano, sin una respuesta inmediata a eventos externos.Los resultados sirven para tomar decisiones empresariales, generar informes o alimentar otros sistemas.