Главная / Моделирование систем / Управление движением транзактов

Управление движением транзактов

Под управлением движением транзактов будем понимать их движение по операторам модели в порядке, отличающемся от последовательного расположения операторов в тексте модели. Это требуется практически во всех реальных задачах моделирования (например, для имитации обслуживания заявок разных типов).

Простейший оператор управления движением транзактов — оператор TRANSFER. Он может работать в нескольких режимах. Основные из них рассматриваются ниже.

Безусловный режим:

TRANSFER, A

Где A — метка оператора, на который передается транзакт.

Статистический режим:

TRANSFER. A,B, C

Где A — трехзначное число (NNN);

B — метка оператора, на который передаются 100-NN, N процентов транзактов;

C — метка оператора, на который передаются NN, N процентов транзактов.

Например, оператор TRANSFER.300,MET1,MET5 вызывает передачу 70% транзактов на оператор с меткой MET1, а 30% — в оператор с меткой MET5.

Операнд B необязателен. Если он не указан, то 100-NN, N% транзактов передаются на оператор, следующий за оператором TRANSFER, а NN, N% — на оператор с меткой C.

Режим BOTH:

TRANSFER BOTH, B,C

Этот оператор работает следующим образом: транзакт передается на оператор с меткой B; если он занят (т. е. в нем уже находится транзакт) — то на оператор с меткой C; если и он занят, то повторяется попытка передачи транзакта на оператор с меткой B, затем — с меткой C, и т. д., до освобождения одного из них.

Как и для статистического режима, операнд B необязателен.

Пример 2.5. На участок контроля и упаковки поступают одинаковые готовые изделия из двух цехов: из 1-го цеха — с интервалами от 6 до 12 минут, из 2-го — с интервалами от 3 до 7 минут. В службе контроля работают три контролера; проверка одного изделия занимает от 4 до 10 минут. По результатам контроля 5% изделий бракуется, а остальные направляются на упаковочную машину. Упаковка одного изделия занимает ровно 2 минуты. Составить GPSS-модель для анализа работы участка за смену (8 часов).

10 SIMULATE

20 KONTROL STORAGE 3

30 GENERATE 9,3

40 TRANSFER, OBR

50 GENERATE 5,2

60 OBR QUEUE OCH1

70 ENTER KONTROL

80 DEPART OCH1

90 ADVANCE 7,3

100 LEAVE KONTROL

110 TRANSFER.050,,BRAK

120 QUEUE OCH2

130 SEIZE UPAK

140 DEPART OCH2

150 ADVANCE 2

160 RELEASE UPAK

170 BRAK TERMINATE

180 GENERATE 480

190 TERMINATE 1

Здесь операторы 30-50 имитируют поступление изделий из цехов. Операторы 60-100 имитируют ожидание контроля (в очереди с именем OCH1) и саму операцию контроля (в многоканальном устройстве KONTROL). В операторе 110 имитируется браковка 5% изделий. Операторы 120 — 160 имитируют упаковку изделий. Операторы 180-190 предназначены для имитации времени моделирования; работа таких операторов рассмотрена в разделе 2.5.4.

Для управления движением транзактов в зависимости от некоторых условий используются операторы TEST и GATE. Оператор GATE будет рассмотрен в разделе 2.18.

Структура оператора TEST следующая:

TEST о_с A, B,C

Где о_с — обозначение операции сравнения: L — "меньше", LE — "меньше или равно", E — "равно", NE — "не равно", G — "больше", GE — "больше или равно";

A, B — некоторые величины, между которыми выполняется заданная операция сравнения;

C — метка оператора, на который передается транзакт, если результат операции сравнения величин A и B — "ложь" (если результат сравнения — "истина", то транзакт передается на оператор, следующий за оператором TEST).

Пример 2.6. Пусть в условиях примера 2.5 из цехов поступают разные изделия: из 1-го цеха — только изделия типа A, из 2-го — 60% изделий типа B и 40% изделий типа C. Упаковка изделий типа A занимает ровно 2 минуты, изделий типа B или C — от 2 до 4 минут.

10 SIMULATE

20 KONTROL STORAGE 3

30 GENERATE 9,3

35 ASSIGN 1,1

40 TRANSFER, OBR

50 GENERATE 5,2

55 TRANSFER.400,,TIPC

56 ASSIGN 1,2

57 TRANSFER, OBR

58 TIPC ASSIGN 1,3

60 OBR QUEUE OCH1

… операторы 70 — 140 см. в примере 2.5 …

145 TEST E P1,1,UP_BC

150 ADVANCE 2

155 TRANSFER, KON

156 UP_BC ADVANCE 3,1

160 KON RELEASE UPAK

170 BRAK TERMINATE

180 GENERATE 480

190 TERMINATE 1

В операторах 35, 56 и 58 первому параметру присваиваются значения 1, 2 или 3; так в данной модели обозначаются транзакты, имитирующие изделия типов A, B и C соответственно. В операторе 145 выполняется проверка условия: если 1-й параметр транзакта равен 1 (т. е. поступило изделие A), то имитируется его упаковка в течение ровно 2 мин, в других случаях (для изделий B или C) — в течение интервала 3±1 мин.

Примечание. Вместо оператора 145 можно использовать следующий оператор: TEST L P1,2,UP_BC.