Очереди. Блоки QUEUE и DEPART

В GPSS объекты типа "очередь" вводятся для сбора статисти­ческих данных.

Статистика об очередях собирается в моменты входа транзакта в блок QUEUE (вход в очередь) или в блок DEPART (выход из очереди).

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

QUEUE A,[B]

Блок QUEUE увеличивает длину очереди.

В поле А задается номер или имя очереди, к длине которой до­бавляются единицы. Операнд может быть именем, положительным целым, СЧА.

Поле В определяет число единиц, на которое увеличивается те­кущая длина очереди. Если поле В пусто, то прибавляется единица.

Когда сообщение входит в блок QUEUE, то ищется очередь с име­нем, определенным операндом А. Если необходимо, очередь создается.

Поскольку к очереди добавляются единицы, а не сами сообщения, не составляется список членов очереди. Сообщения в этот же момент условного времени пытаются перейти к следующему блоку.

Поскольку очередь обычно используется для измерения времени ожидания, за блоком QUEUE обычно следуют такой блок как SEIZE, который может задержать сообщение.

Одно и то же сообщение может одновременно увеличить длину нескольких очередей, т.е. сообщение может войти в несколько блоков QUEUE перед тем, как войти в соответствующие блоки DEPART.

Значение текущей длины очереди хранится в СЧА Q$<имя очереди>.

Блок DEPART имеет следующий формат:

DEPART A,[B]

Блок DEPART служит для уменьшения длины очереди.

В поле А задается номер или имя очереди, длину которой нужно уменьшить. В поле В задается число единиц, на которое уменьшается длина очереди. Это число не должно превышать текущую длину очереди. Если поле В пусто, длина очереди уменьшается на единицу.

Задания для самостоятельной работы:

- Увеличьте (уменьшите) на три единицы длину очереди с номером 3;

- Обнулите длину очереди QPR.

В результате выполнения программы моделирования работы вычислительной системы GPSS выдаст отчет:

GPSS World Simulation Report - proba31.2.1

Wednesday, January 19, 2000 20:42:57

START TIME END TIME BLOCKS FACILITIES STORAGES

0.000 60243.977 7 1 0

NAME VALUE

B 10001.000

BR 10000.000

LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY

1 GENERATE 166 0 0

2 QUEUE 166 65 0

3 SEIZE 101 1 0

4 DEPART 100 0 0

5 ADVANCE 100 0 0

6 RELEASE 100 0 0

7 TERMINATE 100 0 0

FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY

B 101 0.991 590.877 1 101 0 0 0 65

QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY

BR 67 66 166 1 31.107 11289.054 11357.472 0

CEC XN PRI M1 ASSEM CURRENT NEXT PARAMETER VALUE

101 0 38246.575 101 3 4

FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE

167 0 60773.872 167 0 1

Основные обозначения:

START TIME – время начала моделирования

END TIME - время окончания моделирования

BLOCKS - количество блоков, используемых в программе

FACILITIES – количество устройств

STORAGES – количество многоканальных устройств, для которых определяется емкость накопителя

Далее приводится информация о блоках:

LOC – номер блока, назначенный системой

BLOCK TYPE – название блока

ENTRY COUNT – количество транзактов, прошедших через блок за время моделирования

СURRENT COUNT – количество транзактов, задержанных в блоке на момент конца моделирования

RETRY – количество транзактов, ожидающих специальных условий для прохождения через данный блок

Отчет о работе устройства

FACILITY – название устройства

ENTRIES – количество транзактов, прошедших через устройство

UTIL. – вероятность загрузки устройства (часть периода моделирования, когда устройство было свободно)

AVE. TIME – среднее время обработки одного транзакта устройством

AVAIL. – состояние готовности устройства на момент конца моделирования (1 –готово к обслуживанию очередной заявки; 0 – не готово)

OWNER – номер последнего транзакта занимающего устройство (если не занималось, то значение 0)

PEND – количество транзактов, ожидающих устройство, и находящихся в режиме прерывания

INTER – количество транзактов, прерывающих устройство в данный момент

RETRY – количество транзактов, ожидающих специальных условий, зависящих от состояния объекта типа «устройство»

DELAY – определяет количество транзактов, ожидающих занятия или освобождения устройства

Статистика об очередях:

QUEUE – имя очереди

MAX - максимальная длина очереди

CONT. – текущая длина очереди

ENTRY – общее количество входов

ENTRY(0)- количество «нулевых» входов

AVE.CONT. – средняя длина очереди

AVE.TIME – среднее время пребывания транзактов в очереди

AVE.(-0) – среднее время пребывания в очереди без учета «нулевых» входов

RETRY – количество транзактов, ожидающих специальных условий

Информация о списке текущих событий

CEC (Current Events Chain)

XN – номер транзакта

PRI – приоритет транзакта (по умолчанию - 0)

M1 – время пребывания транзакта в системе с момента начал моделирования

ASSEM - номер семейства транзактов

CURRENT – номер блока в котором находится транзакт

NEXT – номер блока в который перейдет транзакт далее

PARAMETER – номер или имя параметра транзакта

VALUE – значение параметра

Информация о списке будущих событий

FEC (Future Events Chain)

XN – номер транзакта

PRI – приоритет транзакта

BDT - таблица модельных событий – абсолютное модельное время выхода транзакта из списка будущих событий (и перехода транзакта в список текущих событий)

ASSEM - номер семейства транзактов

CURRENT - номер блока в котором находится транзакт (0 – если транзакт не вошел в модель)

NEXT - номер блока в который перейдет транзакт далее

PARAMETER – номер или имя параметра транзакта

VALUE – значение параметра

Задача. Изменим условие задачи. Пусть в вычислительной системе два компьютера (интенсивность обработки заданий одинаковая), все остальные условия остаются без изменений.

В среде GPSS программа, моделирующая работу вычислительной системы, выглядит следующим образом:

NAK STORAGE 2

GENERATE 360,300

QUEUE BR

ENTER NAK

DEPART BR

ADVANCE 600,540

LEAVE NAK

TERMINATE 1

START 100

Обратите внимание, в программе появилась дополнительная строка NAK STORAGE 2.

И блоки SEIZE – RELEASE заменены соответственно на блоки ENTER –LEAVE, моделирующие работу с многоканальным устройством.

Рассмотрим подробнее работу этих блоков.

Наши рекомендации