Trabajé en VxWorks 5.5 hace mucho tiempo y fue la mejor experiencia trabajando en el mejor sistema operativo en tiempo real del mundo. Desde entonces nunca tuve la oportunidad de volver a trabajar en él. Pero, una pregunta sigue apareciendo, ¿qué hace que sea tan rápido y determinista?¿Qué hace que VxWorks sea tan determinista y rápido?
No he podido encontrar muchas referencias para esta pregunta a través de Google.
Por lo tanto, he intentado pensar lo que hace que un sistema operativo no determinista normal:
asignación de memoria/desasignación: - Wiki dice RTOS usuarios fijos bloques de tamaño, de modo que estos bloques pueden ser indexados directamente , pero esto causará fragmentación interna y estoy seguro de que esto no es nada deseable en sistemas de misión crítica donde la memoria ya es limitada.
Paging/segmentación: - Su tipo de ligado al punto 1
manejo de interrupciones: - No estoy seguro como VxWorks implementa, ya que esto es algo que VxWorks maneja muy bien el cambio
Contexto: - Creo en VxWorks 5.5 todos los procesos utilizados en el espacio de direcciones del kernel, por lo que el cambio de contexto solía involucrar solo guardar valores de registro y nada sobre PCB (bloque de control de proceso), pero aún no estoy 100% seguro
Proceso Algoritmos de programación: - Si Windows implementa una programación preventiva (prioridad/round robin), ¿la programación del proceso será tan rápida como en VxWorks? No lo creo. Entonces, ¿cómo maneja VxWorks la programación?
Corrija mi comprensión donde se requiera.
¿Alguno de los interesados? –