D
D
dj_vadim2016-05-17 16:18:40
Computer networks
dj_vadim, 2016-05-17 16:18:40

How to randomly send transactions in GPSS?

Greetings!
There is a GPSS program that generates transactions and sends them in turn to different nodes. Hypercube technology, broadcast type. The first node sends transactions in turn, but you need to do it randomly to all nodes. What needs to be changed or added in the code?

GENERATE	16,2 ; Генерируем таранзакты на отрезке 14-18
  QUEUE	LQ1 ; Стать в очередь LQ1 (QUEUE - для сбора и обработки статистической информации)
  SEIZE	U1 ; Занаять одноканальное устройство с именем U1	
  DEPART	LQ1 ; Уйти из очереди LQ1	
  ADVANCE	16,2 ; Задержать транзакт на случайное время 14-18 (транз переводится из ТС в БС)	
  RELEASE 	U1 ; Освободить одноканал устр с именем U1
  SPLIT	1,L3  ; Если отказ до делаем копию и направляем в блок 3
  QUEUE	LQ2 ; Становимся в очередь	
  SEIZE	U2 ; Занимаем устройство	
  DEPART	LQ2 ; Уходим из очереди	
  ADVANCE	16,2 ; Задерживаем транзакт	
  RELEASE 	U2 ; Освобождаем устройство
    QUEUE	LQ3 ; Становимся в очередь	
  SEIZE	U3 ; Занимаем устройство	
  DEPART	LQ3 ; Уходим из очереди	
  ADVANCE	16,2 ; Задерживаем транзакт	
  RELEASE 	U3 ; Освободим устройство
    QUEUE	LQ4 ; Становимся в очередь 4	
  SEIZE	U4 ; Занимаем устройство	
  DEPART	LQ4 ; Уходим из очереди	
  ADVANCE	16,2 ; Задерживаем транзакт	
  RELEASE 	U4 ; Освободим устройство
  QUEUE	LQ5 ;  Станем в очередь	
  SEIZE	U5 ; Занимаем устройство	
  DEPART	LQ5 ; Уходим из очереди	
  ADVANCE	16,2 ; Задерживаем транзакт	
  RELEASE 	U5 ; Освобождаем устройство
  TRANSFER ,AS ; Изменяем направление перемещения транзактов. Безусловная передача так как задан второй операнд
L3 QUEUE	LQ6 ; Блок 3 - Становимся в очередь	
  SEIZE	U6 ; Занимаем устройство	
  DEPART	LQ6 ; Уходим из очереди	
  ADVANCE	16,2 ; Задерживаем транзакт	
  RELEASE 	U6 ; Освобождаем устройство
    QUEUE	LQ7 ; Становимся в очередь	
  SEIZE	U7 ; Занимаем устройство
  DEPART	LQ7 ; Уходим из очереди	
  ADVANCE	16,2 ; ЗАдерживаем транзакт 	
  RELEASE 	U7 ; Освобождаем устройство
AS	ASSEMBLE	2 ; Собираем все пакеты в одном месте
    QUEUE	LQ8 ; Станем в очередь	
  SEIZE	U8 ; Займём устройство	
  DEPART	LQ8 ; Уходим из очереди	
  ADVANCE	16,2 ; Задержка по времени	
  RELEASE 	U8 ; Освободим устройство
  TERMINATE 1 ; Удаляем 1 транзакт (вычитаем 1 из счётчика завершений)	
  START	100 ; Запуск - начальное время счётчика завршений

Answer the question

In order to leave comments, you need to log in

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question