
- •Лекции по gpss
- •Блоки и транзакты
- •Транзакт входит в блок, функцией которого является удаление транзакта из модели.
- •Транзакт входит в блок, функцией которого является задержка транзакта на некоторое определенное в модели время.
- •Удаление транзактов из модели и завершение моделирования
- •Занятие и освобождение одноканального устройства
- •Когда транзакт поступает в устройство, он должен обслуживаться там некоторое время.
- •Сбор статистики
- •Управление продолжительностью моделирования
- •Логика работы интерпретатора
- •1. Он находится в каком-либо конкретном блоке.
- •2. Он находится (отмечен) в одном или нескольких цепях (списках) gpss.
- •1) Единица модельного времени определяется разработчиком модели, который задает все временные интервалы в одних и тех же, выбранных им, единицах;
- •Занятие и освобождение многоканального устройства (памяти)
- •Абсолютное и относительное время. Команды clear и reset
- •0 Относительное
- •Изменение значений параметров транзактов
- •Числовые и символьные имена. Команда equ
- •Блоки, изменяющие маршруты транзактов
- •Блок transfer
- •Блок test
- •Блок gate
- •Блок loop
- •Команды table и qtable. Таблицы. Блок tabulate
- •Сохраняемые величины и матрицы сохраняемых величин
- •Initial Xj, значение
- •Initial mXj( a,b), значение
- •Арифметические переменные. Команды variable (fvariable)
- •Генераторы случайных чисел
- •1. Разыгрывается случайное число, равномерно распределенное в диапазоне 0;1;
- •2. Полученное число преобразуется в эквивалентное ему значение, но уже принадлежащее интересующей нас выборке.
- •Функции gpssw. Команда function
- •Модель смо
- •Блоки для работы со списками пользователя
- •Моделирование сетей массового обслуживания
- •1,2 Узел – 1 канал,3 узел – 2 канала
- •1,2 Устройства – одноканальные, 3-4 канала
- •Моделирование захвата прибора
- •Логические переключатели
- •Булевские переменные. Команда bvariable
- •Обработка транзактов, принадлежащих одному ансамблю
Обработка транзактов, принадлежащих одному ансамблю
Все транзакты в модели принадлежат множествам, называемым ансамблями. В одной модели может быть много ансамблей, но каждый транзакт принадлежит лишь одному ансамблю. Если транзакт вводится в модель блоком 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-ей группы специалистов.