DEGAS provides discrete-event scheduling capability to a GNAT Ada program without requiring extra calls to a simulation library. We accomplish this by intercepting all calls destined for the pthread library and then rerouting them to the dynamically linked DEGAS library; this allows a developer to switch between real-time and discrete-event modes at runtime in a non-intrusive manner. DEGAS narrows the separation between simulation and real time applications, and has significant implications for software that includes elements of concurrency, synchronization, and time. We foresee applications that go beyond simulations, including executable specifications, algorithm development, and system verification.
/lp/association-for-computing-machinery/degas-discrete-event-gnu-advanced-scheduler-dtd90JvuBt