В программах имитационного моделирования СМО преимущественно реализуется событийный метод организации вычислений. Сущность событийного метода заключается в отслеживании на модели последовательности событий в том же порядке, в каком они происходили бы в реальной системе. Вычисления выполняют только для тех моментов времени и тех частей (процедур) модели, к которым относятся совершаемые события. Другими словами, обращения на очередном такте моделируемого времени осуществляются только к моделям тех элементов (устройств, накопителей), на входах которых в этом такте произошли изменения. Поскольку изменения состояний в каждом такте обычно наблюдаются лишь у малой доли ОА, событийный метод может существенно ускорить моделирование по сравнению с инкрементным методом, в котором на каждом такте анализируются состояния всех элементов модели.
Рассмотрим возможную схему реализации событийного метода имитационного моделирования.
Моделирование начинается с просмотра операторов генерирования заявок, т.е. с обращения к моделям источников входных потоков. Для каждого независимого источника такое обращение позволяет рассчитать момент генерации первой заявки. Этот момент вместе с именем — ссылкой на заявку — заносится в список будущих событий (СБС), а сведения о генерируемой заявке — в список заявок (СЗ). Запись в СЗ включает в себя имя заявки, значения ее параметров (атрибутов), место, занимаемое в данный момент в СИМ. В СБС события упорядочиваются по увеличению моментов наступления.
Затем из СБС выбирают совокупность сведений о событиях, относящихся к наиболее раннему моменту времени. Эта совокупность переносится в список текущих событий (СТС), из которого извлекаются ссылки на события. Обращение по ссылке к СЗ позволяет установить место в СИМ заявки A, с которой связано моделируемое событие. Пусть этим местом является устройство X. Далее программа моделирования выполняет следующие действия (рис. 1):
  1. изменяет параметры состояния устройства X; например, если заявка A освобождает X, а очередь к X не была пуста, то в соответствии с заданной дисциплиной обслуживания из очереди к X выбирается заявка B и поступает на обслуживание в X;
  2. прогнозируется время наступления следующего события, связанного с заявкой B, путем обращения к модели устройства X, в которой рассчитывается продолжительность обслуживания заявки B; сведения об этом будущем событии заносятся в СБС и СЗ;
  3. происходит имитация движения заявки A в СИМ по маршруту, определяемому заданной программой моделирования, до тех пор, пока заявка не придет на вход некоторого ОА; здесь либо заявка задерживается в очереди, либо путем обращения к модели этого ОА прогнозируется наступление некоторого будущего события, связанного с дальнейшей судьбой заявки A; сведения об этом будущем событии также заносятся в СБС и СЗ;
  4. в файл статистики добавляются необходимые данные.
Рис. 1.  Событийный метод имитационного моделирования
После отработки всех событий, относящихся к моменту времени , происходит увеличение модельного времени до значения, соответствующего ближайшему будущему событию, и рассмотренный процесс имитации повторяется.