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

Блок gate

Для задержки или изменения маршрута транзактов в зависимости от состояния аппаратных объектов модели служит блок GATE (впустить), имеющий следующий формат:

GATE X A, [B]

Вспомогательный операнд X содержит код состояния проверяемого аппаратного объекта, а в поле A указывается имя или номер этого объекта. Если проверяемый объект находится в заданном состоянии, то блок GATE пропускает транзакт к следующему блоку. Если же заданное в блоке условие не выполняется, то транзакт переходит к блоку, указанному в поле B, а если это поле пусто, то задерживается перед блоком GATE.

Операнд X может принимать следующие значения: U (устройство занято); NU (устройство свободно); I (устройство захвачено); NI (устройство не захвачено); SE (МКУ пусто); SNE (МКУ не пусто); SF(МКУ заполнено); SNF (МКУ не заполнено); LS (ЛП включен), LR (ЛП выключен) (Здесь ЛП – логический переключатель, назначение логических переключателей будет рассмотрено позже).

Например, блок

GATE SNE BUF3

отказывает во входе транзактам, поступающим в моменты, когда в МКУ с именем BUF3 все каналы обслуживания свободны. Блок

GATE LR 4, BLOK2

направляет транзакты в блок с именем BLOK2, если в момент их поступления ЛП с номером 4 включен.

Приведем пример.

Простейшая телефонная система имеет две линии связи. Звонки, которые приходят извне, поступают каждые 100+(-)60 сек. Когда линия занята, абонент набирает номер повторно после того, как проходит 5+(-)1 мин. Требуется осуществить табулирование распределения времени, которое требуется каждому абоненту, чтобы установить связь и провести разговор. Требуется определить, сколько времени понадобится для реализации 200 разговоров.

Sets STORAGE 2

Transit TABLE M1,100,100,20

;

GENERATE 100,60

Again GATE SNF Sets,Occupied

ENTER Sets

ADVANCE 180,60

LEAVE Sets

TABULATE Transit

TERMINATE 1

Occupied ADVANCE 300,60

TRANSFER , Again

Объяснение работы модели:

Память Sets общей емкостью 2 берется для имитирования 2 телефонных линий.

Оператор описания TABLE Transit определяет аргумент как СЧА М1 для табулирования времени пребывания в модели транзакта, а также число и ширину частотных интервалов. Как раз перед тем, как транзакт попадает в блок TERMINATE , табулируется время его пребывания в модели как СЧА М1 - длительность времени, отсчитываемого с первого звонка абонента до тех пор, пока абонент не закончит разговаривать.

Блок GENERATE каждые 100 +(-) 60 сек. создает транзакт, который имитирует вызов.

Блок GATE посылает транзакт к блоку Occupied, когда все линии заняты. Это имеет место, когда память Sets заполнена и абонент должен ожидать, прежде чем позвонит вторично.

Если память не занята, или в ней занято 1 место, то транзакт проходит через блок GATE в блок ENTER, заняв одно место в памяти. Если все места в памяти заняты, то блок GATE больше не пропустит транзактов. Каждый транзакт, приходящий в блок ENTER, имитирует вызов, который был успешно осуществлен.

Блок ADVANCE задерживает транзакт на продолжительность разговора 180 +(-) 60 сек.

Когда транзакт входит в блок LEAVE, он освобождает одно место в памяти Sets для другого транзакта, это имитирует вновь освободившуюся внешнюю линию.

Блок TABULATE добавляет длительность проведенного разговора к гистограмме времени выполнения разговоров, собираемого в таблице Transit.

Блок TERMINATE выводит транзакт из модели после того, как разговор завершен, и уменьшает на 1текущее значение счетчика завершений.

Транзакт приходит в блок ADVANCE с меткой Occupied, когда он пытался и не сумел занять место в памяти Sets , ввиду занятости. Это имитирует абонента, который должен подождать, прежде чем снова набрать номер.

Блок TRANSFER посылает каждый транзакт в блок GATE с меткой Again. Там транзакт снова пытается занять место в памяти Sets. Другими словами, абонент пытается перезвонить.

Приведем еще один пример.

Блоки рассматриваемой группы используются при моделировании различных СМО с потерями заявок. Воспользуемся, например, блоками TRANSFER для моделирования двухканальной СМО с отказами и повторными попытками (рис. ).

STO2 STORAGE 2

GENERATE (Exponential(1,0,100))

ENT1 TRANSFER BOTH,,REFUS

ENTER STO2

ADVANCE (Exponential(2,0,160))

LEAVE STO2

TERMINATE 1

REFUS TRANSFER .1,,OUT

ADVANCE (Exponential(2,0,250))

TRANSFER ,ENT1

OUT TERMINATE 1

Транзакты, поступающие в модель, попадают в блок TRANSFER с именем ENT1, работающий в логическом режиме. Если в момент поступления транзакта в МКУ STO2 хотя бы один канал свободен, то блок TRANSFER направит транзакт в следующий блок, т.е. в блок ENTER.

Если же в момент поступления оба канала МКУ заняты, и поэтому блок ENTER отказывает во входе, то транзакт будет направлен в блок TRANSFER с именем REFUS, работающий в статистическом режиме. С вероятностью 0,9 транзакты из этого блока передаются в следующий блок, задерживаются в нем на случайное время и с помощью блока TRANSFER, работающего в безусловном режиме, передаются вновь на вход модели в блок с именем ENT1. С вероятностью 0,1 транзакты из блока с именем REFUS передаются в блок TERMINATE с именем OUT для уничтожения.

Следует заметить, что для уничтожения транзактов, получивших отказ в обслуживании, понадобился отдельный блок TERMINATE для фиксации в стандартном отчете количества потерянных транзактов с помощью счетчика блока с именем OUT (СЧА N$OUT).

Для моделирования той же СМО может быть использован также блок TEST (рис. ). В этом варианте модели транзакт проходит в блок ENTER, если текущее число занятых каналов (СЧА S$STO2) меньше 2.

STO2 STORAGE 2

GENERATE Exponential(1,0,100))

ENT1 TEST L S$STO2,2,REFUS

ENTER STO2

ADVANCE (Exponential(3,0,160))

LEAVE STO2

TERMINATE 1

REFUS TRANSFER .1,,OUT

ADVANCE (Exponential(5,.0,250))

TRANSFER , ENT1

OUT TERMINATE 1

При использовании блока GATE модель принимает вид, показанный на рис . В этом варианте транзакт проходит в блок ENTER, если условие "МКУ STO2 не заполнено" истинно.

STO2 STORAGE 2

GENERATE (Exponential(3,0,10.7))

ENT1 GATE SNF STO2,REFUS

ENTER STO2

ADVANCE (Normal(7,28.9,13.8))

LEAVE STO2

TERMINATE 1

REFUS TRANSFER .1,,OUT

ADVANCE (Normal(4,344.5,16))

TRANSFER ,ENT1

OUT TERMINATE 1