Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
137
Добавлен:
20.02.2016
Размер:
288.26 Кб
Скачать

4. Очереди. Блоки queue и depart

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

Формат записи блока QUEUE: QUEUE А,[В]

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

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

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

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

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

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

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

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

Блок DEPART имеет следующий формат: DEPART А,[В]

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

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

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

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

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

5. Моделирование многоканальных устройств

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

В среде 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, моделирующие работу с многоканальным устройством.

В результате выполнения программы моделирования работы вычислительной системы с двумя компьютерами GPSS выдаст отчет с информацией об использовании МКУ:

STORAGE - имя МКУ

САР. - емкость МКУ, заданную оператором STORAGE

REM. — количество единиц свободной емкости в конце периода моделирования

MIN. - минимальное количество емкости за используемый период

MAX. - максимальное количество емкости за используемый период ENTRIES - количество входов в МКУ за период моделирования

AVL. - состояние готовности МКУ в конце периода моделирования (1 - МКУ готов, 0 -нет)

AVE.C. - среднее значение занятой емкости за период моделирования

UTIL. - средний коэффициент использования всех устройств МКУ

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

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

Задание. Сравните отчеты по результатам моделирования работы вычислительной системы с одним компьютером и с двумя. Какие показатели изменились и как? Какой вариант организации работы вычислительной системы более предпочтителен?

Рассмотрим подробнее работу блоков, используемых в программе.

Устройство в GPSS используют для моделирования одиночного устройства обслуживания. Два или более обслуживающих устройств, работающих параллельно, могут моделироваться двумя или более одинаковыми устройствами. Это необходимо, когда устройства являются разнородными.

Если параллельно работающие устройства являются одинаковыми, то для их моделирования может использоваться объект многоканальное устройство (МКУ).

Количество устройств, которое моделирует МКУ задает пользователь с помощью оператора STORAGE

Формат оператора:

Метка STORAGE А

Метка - имя МКУ

А - емкость МКУ (количество однотипных устройств, входящих в МКУ)

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

ENTER А,[В]

Блок ENTER позволяет вошедшему сообщению (транзакту) использовать много­канальное устройство. Сообщение может быть задержано на входе в блок, если многоканальное устройство заполнено или имеющейся емкости недостаточно или устройство в данный момент недоступно.

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

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

Активное сообщение не может войти в блок ENTER, если запрос на многоканальное устройство не может быть удовлетворен.

Активное сообщение не может войти в блок ENTER, если многоканальное устройство находится в недоступном состоянии.

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

Одно и то же сообщение может входить в неограниченное число многоканальных устройств, а впоследствии освобождать их (или часть из них).

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

LEAVE А,[В]

Блок LEAVE освобождает определенное число единиц многоканального устройства. Занятый объем многоканального устройства уменьшается на число освобождаемых единиц. Оставшаяся емкость многоканального устройства увеличивается на ту же величину. Счетчик числа входов не изменяется.

Поле А блока LEAVE определяет номер или имя многокального устройства.

Поле В - число освобождаемых единиц многоканального устройства. Если это поле пусто, предполагается 1. Число освобождаемых единиц не должно превышать текущее содержимое многоканального устройства.

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

Морские суда прибывают в порт каждые 15-25 часов. В порту имеется 10 причалов. Каждый корабль по длине занимает 3 причала и находится в порту 7-13 часов. Промоделируйте работу порта на протяжении 500 часов. Напишите сегмент GPSS программы. Оцените эффективность работы порта.