Лекция: Q-СХЕМА задачи № 9
GPSS–ПРОГРАММА задачи № 9
1 FUNCTION RN1, C24
*далее описываются 24 точки экспоненциальной функции
GENERATE 30, FN1; поступление задания
SPLIT 1, MET; создается 1 копия транзакта
SEIZE VS1; задание-оригинал занимает VS1
ADVANCE 14, 5
RELEASE VS1
TERMINATE 0
MET SEIZE VS2; задание-копия занимает VS2
ADVANCE 16, 1
RELEASE VS2
TERMINATE 1
START 100
Блоки, управляющие движением транзактов
из одного ансамбля
БЛОК ASSEMBLE («Соединить»)– объединяет определенное число транзактов одного ансамбля. Когда в этот блок пройдет заданное количество транзактов, произойдет объединение: первый из транзактов продолжит свое движение по модели, все остальные будут уничтожены.
√А – «счетчик соединений» – количество транзактов, которое нужно объединить.
БЛОК GATHER («Собрать») – накапливает указанное число транзактов одного ансамбля для одновременного их пропуска в следующий блок модели.
√А – «счетчик сборки» – количество транзактов, которое нужно собрать в этом блоке.
Блок MATCH («синхронизировать») – используется для синхронизации движения пары транзактов одного ансамбля по разным маршрутам. Для синхронизации необходимы 2 блока MATCH, расположенные в соответствующих точках модели.
√А – метка сопряженного блока MATCH.
ПРИМЕР:
AAA MATCH BBB
· · ·
BBB MATCH AAA
Блок с меткой AAA задерживает транзакт до тех пор, пока в сопряженный ему блок BBB не поступит «пара» – любой транзакт из того же ансамбля, и наоборот. Затем сопряженные блоки одновременно пропустят пару в следующие блоки модели.
Внимание!
Ошибки в блоках ASSEMBLE, GATHER, MATCH возникают при попытке соединения, накопления или синхронизации транзактов, принадлежащих разным ансамблям.