Реферат: Моделирование на GPSS
имя EQU номер
Блокам присваиваются их порядковые номера в исходной программе
(непутать с номерами строк!).
Для ссылки 0на какой-либо стандартный числовой атрибут некото-
рого объекта соответствующий операнд оператора исходной программы
записывается одним из следующих способов:
СЧА $имя ;
СЧА j ,
где СЧА - системное обозначение (название) конкретного стандар-
тного числового атрибута данного объекта; имя - имя объекта;
j - номер объекта; $ - символ-разделитель.
Прогон текущей модели, т.е. собственно моделирование, выполня-
ется с помощью специальной управляющей программы, которую называют
симулятором (от английского SIMULATE - моделировать, имитировать).
Работа GPSS-модели под управлением симулятора заключается в переме-
щении транзактов от одних блоков к другим, аналогично тому, как в
моделируемой СМО перемещаются заявки, соответствующие транзактам.
В начальный момент времени в GPSS-модели нет ни одного тран-
закта. В процессе моделирования симулятор генерирует транзакты в
определенные моменты времени в соответствии с теми логическими пот-
ребностями, которые возникают в моделируемой системе. Подобным же
образом транзакты покидают модель в определенные моменты времени в
зависимости от специфики моделируемой системы. В общем случае в мо-
дели одновременно существует большое число транзактов, однако в
каждый момент времени симулятор осуществляет продвижение только ка-
кого-либо одного транзакта.
Если транзакт начал свое движение, он перемещается от блока к
блоку по пути, предписанному блок-схемой. В тот момент, когда тран-
закт входит в некоторый блок, на исполнение вызывается подпрограмма
симулятора, соответствующая типу этого блока, а после ее выполне-
ния, при котором реализуется функция данного блока, транзакт "пыта-
ется" войти в следующий блок. Такое продвижение транзакта продолжа-
ется до тех пор, пока не произойдет одно из следующих возможных со-
бытий:
1) транзакт входит в блок, функцией которого является удаление
транзакта из модели;
2) транзакт входит в блок, функцией которого является задержка
транзакта на некоторое определенное в модели время;
3) транзакт "пытается" войти в следующий блок, однако блок
"отказывается" принять его. В этом случае транзакт остается в том
блоке, где находился, и позднее будет повторять свою попытку войти
в следующий блок. Когда условия в модели изменятся, такая попытка
может оказаться успешной, и транзакт сможет продолжить свое переме-
щение по блок-схеме.
Если возникло одно из описанных выше условий, обработка данного
транзакта прекращается, и начинается перемещение другого транзакта.
Таким образом, выполнение моделирования симулятором продолжается
постоянно.
Проходя через блоки модели, каждый транзакт вносит вклад в со-
держимое счетчиков блоков. Значения этих счетчиков доступны
программисту через СЧА блоков: W - текущее содержимое блока и N –
общее количество входов в блок.
Каждое продвижение транзакта в модели является событием, кото-
рое должно произойти в определенный момент модельного времени. Для
того, чтобы поддерживать правильную временную последовательность
событий, симулятор имеет таймер модельного времени, который ав-
томатически корректируется в соответствии с логикой, предписанной