Pregunta simple: Construí un simulador de cuasi procesador que toma un gráfico de precedencia, determina las prioridades (y las instrucciones "listas"), programa las tareas en unidades funcionales disponibles, etc. Prácticamente es un simulador muy básico.Biblioteca de simulación de eventos simples y discretos (C++) para la programación de procesos/tareas?
Pero me di cuenta de que debería haberlo construido sobre un motor DES, ya que no tengo capacidad (aparte de establecer un indicador y verificar cada nodo en cada "marcación de reloj") para decir cosas como "En 10 ciclos, hacer esto "(es decir, elevar las señales a tiempos predefinidos y manejar eventos que se supone que ocurrirán en el futuro o cuando se hayan cumplido los criterios predeterminados).
Pude obviamente implementar esto yo mismo; construyó una clase de "eventos", los colocó en una cola, y al final (o principio) de cada ciclo, verifica la cola y ve lo que hay allí, pero creo que no tiene sentido reinventar la rueda.
Por lo tanto, los simuladores de red complejos son obviamente excesivos. No necesito modelos elegantes, ni hacer colas, ni nada de eso. Todo lo que necesito es un reloj incorporado y la capacidad de establecer eventos para que sucedan, levantar banderas cuando suceden las cosas, etc., como describí anteriormente.
Freeware y C++ sería genial.
¿Alguien tiene alguna idea? (Lo más cercano que he venido, gracias a algunas otras preguntas algo relacionadas, es algo llamado SIMLIB.)
¡Muchas gracias!
Si ya ha implementado un planificador para las tareas, ¿no podría permitir que los eventos del temporizador sean otra tarea? – jxh
+1 por tratar de evitar la reinvención de la rueda. A partir de su pregunta, parece que le gustaría obtener algunas características adicionales de un motor DES (de lo contrario, no es más que un bucle y una lista ordenada de eventos, por lo que usar _cualquier biblioteca específica parece ser exagerada), ¿qué más necesita? Escalabilidad (simulación paralela)? Soporte para distribuciones aleatorias/RNGs? ¿Prefiere una visión del mundo específica (por ejemplo, consulte http://www.informs-sim.org/wsc10papers/019.pdf)? –
Disculpa la demora en la respuesta! Las tareas del planificador no se escriben genéricamente. Los eventos basados en temporizadores requerirían ajustes importantes y el objetivo es no reinventar la rueda. – user770901