How moussare19/qsim works
QSIM is an educational C11 discrete-event simulator. A model is initialized, scheduled through the context API, and run by dispatching events until a time or predicate termination condition; the M/M/1 model handles arrivals and departures, then exposes a report of queueing metrics. The graph also preserves the documented random-number, distribution, event-management, and statistics capabilities. Some engine and reporting links rely on README descriptions or source-index references; unsampled implementation details are not inferred beyond those relationships.
Main entry points: mm1_handlers.c Arrival and departure · mm1_init.c M/M/1 setup · context.c Model context API · kernel.c Simulation kernel
Components 17
Simulation engine
- Model context API
context.c - Event dispatch
dispatch.c - Simulation kernel
kernel.c - Virtual clock
clock.c - Future event list
fel.c - Event notice
event.h
Stochastic modeling
- xoshiro PRNG
prng.c - Distributions
dist.c
M/M/1 model
- M/M/1 setup
mm1_init.c - Arrival and departure
mm1_handlers.c - Queue model state
mm1_state.h - Customer entities
entity.c - Waiting queue
entity_queue.c
Statistics and reporting
- Time accumulators
time_acc.c - Sample accumulators
sample_acc.c - Queueing report
mm1_report.c
Other components
- Simulation user
Connections 21
- Simulation user → M/M/1 setup: configures model
README.md - Simulation user → M/M/1 setup: starts run
README.md - M/M/1 setup → xoshiro PRNG: seeds generator
mm1_init.c - M/M/1 setup → Model context API: creates context
mm1_init.c - M/M/1 setup → Event dispatch: runs dispatch
mm1_init.c - M/M/1 setup → Arrival and departure: schedules arrival
mm1_init.c - Arrival and departure → Model context API: schedules events
mm1_handlers.c - Arrival and departure → Distributions: samples durations
mm1_handlers.c - Arrival and departure → Queue model state: updates state
mm1_handlers.c - Arrival and departure → Customer entities: creates and frees
mm1_handlers.c - Arrival and departure → Waiting queue: enqueues and dequeues
mm1_handlers.c - Arrival and departure → Time accumulators: updates metrics
mm1_handlers.c - Arrival and departure → Sample accumulators: records samples
mm1_handlers.c - Model context API → Simulation kernel: uses kernel
README.md - Event dispatch → Model context API: dispatches events
README.md - Simulation kernel → Future event list: manages events
- Simulation kernel → Virtual clock: advances time
- Future event list → Event notice: stores notices
- Distributions → xoshiro PRNG: draws random values
dist.c - Queueing report → Queue model state: reads model metrics
mm1_report.c - Simulation user → Queueing report: requests report
README.md