Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по самому GPSS - для студентов.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
153.76 Кб
Скачать

Обработка транзактов, принадлежащих одному ансамблю

Все транзакты в модели принадлежат множествам, называемым ансамблями. В одной модели может быть много ансамблей, но каждый транзакт принадлежит лишь одному ансамблю. Если транзакт вводится в модель блоком GENERATE, он становится первым членом ансамбля, номер которого равен номеру транзакта. Когда транзакт входит в блок SPLIT с ненулевым операндом A, все созданные потомки становятся членами того же ансамбля, что и транзакт-родитель. Ансамбль существует до тех пор, пока в нем есть хотя бы один транзакт. Системный атрибут A1 возвращает номер ансамбля активного транзакта.

SAVEVALUE SET1, A1

В сохраняемую величину SET1 записывается номер ансамбля активного транзакта.

Блок ASSEMBLE предназначен для удаления из модели одного или нескольких транзактов, принадлежащих одному ансамблю. Операнд A – число транзактов одного ансамбля, которые должны быть объединены в один транзакт. Значение операнда А на единицу превышает число членов ансамбля, которые должны быть удалены из модели через блок ASSEMBLE.

С поступлением транзакта в блок ASSEMBLE начинается подсчет входящих в блок транзактов, являющихся членами того же ансамбля, что и транзакт, инициировавший выполнение операции соединения. Транзакт, вошедший первым, задерживается в блоке до достижения счетчиком значения, указанного в поле А, а все поступающие вслед за ним удаляются из модели. Когда число вошедших в блок членов ансамбля станет равным числу, заданному операндом А, первому поступившему члену ансамбля разрешается покинуть блок.

ASSEMBLE P3

Если, например, значение 3-го параметра вошедшего транзакта равно 5, то первый транзакт ансамбля. вошедший в блок, будет находиться в нем до тех пор, пока в блок не поступят еще 4 транзакта из того же ансамбля.

Остающийся в блоке транзакт выводится из СТС и помещается в список (цепь) парности. Цепь парности – это список транзактов, связанных с данным блоком и данным ансамблем.

Т.о. блоки SPLIT и ASSEMBLE выполняют противоположные по содержанию действия.

Блок GATHER (Собрать) выполняет накопление заданного количества членов одного ансамбля. Когда число таких транзактов, вошедших в блок, становится равным заданному, всем накопленным членам ансамбля разрешается покинуть блок GATHER. Операнд А блока указывает, сколько членов ансамбля должно быть накоплено. Пример:

GATHER 5

Данный блок предназначен для сбора пяти транзактов, принадлежащих одному ансамблю. Транзакт, вошедший в блок, начинает сборку, пятый же транзакт этого же ансамбля, вошедший в блок, инициирует вывод всех пяти транзактов из блока.

В отличие от блока ASSEMBLE, каждый транзакт, входящий в блок GATHER, увеличивает значения счетчиков входов и текущего содержимого блока на 1, и каждый выходящий из него транзакт уменьшает текущее содержимое на 1.

Все входящие в блок GATHER транзакты выводятся в цепь парности, связанную с данным блоком GATHER и данным ансамблем. По завершении операции сборки интерпретатор возвращает эти транзакты в ЦТС последними в своем классе приоритета.

Блок MATCH используется для синхронизации обработки двух транзактов одного ансамбля, продвигающихся по модели разными путями. В поле А указывается имя сопряженного блока такого же типа. Транзакт, поступивший в один из блоков MATCH, ожидает поступления в сопряженный блок другого транзакта того же ансамбля. Пример:

…………………………….

AAA MATCH BBB

……………………………….

BBB MATCH AAA

……………………………….

Обычно сопряженные блоки находятся в разных местах модели. Пара транзактов, между которыми предусмотрена связь по логике работы моделируемого устройства, минует блоки MATCH и продолжит движение в модели, когда завершатся оба предусмотренных для них процесса.

Приведем пример [Боев, стр. 220]:

Техническое обслуживание (ТО) средств связи проводят в два этапа две группы специалистов. 1 этап выполняется специалистами 1 и 2 групп параллельно со средним временем соответственно 80 мин и 70 мин. После 1-го этапа проводится сверка результатов ТО, время выполнения которой можно принять равной 0. После сверки специалистами обеих групп параллельно выполняется второй этап ТО со средним временем соответственно 30 мин и 40 мин. Затем 3-я группа специалистов производит комплексную проверку средств связи со средним временем 60 мин. Интервалы поступления средств связи и время их ТО подчиняются экспоненциальному закону. Построить модель ТО с целью определения загрузки групп специалистов.

Группы специалистов можно представить одноканальной СМО, средства связи – транзактами.

GENERATE (Exponential(215,0,11400))

SPLIT 1, ANB

;Сегмент имитации работы 1-й группы специалистов

SEIZE TG1

ADVANCE (Exponential(215,0,4800)) ; 1 этап обслуживания

Par1 MATCH PAR2 ;Сверка результатов ТО

ADVANCE (Exponential(215,0,1800)) ; 2 этап обслуживания

RELEASE TG1

TRANSFER , ANK

;Сегмент имитации работы 2-ой группы специалистов

ANB SEIZE TG2

ADVANCE (Exponential(215,0,4200)) ; 1 этап обслуживания

PAR2 MATCH PAR1

ADVANCE (Exponential(215,0,2400)) ; 2 этап обслуживания

RELEASE TG2

ANK ASSEMBLE 2 ; передача средств связи третьей группе специалистов

;Сегмент имитации работы 3-ей группы специалистов

SEIZE TG3

ADVANCE (Exponential(215,0,3600)) ; третий этап обслуживания

RELEASE TG3

TERMINATE 1 ; готовые средства связи

После выполнения 1-го этапа обслуживания обеими группами оба транзакта задерживаются блоками MATCH и затем, одновременно, начинается 2-ой этап. После его выполнения два транзакта блоком ASSEMBLE объединяются в один и далее идет имитация работы 3-ей группы специалистов.