Блоки для сбора статистических данных

Два последних примера на рис. 5 и 6 вместе с сегментом таймера представляют собой законченные модели одноканальной и многоканальной СМО. Однако в результате прогона той или иной модели можно определить только одну содержательную характеристику соответствующей СМО – ее загрузку. В то же время цель моделирования состоит, как правило, в анализе всей совокупности характеристик функционирования системы: длины очереди, времени ожидания, числа заявок в системе, времени пребывания и т.д. В приведенных же примерах, например, очередь транзактов образуется в блоке ADVANCE 0,0 и в списке ТС, которые недоступны пользователю и соответственно нет возможности статистической обработки данных об ожидании транзактов.

Для регистрации статистической информации о процессах обслуживания транзактов в модели должны присутствовать статистические объекты: очереди или таблицы. Объекты типа очередь используются для определения средних значений характеристик функционирования системы, а таблицы – для сбора и обработки данных о выборочных распределениях исследуемых характеристик. В данной работе объекты типа таблицы не рассматриваются.

Объекты типа очередь создаются в модели путем использования безотказных взаимодополняющих блоков QUEUE (стать в очередь) и DEPART (уйти из очереди), имеющих следующий формат:

имя QUEUE A,B

имя DEPART A,B

Обязательный в обоих блоках операнд A задает номер или имя очереди, а операнд B – число единиц, на которое текущее содержимое очереди увеличивается при входе транзакта в блок QUEUE или уменьшается при его входе в блок DEPART. Как правило, операнд В не задается и в этом случае его значение принимается равным 1.

Следует особо отметить, что блоки QUEUE и DEPART используются исключительно для сбора и обработки статистической информации, а не для моделирования процессов ожидания заявок в СМО, и понятие “очередь” в GPSS/PC не соответствует понятию “очередь” в терминологии СМО.

При входе транзакта в блок QUEUE интерпретатор выполняет следующие действия:

1) счетчик входов очереди увеличивает на В;

2) текущее содержимое очереди увеличивает на В;

3) записывает момент входа транзакта в очередь в один из параметров его, т.е. транзакт “запоминает” момент своего входа в очередь;

4) “привязывает” транзакт к очереди указанием ее имени в другом его параметре.

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

1) счетчик входов очереди увеличивает на В;

2) текущее содержимое очереди уменьшает на В;

3) определяет время пребывания транзакта в очереди, как разность между текущим моментом модельного времени и моментом его входа в блок QUEUE; если это время равно 0, то счетчик “нулевых” входов очереди увеличивает на В;

4) ликвидирует “привязку” транзакта к данной очереди.

Блоками QUEUE и DEPART в ходе моделирования собирается статистическая информация для определения следующих характеристик объекта типа очередь (см. Приложение II):

1) максимальное количество транзактов в очереди;

2) общее число и число “нулевых” входов транзактов в очередь;

3) среднее количество транзактов в очереди;

4) средние значения времен пребывания транзактов в очереди с учетом “нулевых” входов и без их учета и т.д.

С объектом типа очередь связаны следующие СЧА: Q – текущая длина очереди; QM – максимальная длина очереди; QA – целая часть среднего содержимого очереди; QC – общее количество транзактов, вошедших в очередь; QZ – количество транзактов, прошедших очередь с нулевым временем пребывания (число “нулевых” входов); QT – целая часть среднего времени пребывания транзактов в очереди с учетом “нулевых” входов; QX – целая часть среднего времени пребывания без учета “нулевых” входов.

Для сбора статистики о транзактах, заблокированных перед каким-либо блоком модели, блоки QUEUE и DEPART помещаются соответственно перед и после этого блока. Дополним модель одноканальной СМО на рис. 5 блоками QUEUE и DEPART (рис. 7а).

Очевидно, что уже нет необходимости в блоке ADVANCE 0,0, поскольку теперь уже блок QUEUE, будучи безотказным, обеспечить беспрепятственный выход транзактов из блока GENERATE. Транзакты, заблокированные перед блоком SEIZE из-за занятости устройства с именем PRIBOR, находясь в блоке QUEUE, вносят свой вклад в статистику об ожидании, накапливаемую в объекте типа очередь с именем OCH. При освобождении устройства первый из заблокированных транзактов войдет в блок SEIZE и в тот же момент времени – в блок DEPART и перестает быть элементом соответствующей очереди. Таким образом, только после занятия устройства транзакт покидает очередь.


GENERATE 70,20

QUEUE OCH

SEIZE PRIBOR

DEPART OCH

ADVANCE 50,30

RELEASE PRIBOR

TERMINATE

а)

Рис. 7.

GENERATE 70,20

QUEUE SYSTEM

QUEUE OCH

SEIZE PRIBOR

DEPART OCH

ADVANCE 50,30

RELEASE PRIBOR

DEPART SYSTEM

TERMINATE

б)


При необходимости сбора статистики еще о пребывании транзактов в модели в целом, то нужно определить дополнительный объект типа очередь, например, с именем SYSTEM и его блок QUEUE нужно поместить в точке входа транзактов в модель (после блока GENERATE), а блок DEPART – в точке выхода (перед блоком TERMINATE, рис. 7б). Взаиморасположение двух блоков QUEUE на рис. 7б не имеет значения.


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



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