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


Использование операнда В в блоках QUEUE и DЕРАRТ.


В блоках QUEUE и DEРАRТ существует возможность использования операнда В. На рис. 8.3 повторен рис. 8.1, но с использованием операнда В. Операнд В указывает на какую величину должен быть модифицирован счетчик содержимого очереди. По умолчанию для этого операнда подразумевается значение 1.


Рис.8.3. Блоки QUEUE и DEPART с операндами А и В:

Блоки QUEUE и DEPART с операндами А и В:
ОперандЗначениеЗначение или результат по умолчанию
АИмя (символическое или числовое) очередиОшибка
ВЧисло элементов, на которое должно измениться значение счетчика содеожимого очередиЕденица

На рис.8.2 именно это значение и используется. Лучше всего проследить влияние операнда В при рассмотрении поведения интерпретатора во время выполнения подпрограмм блоков QUEUE и DЕРАRТ. При выполнении подпрограммы QUEUE происходит следующее:

  1. Увеличивается значение счетчика входов сооветствующей очереди на число, равное значению операнда В.
  2. Увеличивается значение счетчика содержимого очереди на число, равное значению операнда В.
  3. Транзакту приписывается имя очереди.
  4. Транзакту приписывается текущее значение модельного времени.
Пп. 3 и 4 были пояснены ранее. Пп. 1 и 2 показывают влияние использования операнда В на значение содержимого очереди. Очевидно, что если в блоке QUEUE использован операнд В, отличный от 1, то значение счетчика входов не будет равно числу транзактов, вошедших в этот блок. Подобным образом, содержимое очереди не будет совпадать с числом транзактов, которые привязаны к данной очереди. Например, когда транзакт переходит в блок "QUEUE LINE,2", то и счетчик входов и счетчик содержимого очереди, названной LINЕ, увеличивается на 2, но суммарное число транзактов, присоединившихся к очереди, увеличивается только на 1,и число транзактов, находящихся в очереди, также увеличивается на 1.

Рассмотрим теперь выполнение подпрограммы DЕРАRТ.

  1. Значение счетчика содержимого очереди уменьшается на число, определяемое операндом В.
  2. Используя значение времени, приписанное транзакту при вхождении в блок QUEUE, определяют, является ли данный транзакт транзактом с нулевым вхождением.
    Если транзакт вызвал нулевое вхождение в очередь, то счетчик нулевых вхождений увеличивается на число, определяемое операндом В блока DЕРАRТ.
  3. Связь транзакта, показывающая принадлежность к данной очереди, разрывается.
Для иллюстрации п. 2 предположим, что транзакт входит в блок "QUEUE QUEUE,5" и что в то же значение модельного времени он проходит в блок "DЕРАRТ QUEUE,5". По определению транзакт вызывает нулевое вхождение в очередь. Следует помнить, что интерпретатор обрабатывает элементы информации очереди в единицах содержимого, а не в транзактах. Следовательно, в этом примере число нулевых вхождений в очередь увеличится на 5, а не на 1. В операндах В блоков QUEUE и DЕРАRТ значения, отличные от 1, употребляются в специальном случае. Очевидно, что собираемые статистические данные должны соответствующим образом быть интерпретирозаны. При печатании таких данных, как число входов, максимальное и среднее содержимое, текущее содержимое, а также число нулевых вхождений делается ссылка не на число транзактов, а на число элементов содержимого. В заключение скажем, что существует однозначное точное соответствие между счетчиком содержимого очереди и числом транзактов, рассматриваемых как элементы очереди только в том случае, если операнд В блоков QUEUE и DЕРАRТ равен 1 (заданный в явном виде или по умолчанию). Необходимость использования операнда В возникает крайне редко, поэтому почти всегда существует точное однозначное соответствие. В этой книге нет случаев возникновения необходимости использования операнда В в блоках QUEUE и DЕРАRТ.

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