В GPSS/PC объекты типа "очередь" вводятся для сбора статистических данных.
Статистика об очередях собирается в моменты входа сообщения в блок QUEUE (вход в очередь) или в блок DEPART (выход из очереди).
Важно отметить, что задержку сообщений в очереди вызывает не очередность сообщений, а условия, при которых сообщение входит в очередь (например, состояния объектов типа "устройство").
Только объекты типа "очереди" обеспечивают пользователя данными относительно задержки. Примером служит блок QUEUE, стоящий перед блоком SEIZE, задерживающим сообщения в случае занятости специфицированного устройства.
Поскольку очереди в GPSS/PC по природе своей являются статистическими объектами, списки сообщений, находящихся в очереди, не составляются. Кроме того, использование очередей никоим образом не влияет на внутренние операции GPSS/PC, и процедуру просмотра GPSS\PC. С объектом "очередь" связаны два типа блоков: QUEUE, DEPART.
Формат записи блока QUEUE:
QUEUE A,[B]
Блок QUEUE увеличивает длину очереди.
В поле А задается номер или имя очереди, к длине которой добавляются единицы.
Поле В определяет число единиц, на которое увеличивается текущая длина очереди. Если поле В пусто, то прибавляется единица.
Когда сообщение входит в блок QUEUE, то ищется очередь с именем, определенным операндом А. Если необходимо, очередь создается.
Поскольку к очереди добавляются единицы, а не сами сообщения, не составляется список членов очереди. Сообщения в этот же момент условного времени пытаются перейти к следующему блоку.
Поскольку очередь обычно используется для измерения времени ожидания, за блоком QUEUE обычно следуют такие блоки как SEIZE, PREEMPT или ENTER, которые могут задержать сообщение. К таким блокам относятся также блоки GATE и TEST, работающие в режиме условного входа.
Одно и то же сообщение может одновременно увеличить длину нескольких очередей, т.е. сообщение может войти в несколько блоков QUEUE перед тем, как войти в соответствующие блоки DEPART. Стандартные числовые атрибуты, связанные с описываемым оператором, следующие:
- Q - текущая длина очереди;
- QА - средняя длина очереди;
- QС - общее число входов в очередь;
- QМ - максимальная длина очереди;
- QТ - среднее время ожидания в очереди;
- QХ - среднее время ожидания в очереди для сообщений с ненулевым временем задержки;
- QZ - число входов в очередь с нулевым временем задержки. Блок DEPART имеет следующий формат:
DEPART A,[B]
Блок DEPART служит для уменьшения длины очереди.
В поле А задается номер или имя очереди, длину которой нужно уменьшить.
В поле В задается число единиц, на которое уменьшается длина очереди. Это число не должно превышать текущую длину очереди. Если поле В пусто, длина очереди уменьшается на единицу.
Опубликовал Kest
January 20 2010 19:46:54 ·
0 Комментариев ·
9300 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.