Операнд | Значение | Результат по умолчанию |
А | Имя (символьное или числовое) освобождаемого устройства | Ошибка |
В то время, как транзакты находятся в модели временно, устройства, используемые в модели, существуют в ней в течение всего периода моделирования.
Реализация задержки во времени. Блок ADVANCE
Этот блок осуществляет задержку продвижения транзакта в течение некоторого интервала времени. Обычно этот интервал задается случайной величиной.
В GPSS возможны следующие варианты распределения времени обслуживания:
1) детерминированное (постоянное);
2) равномерное распределение;
3) другие распределения.
Формат блока:
ADVANCE A[,B]
Операнд | Значение | Значение по умолчанию |
А | Среднее время задержки на обслуживание (число, СЧА) | |
В | Половина поля допуска равномерно распределенного времени задержки (число, СЧА) |
Блоки ADVANCE можно располагать в любых местах программы, а не только между блоками SEIZE и RELEASE.
Сбор статистики об ожидании. Блоки QUEUE, DEPART
|
|
Эти блоки обеспечивают в GPSS возможность автоматического сбора статистических данных, описывающих вынужденное ожидание, которое может происходить время от времени в различных точках модели.
Система моделирования GPSS обеспечивает возможность сбора статистики с помощью такого средства, как регистратор очереди.
При использовании регистратора очереди в тех точках модели, где число ресурсов ограничено, интерпретатор автоматически начинает собирать различную информацию об ожидании с помощью СЧА, а именно:
1) число входов транзактов в очередь;
2) количество транзактов, которые фактически присоединились к очереди и сразу ее покинули, т.е. имели время ожидания равное нулю;
3) максимальная длина очереди;
4) среднее число ожидавших транзактов;
5) среднее время ожидания тех транзактов, которым пришлось ждать.
В модели может быть несколько регистраторов очередей, различающихся именами. Правила присвоения имен те же, что и для устройств. Разработчик вносит регистратор очереди в модель с помощью пары взаимодополняющих блоков:
QUEUE А[,В]
DEPART А[,В]
Операнд | Значение | Результат по умолчанию |
А | Имя очереди, в которую необходимо стать транзакту или которую надо покинуть (числовое или символическое имя, СЧА) | Ошибка |
В | Число единиц, на которое увеличивается (уменьшается) длина очереди (число, СЧА) |
При входе транзакта в блок QUEUE (СТАТЬ В ОЧЕРЕДЬ) выполняются четыре действия:
1) счетчик входов для данной очереди увеличивается на В;
2) длина очереди (счетчик текущего содержимого) для данной очереди увеличивается на В;
3) значение текущей длины очереди хранится в стандартном числовом атрибуте q$<имя очереди>;
|
|
4) транзакт присоединяется к очереди с запоминаем ее имени и значения текущего модельного времени.
Транзакт перестает быть элементом очереди только после того, как он переходит в блок DEPART (ПОКИНУТЬ ОЧЕРЕДЬ) соответствующей очереди. Когда это происходит, интерпретатор выполняет такие операции:
1) длина очереди соответствующей очереди уменьшается на В;
2) используя привязку к значению времени, определяет: является ли время, проведенное транзактом в очереди, нулевым; если да, то такой транзакт по определению является транзактом с нулевым пребыванием в очереди и одновременно изменяется счетчик нулевых вхождений;
3) ликвидируется «привязка» транзакта к очереди.
Переход транзакта в блок, отличный от последующего. Блок TRANSFER
В GPSS блок TRANSFER (ПЕРЕДАТЬ) может быть использован в девяти разных режимах. Рассмотрим три основных.