Сбор статистики об ожидании. Блоки queue, depart. 


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



ЗНАЕТЕ ЛИ ВЫ?

Сбор статистики об ожидании. Блоки queue, depart.



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

Система моделирования GPSS обеспечивает возможность сбора статистики c помощью такого средства, как регистратор очереди.

При использовании регистратора очереди в тех точках модели, где число ресурсов ограничено, интерпретатор автоматически начинает собирать различную информацию об ожидании c помощью СЧА, А именно:

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

2) количество транзактов, которые фактически присоединились к очереди и сразу ее покинули, т.е. имели время ожидания равное нулю;

3) максимальная длина очереди;

4) среднее число ожидавших транзактов;

5) среднее время ожидания тех транзактов, которым пришлось ждать.

В модели может быть несколько регистраторов очередей, разли­чающихся именами. Правила присвоения имен те же, что и для уст­ройств. Разработчик вносит регистратор очереди в модель c помощью пары взаимодополняющих блоков:

Таблица 4.7

Операнд Значение Результат по умолчанию
А Имя очереди, в которую необходимо стать транзакту или которую надо поки­нуть (числовое или символическое имя, CЧА)_ Ошибка
В Число единиц, на которое увеличивается (уменьшается) длина очереди (число, СЧА) 1

 

При входе транзакта в блок QUEUE (СТАТЬ В ОЧЕРЕДЬ) вы­полняются четыре действия:

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

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

3) значение текущей длины очереди хранится в стандартном чи­словом атрибуте Q $<имя очереди>;

4) транзакт присоединяется к очереди c запоминаем ее имени и значения текущего модельного времени.

Транзакт перестает быть элементом очереди только после то­го, как он переходит в блок DEPART (ПОКИНУТЬ ОЧЕРЕДЬ) соответствующей очереди. Когда это происходит, интерпретатор выполняет такие операции:

1) длина очереди соответствующей очереди уменьшается на В;

2) используя привязку к значению времени, определяет: являет­ся ли время, проведенное транзактом в очереди, нулевым; если да, то такой транзакт по определению является транзактом c нулевым пребыванием в очереди и одновременно изменяется счетчик нулевых вхождении,

3) ликвидируется «привязка» транзакта к очереди.

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

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

2. Блок QUEUE не поддерживает список членов очереди, он только добавляет единицы к длине очереди.

3. Использование регистратора очереди необязательно. C eгo помощью интерпретатор собирает лишь статистику об ожидании. Если же регистратор не используется, то статистика не собирается, но везде, где должна возникать очередь, она возникает. Ожидание является следствием состояния устройства, А не следствием использования регистратора. Если в планы не входит обработка статистических данных об очередях, то лучше не собирать статистику – это сэконо­мит время, расходуемое на моделирование.

4. Один и тот же транзакт может одновременно увеличить дли­ну нескольких очередей.

5. При выходе транзакта из очереди через блок DEPART транзакту не обязательно уменьшать длину очереди на ту же величину, на которую он увеличил ее при входе в блок QUEUE. Но в итоге число входов в очередь должно равняться числу выходов из нее.


 

Вопрос 36

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

В GPSS блок TRANSFER (ПЕРЕДАТЬ) может быть использо­ван в девяти разных режимах. Рассмотрим три основных.

Блок TRANSFER в режиме безусловной передачи. Его фор­мат:

TRANSFER  , B

Таблица 4.8

Операнд    Значение Результат по умолчанию
А Не используется
В позиция блока, в которую должен перейти транзакт Ошибка

Позиция блока – это номер или метка блока. Так как операнд А не используется, то перед операндом В должна стоять запятая. В ре­жиме безусловной передачи блок TRANSFER не может отказывать транзакту во входе. Кстати, если транзакт входит в блок, то он сразу же пытается войти в блок В.

Транслятор GPSS/PC не улавливает пропущенную запятую вместо операнда A (например, TRANSFER LAMD). На этапе трансля­ции метке LAMD присваивается числовое значение, и транзакт в этом случае направляется в блок c соответствующем номером.

Статистический режим. В этом режиме осуществляется пере­дача транзакта в один из двух блоков случайным образом. Формат блока:

TRANSFER  A,[B],C

Таблица 4.9

Опе­ранд Значение Результат но умол­чанию
А Вероятность передачи транзакта в блок С, задаваемая в долях тысячи Ошибка
В Позиция блока, в которую должен пе­рейти транзакт (с вероятностью 1 – А) Следующий по по­рядку блок
С Позиция блока, в которую должен пе­рейти транзакт (с вероятностью А) Ошибка

 

При задании вероятности (операнд А) используется не более трех цифр, первый символ записи частоты «.» (десятичная точка), если используется действительное число, которое должно быть в пределах от 0 до 1,0 (например, 0,235). Если операнд – положительное целое число, то вероятность интер­претируется в долях тысячи.

Пример 4.6

C частотой 0,667 транзакт переходит в блок c меткой LPRIB 1 и c частотой 0,333 – в блок c меткой LPRIB 2.

Режим BOTH. Если в операнде А стоит зарезервированное сло­во BOTH, то блок TRANSFER работает в режиме BOTH.

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

Пример 4.8

Транзакт сначала пытается перейти в блок c меткой LL 1. Если устройство PRI 1 занято, транзакт пытается войти в блок c меткой LL 2. Если транзакт не может войти и в этот блок (устройство PRI 2 также занято), он остается в списке текущих событий и повторяет эти попытки при каждом просмотре списка до тех пор, пока не выйдет из блока TRANSFER.

1. Не путайте метку блока SEIZE c именем соответствующего этому блоку устройства.

2. Если бы меткой LL 1 был помечен блок QUEUE, А не блок SEIZE, то все транзакты были бы направлены по метке LL 1, так как в отличие от блока SEIZE блок QUEUE всегда готов принять транзакты.


 

Вопрос 37



Поделиться:


Последнее изменение этой страницы: 2021-01-08; просмотров: 213; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.221.187.207 (0.008 с.)