Использование операнда В в блоках QUEUE и DЕРАRТ.
В блоках
QUEUE и
DEРАRТ существует возможность использования операнда В. На рис. 8.3 повторен рис. 8.1, но с использованием операнда В. Операнд В указывает на какую величину должен быть модифицирован счетчик содержимого очереди. По умолчанию для этого операнда подразумевается значение 1.
Рис.8.3. Блоки
QUEUE и
DEPART с операндами А и В:
Блоки QUEUE и DEPART с операндами А и В:
Операнд | Значение | Значение или результат по умолчанию |
А | Имя (символическое или числовое) очереди | Ошибка |
В | Число элементов, на которое должно измениться значение счетчика содеожимого очереди | Еденица |
На рис.8.2 именно это значение и используется. Лучше всего проследить влияние операнда В при рассмотрении поведения интерпретатора во время выполнения подпрограмм блоков QUEUE и DЕРАRТ. При выполнении подпрограммы QUEUE происходит следующее:
- Увеличивается значение счетчика входов сооветствующей очереди на число, равное значению операнда В.
- Увеличивается значение счетчика содержимого очереди на число, равное значению операнда В.
- Транзакту приписывается имя очереди.
- Транзакту приписывается текущее значение модельного времени.
Пп. 3 и 4 были пояснены ранее. Пп. 1 и 2 показывают влияние использования операнда В на значение содержимого очереди. Очевидно, что если в блоке
QUEUE использован операнд В, отличный от 1, то значение счетчика входов не будет равно числу транзактов, вошедших в этот блок. Подобным образом, содержимое очереди не будет совпадать с числом транзактов, которые привязаны к данной очереди. Например, когда транзакт переходит в блок
"QUEUE LINE,2", то и счетчик входов и счетчик содержимого очереди, названной
LINЕ, увеличивается на 2, но суммарное число транзактов, присоединившихся к очереди, увеличивается только на 1,и число транзактов, находящихся в очереди, также увеличивается на 1.
Рассмотрим теперь выполнение подпрограммы DЕРАRТ.
- Значение счетчика содержимого очереди уменьшается на число, определяемое операндом В.
- Используя значение времени, приписанное транзакту при вхождении в блок QUEUE, определяют, является ли данный транзакт транзактом с нулевым вхождением.
Если транзакт вызвал нулевое вхождение в очередь, то счетчик нулевых вхождений увеличивается на число, определяемое операндом В блока DЕРАRТ. - Связь транзакта, показывающая принадлежность к данной очереди, разрывается.
Для иллюстрации п. 2 предположим, что транзакт входит в блок
"QUEUE QUEUE,5"
и что в то же значение модельного времени он проходит в блок
"DЕРАRТ QUEUE,5". По определению транзакт вызывает нулевое вхождение в очередь. Следует помнить, что интерпретатор обрабатывает элементы информации очереди в единицах содержимого, а не в транзактах. Следовательно, в этом примере число нулевых вхождений в очередь увеличится на 5, а не на 1. В операндах В блоков
QUEUE и
DЕРАRТ
значения, отличные от 1, употребляются в специальном случае. Очевидно, что собираемые статистические данные должны соответствующим образом быть интерпретирозаны. При печатании таких данных, как число входов, максимальное и среднее содержимое, текущее содержимое, а также число нулевых вхождений делается ссылка не на число транзактов, а на число элементов содержимого. В заключение скажем, что существует однозначное точное соответствие между счетчиком содержимого очереди и числом транзактов, рассматриваемых как элементы очереди только в том случае, если операнд В блоков
QUEUE и
DЕРАRТ равен 1 (заданный в явном виде или по умолчанию). Необходимость использования операнда В возникает крайне редко, поэтому почти всегда существует точное однозначное соответствие. В этой книге нет случаев возникновения необходимости использования операнда В в блоках
QUEUE и
DЕРАRТ.
Содержание раздела