Записать и запустить на выполнение программу для решения примера 4.



Статистическая информация об очереди формируется блоками QUEUE и DEPART. В GPSS World блоки QUEUE и DEPART описывают объекты типа "очередь". Статистика об очередях собирается в моменты входа сообщения (транзакта) в блок QUEUE (вход в очередь) или в блок DEPART (выход из очереди). Блоки QUEUE и DEPART являются информационно-статистическими и не влияют на внутренние операции процесса моделирования GPSS World.

Для сохранения и запоминания в модели числовой информации, различных стандартных числовых атрибутов в GPSS World отводятся специальные ячейки основной памяти. Для записи числовой информации в ячейки служит блок SAVEVALUE.

Пример 4. В систему по равномерному закону с интервалом 7±2 мин. поступают заявки на обслуживание. С вероятностью 0.6 заявки обслуживаются на первом приборе по равномерному закону с интервалом 12±2 мин. и с вероятностью 0.4 обслуживание происходит на втором приборе также по равномерному закону с интервалом 13±2 мин. Смоделировать процесс функционирования системы и получить статистические данные об очереди заявок при обслуженном числе их, равном 100.

Здесь входящий поток заявок не ограничен и по времени является более интенсивным, чем обслуживание в каждом из приборов. Естественно следует ожидать возникновение очередей перед каждым из устройств. Задача состоит в том, чтобы произвести обслуживание 100 заявок (двумя приборами) и собрать сведения о задержках начала обслуживания, т.е. статистику об очередях. Для решения этой задачи составлена программа PRIM28.GPS, в которой применены две пары совместных блоков QUEUE и DEPART. В блоке GENERATE поле <D> — поле задания генерируемых транзактов (заявок) не используется, поэтому ограничение поступающих в систему транзактов определяется только операторм START и временем генерации транзактов блоком GENERATE.

Решение примера 4 приводится как программа 4.


Таблица.

GENERATE 5,2TRANSFER 0.4,CHAN1,CHAN2CHAN1 QUEUE 1SEIZE 1DEPART 1ADVANCE 12,2RELEASE 1TRANSFER ,EXIT CHAN2 QUEUE LEN2 SEIZE 2 DEPART LEN2 ADVANCE 13,2 RELEASE 2 SAVEVALUE NUM,C1 SAVEVALUE NUM1,Q1 SAVEVALUE NUM2,Q$LEN2 SAVEVALUE NUM3,QT1 SAVEVALUE NUM4,QT$LEN2 EXIT TERMINATE 1 START 100
Программа 4.

 

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

<метка> QUEUE < A >,[< B >]

<метка> QUEUE < A >,[< B >]

В поле <метка> задается имя блока, в поле <A> — имя или номер очереди. В поле <B> задается число единиц, на которое увеличивается текущая длина очереди. Если поле <B> пусто (как в программе), то прибавляется единица. В поле <метка> блока QUEUE задана метка chan1, для другого блока задана метка chan2. Блок QUEUE регистрирует статистику для очереди под номером 1, которая возникает перед первым устройством (оно начинается с блока SEIZE). Блок QUEUE регистрирует статистику для очереди под именем LEN2, которая возникает перед вторым устройством (оно начинается с блока SEIZE).

Выход транзакта из очереди регистрируется блоком DEPART.

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

DEPART <A>,[<B>]

DEPART < A >,[< B >]

В поле <A> блока DEPART задается номер или имя очереди, длину которой нужно уменьшить. В поле <B> задается число единиц, на которое уменьшается длина очереди. Это число не должно превышать текущую длину очереди (чтобы не получилось отрицательное число). Если поле <B> пусто (как в программе), длина очереди уменьшается на единицу. В программе для блока в поле <A> задана очередь с номером 1, для блока в поле <A> задана очередь под именем LEN2. В подпрограмме блока DEPART автоматически проверяется значение времени пребывания транзакта в очереди. Если транзакт не был задержан в очереди, т.е. имеет нулевое время задержки, число нулевых входов увеличивается на число единиц, указанное в поле <B> блока DEPART. В программе PRIM26.GPS поле <B> пусто. В программе используются пять блоков SAVEVALUE, которые сохраняют СЧА по времени моделирования и очередей.

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

