5 Блоки, связанные с очередями В GPSS блоки QUEUE (СТАТЬ В ОЧЕРЕДЬ) и DEPART (покинуть очередь) позволяют описать вынужденное ожидание транзактов, вызванное поступлением нескольких одновременных требований на один обслуживающий прибор. Блоки имеют следующий формат:
QUEUE А[,B]
DEPART А[,B]
А – имя очереди, может быть цифра, символ;
В – число единиц, на которое увеличивается (уменьшается) длина очереди (по умолчанию 1).
При поступлении транзакта в блок QUEUE соответствующей подпрограммой выполняются следующие действия:
Счетчик входов для данной очереди увеличивается на В.
Счетчик текущего содержимого очереди увеличивается на В.
Для данного транзакта запоминается имя очереди, в которой он находится.
Запоминается момент модельного времени постановки в очередь данного транзакта.
При входе транзакта в блок DEPART вызывается подпрограмма, которая выполняет следующие действия:
Текущее содержимое очереди уменьшается на В.
Определяется время пребывания транзакта в очереди.
Если время пребывания в очереди нулевое, то увеличивается счетчик нулевых входов.
Транзакт исключается из очереди.
Пример 2. Рассмотрим программу для примера 4.1, в которую введена очередь и использованы блоки QUEUE и DEPART:
GENERATE 10,4
QUEUE NAK
SEIZE STAN
DEPART NAK
ADVANCE 12,6
RELESE STAN
TERMINATE
GENERATE 4800
TERMINATE 1 Пример 3. Пусть имеется одна единица оборудования, но заявки поступают с различными приоритетами. Если очередь общая, то в ее вершине будут находиться заявки с более высоким приоритетом.
GENERATE 10,2,,,1
QUEUE NAK
SEIZE STAN
DEPART NAK
ADVANCE 12,6
RELEASE STAN
TERMINATE QUEUE NAK
SEIZE STAN
DEPART NAK
ADVANCE 10,4
RELEASE STAN
TERMINATE GENERATE 4800
TERMINATE 1 В процессе моделирования собирается следующая статистическая информация об ожидании:
номер или имя очереди (QUEUE);
максимальная длина очереди (MAX);
текущая длина очереди (CONT);
общее количество входов (ENTRY);
количество «нулевых» входов (ENTRY (0));
средняя длина очереди (AVE. CONT.);
среднее время пребывания транзактов в очереди (AVE. TIME);
среднее время пребывания транзактов в очереди без учета «нулевых» входов (AVE (-0));
количество транзактов, ожидающих специальных условий (RETRY).
6 Блоки, связанные с многоканальными устройствами Для моделирования параллельно работающих однотипных устройств в GPSS используется объект, называемый многоканальным устройством (МКУ). Пользователь может произвольно задать емкость МКУ – количество устройств, используемых данным МКУ.
В процессе моделирования работы МКУ используются блоки ENTER (ВОЙТИ) и LEAVE (ВЫЙТИ). Формат блоков следующий:
ENTER А[,B]
LEAVE А[,B]
А – имя МКУ, может быть цифра, символ;
В – количество занимаемых одновременно устройств (по умолчанию 1).
При входе в блок ENTER выполняются следующие действия:
Счетчик входов увеличивается на В.
Текущее содержимое увеличивается на В.
Доступная емкость увеличивается на В.
Действия, выполняемые при входе транзакта в блок LEAVE:
1. Текущее содержимое уменьшается на В.
2. Доступная емкость увеличивается на В единиц.
В процессе моделирования в файл стандартной статистики собирается следующая информация о МКУ:
номер или имя МКУ (STORAGE);
емкость МКУ (CAP);
количество единиц свободной емкости МКУ в конце моделирования (REMAIN);
минимальное количество свободной емкости МКУ за период моделирования (MIN);
максимальное количество свободной емкости МКУ за период моделирования (MAX);
количество входов (ENTRIES);
состояние готовности (AVAIL.);
среднее значение занятой емкости за период моделирования (AVE.C);
коэффициент использования (UTIL);
количество транзактов, ожидающих специальных условий (RETRY);
количество транзактов, ожидающих занятия устройства (DELAY).
Статистику работы МКУ в процессе моделирования можно наблюдать в окне МКУ для GPSS/PС (перейти в это окно можно с помощью клавиш [ALT+S]) или в окне Storage Window для GPSS World.
Определение емкости многоканальных устройств. Все используемые в модели МКУ должны быть заранее описаны, для чего используется оператор STORAGE (ХРАНИЛИЩЕ). Его формат:
Метка STORAGE А
Метка – это символическое имя МКУ;
А – емкость многоканального устройства.
Например: NL STORAGE 5
|