сканирования активностей. Учитывая, что условные события связаны с со-
стоянием системы (блок свободен/занят и т.д.), проверять условия срабаты-
вания нужно только в моменты изменения состояния.
Для управления процессом моделирования с учетом наличия двух раз-
нородных групп событий разработан механизм управления, включающий в
себя методику хранения и индексирования событий, а также сами алгоритмы
управления.
Управляющие алгоритмы опираются на специальные структуры: списки
будущих и условных событий. Данные списки хранят информацию о пла-
нируемых событиях в системе. Управляющие алгоритмы основываются на
добавлении и выталкивании событий из этих списков.
Список будущих событий представляет собой набор списков событий,
каждый элемент которого связан с конкретным временем моделирования.
Это время характеризует моменты времени, в которые должны произойти
события, описанные в связанном списке.
Список будущих событий постоянно поддерживается в отсортирован-
ном по возрастанию времени виде. Первый связанный список описывает
ближайшие по времени события. В моменты протяжки модельного времени
он связан с моментом времени, на которое в следующий момент переведется
модельное. В остальных случаях он связан с событиями, которые необходи-
мо исполнить в текущий момент времени.
Список условных событий — это набор пар вида событие и условие его
срабатывания. Условие характеризует моменты наступления события. Как
только выполняется условие, возникает соответствующее событие.
Для оптимизации доступа к этому списку вводится дополнительный мас-
сив. С каждым элементом этого массива связан определенный параметр мо-
делируемой системы, от которого может зависеть условие возникновения
события. С каждым таким элементом связан список индексов. Элементы
такого списка являются ссылками на события, на которые может повлиять
изменение связанного параметра.
Массив параметров формируется перед началом моделирования, во вре-
мя моделирования этот массив не меняется. Изменения происходят в свя-
занных индексных списках при добавлении и выборке событий из списка
условных событий. В массив параметров первым элементом добавляется
индексный список событий, условия срабатывания которых не удалось раз-
бить по зависящим параметрам. Этот список хранит ссылки на события,
условия которых проверяются каждый раз.
Для быстрого поиска индексов, которые нужно удалить при выборке
событий из списка условных событий, к паре событие и условие добавляется
третий элемент, который ссылается на элементы индексных списков.
Таким образом, планируемые события (привязанные к времени сраба-
тывания) группируются по времени возникновения и упорядочиваются во
времени в специальном списке будущих событий. Модельное время изме-
няется согласно обработке событий из этого списка. Событие на обработку
берется из начала списка. После обработки каждого такого события, состо-
яние системы может измениться, и поэтому необходимо проверить условия
возникновения непланируемых событий. При срабатывании условия выпол-
няется соответствующая обработка. Алгоритм функционирования заключа-
ется в последовательной обработке событий с попеременным сочетанием
обработки событий из списка будущих событий и проверки условий сраба-
тывания непланируемых событий.
ISSN 0236-3933. Вестник МГТУ им. Н.Э. Баумана. Сер. “Приборостроение”. 2012. № 1 123