SAVEVALUE <A>,<B>

SAVEVALUE <A>,<B>

SAVEVALUE <A>,<B>

SAVEVALUE <A>,<B>

SAVEVALUE <A>,<B>

В поле <A> каждого блока SAVEVALUE задается имя ячейки, в которую записывается значение поля <B>. Для примера с помощью блоков SAVEVALUE были сохранены следующие стандартные числовые атрибуты. Для блока SAVEVALUE сохраняемой ячейки num, сохраняемая величина С1 — условное время моделирования. Для блока SAVEVALUE имя сохраняемой ячейки num1, сохраняемая величина q1 — длина очереди под номером 1. Для блока SAVEVALUE имя сохраняемой ячейки num2, сохраняемая величина q$len2 — длина очереди с именем len2. Для блока SAVEVALUE имя сохраняемой ячейки num3, сохраняемая величина qt1 — среднее время (с точностью до целых) пребывания сообщения в очереди под номером 1 (включая нулевые входы). Для блока SAVEVALUE имя сохраняемой ячейки num4, сохраняемая величина qt$len2 — среднее время (с точностью до целых) пребывания сообщения в очереди с именем len2 (включая нулевые входы). Очереди имеют также и другие СЧА: QAj — средняя длина очереди j (автоматически определяется и сохраняется программой, приводится в файле стандартного отчета); QMj — максимальная длина очереди j (автоматически определяется и сохраняется программой, приводится в файле стандартного отчета); QCj — общее число входов в очередь j (автоматически определяется и сохраняется программой, приводится в файле стандартного отчета); QZj — число нулевых входов в очередь j (автоматически определяется и сохраняется программой, приводится в файле стандартного отчета); QXj — среднее время пребывания транзакта в очереди j без нулевых входов (автоматически определяется и сохраняется программой, приводится в файле стандартного отчета).

Результаты моделирования примера 4 приводятся в таблице как файл стандартного отчета программы 4.

 

