Системы массового обслуживания. Оператор описания функций Function. Оператор EQU

Страницы работы

Фрагмент текста работы

Написать программу для моделирования ситуации, когда транзакты поступают в устройства с равной вероятностью.

·  Для всех программ  выполнить 2-3 прогона.

          Списки системы

Интерпретатором GPSS сообщения (транзакты) заносятся в списки, в которых они хранятся.

Вставить другие списки

В списке текущих событий находятся сообщения, соответствующие событиям, время наступления которых меньше или равно текущему модельному времени.

Список пользователя содержит сообщения, удаленные пользователем из списка текущих событий и помещенные в список пользователя как временно неактивные. Со списком пользователя связаны блоки LINK и UNLINK.

Перевод сообщений из списка текущих событий в список пользователя осуществляется блоком LINK. Удаление сообщений из списка пользователя производится блоком UNLINK.

Пример 2. Требования поступают в систему через 20±2 мин. и направляются во второй канал обслуживания в течение 70 мин. По прошествии 70 мин. требования направляются на обслуживание в первый канал. Каждый из каналов производит обслуживание со временем 19±7 мин. Предусмотреть вывод требований в списки пользователя и их возврат на обслуживание в каналы. Первый канал обслуживает требования, 100 из которых полностью обслуживаются и выводятся из системы, а остальные требования отправляются на дообслуживание во второй канал. В первом канале обслуживание предусмотреть по дисциплине FIFO (первым пришел, первым обслужился). Смоделировать процесс обслуживания требований и собрать статистику о работе каналов, возникающих очередях, списках пользователя.

Решение примера 2 приводится как программа 2.

Программа 2

generate 20,2

assign    13,7

test G    c1,70,que2

queue     1; 1-я очередь

link      waz1,fifo,chan1

chan1     seize     1; 1-е устройство с меткой chan1

depart    1

advance   19,7

release   1

unlink G waz1,chan1,1,13,6,que2

terminate 1

que2      queue     2; 2-я очередь с меткой que2

seize     2; 2-е устройство

depart    2

advance   19,7

release   2

terminate

start     100

В программе 2 два блока, распределяющие транзакты по каналам: блок TEST в режиме сравнения "больше" (G) и блок UNLINK, который удаляет транзакты из списка пользователя сначала в первое устройство, а потом во второе устройство (точнее во вторую очередь). Следует отметить, что работа блоков LINK и UNLINK в сильной степени зависит от соотношения времени генерации транзактов и их временной задержки в устройствах. Реализация достижения момента в 70 мин. достигается при введении в поле <A> блока TEST системного числового атрибута С1 — текущего значения условного модельного времени. Один блок TERMINATE отсчитывает число завершений, заданного в операторе START (START 100). Другой блок TERMINATE выводит транзакты из системы без уменьшения счетчика числа завершений (поле <A> пусто).

Формат записи блока LINK:

link waz1,fifo,chan1

В поле <A> блока LINK задается имя списка пользователя, куда заносятся транзакты (в программе задано имя waz1). Поле <B> задает алгоритм упорядочивания списка пользователя (в программе применена дисциплина FIFO). В поле <B> могут быть использованы операнды: FIFO, LIFO — последним пришел первым вышел, номер параметра, приоритет, время нахождения транзакта в модели М1 или С1. В поле <C> задается альтернативный выход (в программе по метке chan1 транзакты отправляются в первое устройство под номером 60).

Формат записи блока UNLINK:

unlink G waz1,chan1,1,13,16,que2

В данном случае задействованы все поля блока UNLINK: <A>, <B>, <C>, <D>, <E>, <F> и вспомогательное поле <X>.

В поле <X> установлен указатель отношения G — больше. Отношение истинно, если значение параметра, заданного в поле <D>, больше значения, заданного в поле <E>.

Поле <A> задает имя списка пользователя (в программе waz1), из которого удаляются транзакты.

В поле <B> указывается имя блока, к которому переходят удаленные транзакты (в программе блок с меткой chan1).

Поле <C> задает число удаляемых из списка транзактов (в программе 1). Операнд поля <C> может быть именем, положительным целым (как в программе число 1), СЧА.

В поле <D> задан номер параметра (в программе номер 13, который переопределен блоком ASSIGN на число 7). Поле <D> может быть именем, целым (как в программе номер параметра), СЧА.

Поле <E> определяет числовой атрибут (в программе задано число

Похожие материалы

Информация о работе