Блоки, обеспечивающие копирование и синхронизацию перемещения транзактов по модели в GPSS
SPLIT A, B, C, D создает А копий текущего транзакта. Копии входят в блок, указанный в поле В, а текущий транзакт продолжает движение в следующий блок. Номера создаваемых копий транзактов записываются в параметры, номера которых указываются в поле С.
Нумерация осуществляется таким образом: порядковый номер исходного транзакта после прохождения блока SPLIT увеличивается на 1, порядковый номер первой копии станет на 1 больше номера исходного транзакта, порядковый номер следующей копии станет на 1 больше порядкового номера предыдущей копии транзакта. В поле D указывается число параметров у транзактов-копий. Если поле D не задано, то число и тип параметров у копий такие же, как и у исходного транзакта.
Примеры
SPLIT 4, THE
Создает 4 копии транзакта, которые посылаются в блок по метке ТНЕ, а текущий транзакт продолжает движение в следующий блок.
SPLIT 3,P$1,2,4
Создает 3 копии транзакта, которые поступают на блоки, указанные в первом параметре, номера транзактов-копий указываются во втором параметре, каждая копия будет иметь 4 параметра.
ASSEMBLE A объединяет транзакты одного семейства, накапливая и задерживая транзакты, являющиеся членами семейства, до тех пор пока их число не станет равным А. Когда последний транзакт войдет в блок, А-1 транзактов будет удалено из модели, кроме первого, который и продолжит движение.
GATHER A накапливает и задерживает транзакты, являющиеся членами семейства, до тех пор пока их число не станет равным А. Когда последний транзакт войдет в блок, все они одновременно (по времени моделирования ) выходят из него в том порядке, в котором поступили.
МАТСН А синхронизирует два транзакта одного семейства: первый транзакт, достигнув блока MATCH, задерживается в нем до тех пор, пока другой транзакт данного семейства не достигнет сопряженного блока MATCH, указанного в поле А. Во время задержки устанавливается индикатор синхронизации. Он сбрасывается, когда транзакт того же семейства входит в соответствующий блок MATCH.
Пример
АА МАТСН ВВ
……
ВВ МАТСН АА
ТRACE и UNTRACE — блоки без операндов — осуществляют трассировку, т.е. вызывают фиксацию в файле результатов каждого шага движения транзактов по блокам модели, начиная с блока TRACE и заканчивая блоком UNTRACE.
Их применение полезно при отладке моделей с разветвлениями и с параллельными процессами.