Файл стандартного отчета программы 4.
 GPSS World Report file REPORT.GPS. page 1START_TIME END_TIME BLOCKS FACILITIES STORAGES FREE_MEMORY 0 633 19 2 0 80800 LINE LOC BLOCK_TYPE ENTRY_COUNT CURRENT_COUNT RETRY 1 GENERATE 130 0 0 2 TRANSFER 130 0 0 CHAN1 QUEUE 73 20 0 4 SEIZE 53 0 0 5 DEPART 53 0 0 6 ADVANCE 53 1 0 7 RELEASE 52 0 0 8 TRANSFER 52 0 0 CHAN2 QUEUE 57 8 0 10 SEIZE 49 1 0 11 DEPART 48 0 0 12 ADVANCE 48 0 0 13 RELEASE 48 0 0 14 SAVEVALUE 48 0 0 15 SAVEVALUE 48 0 0 16 SAVEVALUE 48 0 0 17 SAVEVALUE 48 0 0 18 SAVEVALUE 48 0 0 EXIT TERMINATE 100 0 0 FACILITY ENTRIES UTIL. AVE._TIME AVAILABLE OWNER PEND INTER RETRY DELAY 1 53 0.992 11.85 1 96 0 0 0 20 2 49 0.973 12.57 1 111 0 0 0 8 QUEUE MAX CONT. ENTRIES ENTRIES(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY 1 21 20 73 1 10.36 89.85 91.10 0 LEN2 9 9 57 3 4.47 49.65 52.41 0 XACT_GROUP GROUP_SIZE RETRY POSITION 0 0 SAVEVALUE VALUE RETRY NUM +633 0 NUM1 +20 0 NUM2 +9 0 NUM3 +89 0 NUM4 +49 0

 

По условию входной поток неограничен и поэтому количество сгенерированных транзактов превышает количество обработанных и выведенных из системы транзактов, которых 100. Перед каждым устройством системы осуществляется сбор статистических данных об очередях с помощью блоков QUEUE, DEPART. Устройства моделируются блоками SEIZE, ADVANCE, RELEASE.

В файле стандартного отчета программы 4 строка QUEUE имеет следующие поля: 1 — номер первой очереди, LEN2 — имя второй очереди (очередь может иметь либо произвольный номер, либо произвольное имя), поле MAX определяет максимальное содержимое очереди в течение периода моделирования (для первой очереди 21, для второй с именем LEN2 — 9), поле CONT. определяет текущее содержимое очереди в конце периода моделирования (для первой очереди 20, для второй с именем LEN2 — 9), поле ENTRIES определяет общее количество входов в очередь в течение периода моделирования (для первой очереди 73, для второй с именем LEN2 — 57), поле ENTRIES(0) определяет общее количество входов в очередь с нулевым временем ожидания (для первой очереди 1, для второй с именем LEN2 — 3), поле AVE.CONT определяет среднее значение содержимого (количество транзактов) очереди (для первой очереди 10.36, для второй с именем LEN2 — 4.47), поле AVE.TIME определяет среднее время, проведенное в очереди с учетом всех входов в очередь (для первой очереди 89.85, для второй с именем LEN2 — 49.65), AVE.(-0) определяет среднее время, проведенное в очереди без учета "нулевых" входов в очередь (для первой очереди 91.10, для второй с именем LEN2 — 52.41), поле RETRY определяет количество транзактов, ожидающих специальных условий, зависящих от состояния очереди (специальных условий в примере нет).

Статистика по транзактам может быть сопоставлена по полям MAX, CONT., ENTRIES и ENTRY_COUNT, CURRENT_COUNT.

Пояснения к полю AVE(-0). Для каждой очереди поле имеет большее время пребывания в очереди, чем для поля AVE.TIME. Это объясняется тем, что каждая очередь имеет какое-то количество нулевых входов, когда транзакты поступают на обслуживание без задержки, если же этих нулевых входов нет, то транзактам бы пришлось находиться в очереди, и значит, увеличивается время пребывания в очереди.

Для статистики блоков SAVEVALUE в файле стандартного отчета отводятся следующие поля. В поле SAVEVALUE указываются имена ячеек (в отчете это NUM, NUM1, NUM2, NUM3, NUM4), в которых сохраняются заданные величины. Сохраняемые величины указываются в поле VALUE (это 633, 20, 9, 89, 49). Поле RETRY определяет количество транзактов, ожидающих наступления специальных условий, зависящих от состояния сохраняемой величины (в примере специальных условий нет).

Задание к примеру 4: задать равновероятное распределение транзактов по устройствам, а также: 0.8 на 1-е устройство, 0.2 на 2-е устройство, 0.3 на 1-е устройство, 0.7 на 2-е устройство При этом в каждом случае произвести один прогон программы, два прогона, три прогона. Изменить среднее время обработки в устройствах: 9 и 7; 15 и 5; 13 и 11; 12 и 12. Подсчитать средние статистические показатели работы устройств и средние статистические показатели очередей. Объяснить результаты моделирования по файлу стандартного отчета. Вычислить с помощью оператора EQU , , , , , ,  и сохранить результаты с помощью блока SAVEVALUE.

Контрольные вопросы

1. Каким образом работают блоки PREEMPT, RETURN? Некоторые дополнительные возможности блока PREEMPT.

2. Какими блоками формируется статистическая информация об очереди QUEUE и DEPART в системе моделирования GPSS World?

3. Что отводится для сохранения и запоминания в модели числовой информации, различных стандартных числовых атрибутов в GPSS World?

4. Для чего служит блок SAVEVALUE?


Дата добавления: 2018-09-23; просмотров: 196; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!