Release 1

В момент освобождения устройства должен быть решён вопрос о том, кто имеет право первым его занять. Транзакты регистрируются симулятором в списке перед блоком SEIZE и упорядочиваются согласно приоритетам и времени прихода. Первый из этого списка занимает устройство.

3.3.4. Моделирование очередей

В GPSS объекты типа "очередь" вводятся для сбора статисти­ческих данных. Необходимо понимать, что блоки очереди не влияют на реальное образование очередей транзактов (очереди образуются перед входами в устройства сами по себе), блоки являются регистраторами статистики. Статистика об очередях собирается в моменты входа транзакта в блок QUEUE (вход в очередь) или в блок DEPART (выход из очереди). Формат записи блока QUEUE:

QUEUE A,[B]

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

Когда транзакт входит в блок QUEUE, то ищется очередь с име­нем, определённым операндом А. Если необходимо, очередь создаётся. Значение текущей длины очереди хранится в СЧА Q$имя. Поскольку очередь обычно используется для измерения времени ожидания, за блоком QUEUE обычно следует такой блок, как SEIZE, который может задержать сообщение. Одно и то же сообщение может одновременно увеличить длину нескольких очередей, т. е. сообщение может войти в несколько блоков QUEUE перед тем, как войти в соответствующие блоки DEPART.

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

DEPART A,[B]

Блок DEPART служит для уменьшения счётчика длины очереди. В поле В задаётся число единиц, на которое уменьшается длина очереди. Это число не должно превышать текущую длину очереди, иначе возникает ошибка «длина очереди отрицательна». Если поле В пусто, длина очереди по умолчанию уменьшается на единицу.

Пример. Посетители приходят в кассу кинотеатра через 20 ± 10 сек, знакомятся с обстановкой 15 ± 15 сек и занимают очередь. Каждый посетитель приобретает билет у кассира в течении 20 ± 5 сек. Построить модель в течении 8 часов.

Запишем модель на языке GPSS.

SIMULATE; управляющий блок на выполнение программы

GENERATE 20,10; приход посетителей

ADVANCE 15,15; знакомство с обстановкой

QUEUE 1; очередь к кассиру

SEIZE KASSA; занять кассира

DEPART 1; освободить очередь

ADVANCE 20,5; покупка билета

RELEASE KASSA; освободить кассира

TERMINATE; уход из кассы

GENERATE 2880; таймер времени

TERMINATE 1


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: