Un Sistema Operativo en tiempo real (SOTR) no solo requiere que los datos sean calculados correctamente sino también dentro de un período especificado de tiempo. El objetivo es proporcionar rápidos tiempos de respuesta a numerosos eventos.

Esos límites de tiempo cambian los fundamentos de diseño del SO. Muchos SOTR son construidos para aplicaciones muy específicas, y se pueden ejecutar sobre hardware tradicional o especializado.

Los SOTR se clasifican en:

  1. Estricto: respecto a la criticidad y tiempo para tareas. Son críticos. Ej: un sistema de seguridad crítico es un SOTR cuya tardanza en resolver una solicitud provoca algún tipo de catástrofe.
  2. No estricto: se limitan a garantizar que las tareas críticas tengan mayor prioridad y la retengan.

Características de un SOTR:

  1. Único propósito y usualmente simple.
  2. Tamaño pequeño.
  3. Bajo costo y producción masiva.
  4. Requisitos de temporización específicos.

Ej: VXWORKS, LynxOSRTOS, SPECTRA, MQX RTOS, QNX RTOS.

Implementación de un SOTR

Se requiere un kernel apropiativo para ejecutar procesos de alta prioridad. Se pueden insertar puntos de desalojo o bien usar mecanismos de sincronización. Se realiza una Planificación de Procesos por prioridades, siendo los procesos de tiempo real los más prioritarios, de varias maneras:

  1. Prioridad Monótona en Tasa: prioridad estática inversa a su período de ejecución.
  2. Cuota Proporcional: asigna cuotas entre todas las apps, y cada una recibe cuotas.
  3. Finalización de Plazo: asigna prioridades dinámicamente cuanto más próximo esté un plazo. Cada proceso anuncia su propio plazo.
  4. En PThread: POSIX.1b proporciona APIs para hilos en tiempo real (SCHED_FIFO y SCHED_RR).

Es fundamental la minimización de la latencia de suceso: el tiempo entre que sucede un evento y se le da servicio.

Existen procesos periódicos que requieren CPU a intervalos constantes. Tienen un período y un plazo (límite de tiempo) en el cual se debe procesar.