Las otras respuestas tienen algunos puntos buenos, como que los “bucles while infinitos” (también conocidos como “diseño de hilo único” y “ejecutivos cíclicos”) son muy frágiles. Debe conocer las duraciones de ejecución de cada tarea en el bucle; Si incluso uno se ejecuta largo o corto, es probable que obtenga una cascada de tiempos de tareas fallidas. Probar y ajustar el bucle puede requerir mucho tiempo de laboratorio. Un RTOS es más adaptable y robusto en ese sentido.
Pero nadie mencionó una ventaja importante de los ejecutivos cíclicos. Un RTOS difícil en tiempo real que utiliza (por ejemplo) una programación monotónica de velocidad garantiza que todas las tareas de tareas en tiempo real cumplan con sus plazos, suponiendo que las fuertes presunciones en el modelo del sistema sean correctas. Hay aplicaciones que necesitan un comportamiento en tiempo real “más difícil” que simplemente cumplir con todos los plazos; requieren que cada tarea en el ciclo comience y finalice exactamente en los momentos especificados. Esto puede ser posible con un ejecutivo cíclico, pero es esencialmente inviable con un RTOS.
Hay muchos documentos sobre este tema indexados por Google. Pero en mi humilde opinión, el más claro es el de Doug Locke, uno de mis doctores de la CMU CS. estudiantes (pero irónicamente su tesis era sobre programación dinámica en tiempo real):
- ¿Qué se utiliza para almacenar el software para un sistema integrado?
- ¿Cuál es la diferencia entre sistema embebido y robots?
- Cómo usar CRC-16 para verificar la memoria del programa en el software C incorporado
- ¿Qué valiosos consejos le darías a un ingeniero de pregrado de sistemas integrados?
- ¿Cómo se debe comenzar a desarrollar un sistema embebido (real)?
http://www.douglocke.com/Downloa…