Для реализации задержек во времени в GPSS применяется блок ADVANCE (продвигать). Этот блок продвигает часы модельного времени на некоторое значение, но фактически он осуществляет задержку продвижения транзакта в течение некоторого интервала времени. Обычно этот интервал задается случайной величиной. В GPSS возможны следующие варианты распределения времени обслуживания: детерминированное (постоянное); равномерное распределение; другие распределения.
Как и при использовании блока GENERATE рассмотрим равномерное распределение случайных величин.
Формат записи блока ADVANCE:
ADVANCE A[,B],
где А – среднее время задержки на обслуживание (число, СЧА, значение по умолчанию – 0);
В – половина поля допуска равномерно распределенного времени задержки (число, СЧА, значение по умолчанию – 0).
В этом блоке одновременно может находиться любое количество транзактов. Вновь прибывший транзакт не влияет на транзакт, который уже находится в этом блоке.
Блоки ADVANCE можно располагать в любых местах программы.
П р и м е р ы использования блока ADVANCE:
1. ADVANCE 30,5 – время задержки транзакта в этом блоке – случайная величина, равномерно распределенная на отрезке [25, 35];
2. SEIZE unit1
ADVANCE 21,4
RELEASE unit1
Транзакт займет устройство c именем unit1, задержится там на (21 ± 4) единицы времени и затем освободит его.