Краткое практическое руководство по GPSS

         

"Реализация задержки во времени. Блок АDVANСЕ (ЗАДЕРЖАТЬ)"


Предположим, что транзакт только что вошел в блок SEIZЕ, т.е занял прибор. После выполнения соответствующей подпрограммы для данного блока интерпретатор сразу же пытается продвинуть транзакт в следующий последовательный блок модели. Существует мало ограничений на то, каким должен быть этот блок. Это, например, может быть другой блок SEIZЕ, описывающий другой прибор. Так делается, если необходимо, например, выполнить операцию с одновременным занятием и рабочего и какого-либо инструмента для выполнения определенного вида обслуживания. Если рабочий и инструмент моделируются некоторой парой приборов, то транзакт одновременно должен занять оба эти прибора, прежде чем может быть начато обслуживание.

Обычно транзакт занимает прибор для того, чтобы немедленно начать на нем обслуживание.

Было указано, что обслуживание длится некоторый период времени. В течение этого времени транзакт должен прекратить двигаться по модели. Только по истечении времени обслуживания он должен попасть, в блок RЕLЕАSЕ для освобождения прибора.

В GPSS существует блок АDVANCЕ (ЗАДЕРЖАТЬ) для реализации задержки продвижения транзакта в течение некоторого интервала времени. Обычно этот интервал задается случайной переменной. Опыт показывает, что время обслуживания обычно меняется от одного обслуживания к другому.

Информация, необходимая для описания соответствующего времени обслуживания и его распределения, задается операндами А и В блока АDVANCЕ.

Возможные варианты распределения времени обслуживания делятся на две категории: равномерное распределение интервала обслуживания; прочие распределения интервалов обслуживания.

Как и при использовании блока GENERАТЕ, особо рассматривается равномерное распределение. Применение более сложных видов распределения требует использования функций. Поскольку описание функций отложено до следующей главы, здесь мы будем рассматривать только равномерное распределение.

На рис. 6.1 показан блок АDVANСЕ вместе с операндами А и В. Как и ранее, операнд А используют для определения среднего времени, которое транзакт, входящий в блок, проведет в нем.
Операнд В используют для указания половины поля допуска.


Рис. 6.1 Блок ADVANCE (ЗАДЕРЖАТЬ) операндами А и В:
ОперандЗначениеЗначение или результат по умолчанию
АЗадержка на время обслуживанияНоль
ВПоловина поля допуска равномерно распределенного интервала времени задержкиНоль
На рис.6.2 показан блок АDVANСЕ со значениями операндов А и В, равными 30 и 5 соответственно. Для каждого транзакта, входящего в этот блок, возможные значения интервалов времени находятся в пределах 25 - 35 включительно. Предположим, что транзакт входит в блок в момент времени, равный 134, а разыгранным значением из распределении 30 ± 5 является 31. Тогда транзакт будет оставаться в этом блоке до момента времени, равного 134 + 31, или 165. В этот момент интерпретатор попытается продвинуть его в следующий блок модели.Блок АDVANCE никогда не препятствует входу транзакта.Любое число транзактов может находиться в этом блоке одновременно. Когда транзакт попадает в такой блок, выполняется соответствующая подпрограмма и вычисляется время пребывания транзакта в нем. Вновь прибывший транзакт никак не влияет на уже находящийся в блоке транзакт.

Рис. 6.2.
Главная Содержание главы 1


Содержание раздела