Система GPSS в целом как программный продукт состоит из ряда модулей, из которых только модуль управления (симулятор) находится постоянно в ОЗУ и осуществляет процесс имитации. Динамика функционирования симулятора основана фактически на схеме событий, при этом событием считается любое изменение состояния моделируемой системы. Основной функцией симулятора является поддержание правильного хода часов системного времени и выяснение возможностей продвижения транзактов в программе модели. Симулятор оперирует с рядом информационных структур, основными из которых являются: список будущих событий (FEC), список текущих событий (СЕС), список прерываний, список задержанных транзактов и другие списки.
Работа симулятора разделяется на три основные фазы:
1) изменение значения системного времени
2) просмотр списка текущих событий;
3) движение сообщений.
Фаза «Изменение значения системного времени» (рис. 2.3) выполняется симулятором всегда, когда на текущий момент системного времени ни одно из активных сообщений, находящихся в СЕС, не может быть продвинуто в программе модели и, кроме того, состояние системы не может быть изменено.
|
|
Выбирая первое сообщение, симулятор присваивает системному времени STIME время очередной передвижки этого сообщения TEV(H) в программе модели и перемешает его в СЕС. Подобная процедура осуществляется для всех событий в FEC, время наступления которых равно TEV(H), т.е. текущему значению системного времени. При этом после просмотра в FEC останутся события, время наступления которых больше STIME, т.е. события, наступающие в будущем.
Фаза "Просмотр списка текущих событий" (рис. 2.4). Установив флаг изменения состояния системы в ноль, симулятор в зависимости от значения индикатора просмотра сообщения (транзакта) - 0 или 1 - решает вопрос: передать сообщение на третью фазу или нет. На фазу «Движение сообщений» (рис.2.5) передаются только активные сообщения, индикатор просмотра которых равен нулю. Пассивные сообщения находятся в состоянии задержки, например, по причине занятости имитируемого оборудования. Такие сообщения не попадут на третью фазу до тех пор, пока соответствующее оборудование не будет освобождено, т.е. пока не изменится состояние системы.
Рис. 2.3. Фаза "Изменение значения системного времени"
На фазе «Движение сообщений» активные сообщения симулятор пытается продвинуть как можно дальше по программе модели. Если при этой передвижке меняется состояние системы, все пассивные сообщения, находящиеся в СЕС и задержанные по той или иной причине, получают статус активных. Их индикаторы просмотра устанавливаются в "0". Если же при передвижке сообщений явно задана задержка, то сообщение перемещается в FEC. Таким образом, на третьей фазе происходит передвижка активных сообщений, изменение состояния системы, пересмотр индикаторов сообщений и планирование будущих событий (перемещение в FEC).
|
|
Рис. 2.4. Фаза "Просмотр списка текущих событий"
|
|
Рис. 2.5. Фаза "Движение сообщений"
МОДЕЛИРОВАНИЕ СМО