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

         

Основные методы использования блоков ЕNTER и LEAVE


Использование многоканального устройства для моделирования одного из параллельно работающих приборов аналогично использованию одиночного прибора. Элементом, который занимает и использует устройство, является транзакт. При этом события происходят в следующем хронологическом порядке:
  1. транзакт ожидает своей очереди, если это необходимо;
  2. транзакт занимает устройство;
  3. устройство осчществляет обслуживание в течение некоторого интервала времени;
  4. транзакт освобождает устройство.

Как и в случае с прибором, разработчик использует многоканальные устройства в модели, применяя пары дополняющих друг друга блоков. Эти блоки моделируют выполнение описанных выше событий 2 и 4. Когда транзакт входит в первый из этих блоков, моделируется событие "занятие одного из группы параллельно работающих приборов". Подобным же образом, когда транзакт входит во второй из этих блоков, моделируется выполнение события "освобождения параллельно работающего прибора". Блоками, соответствующими состояниям "занято" и "освобождено", являются ЕNТЕR (ВОЙТИ) и LEAVE (ВЫЙТИ). Эти два блока вместе с операндом А изображены на рис. 22.1.


Рис.22.1. Блоки ENTER(ВОЙТИ ) и LEAVE(ВЫЙТИ)с операндом А :

Блоки ENTER (ВОЙТИ) и LEAVE (ВЫЙТИ) с операндом А:
Операнд Значение Значение или результат по умолчанию
А Имя (символическое или числовое) многоканального устройства Ошибка

Операнд А в блоках ЕNТЕR и LEAVE используется для указания имени соответствующего многоканального устройства. Когда транзакт входит в блок ЕNТЕR, интерпретатор выполняет следующие действия:

  1. "счетчик входов" многоканального устройства увеличивается на единицу;
  2. "текущее содержимое" многоканального устройства увеличивается на единицу;
  3. "доступная емкость" многоканального устройства уменьшается на единицу.
Подобным же образом, когда транзакт входит в блок LEAVE, интерпретатор выполняет следующие действия:
  1. "текущее содержимое" многоканального устройства уменьшается на единицу;
  2. "доступная емкость" многоканального устройства увеличивается на единицу.
В конце моделирования интерпретатор автоматически распечатывает такую статистику о многоканальных устройствах, как "счетчик входов", "текущее содержимое" и "максимальное содержимое".
Также распечатывается значение "среднего времени пребывания" (т. е. средний интервал времени между различными занятиями и освобождениями). Рассмотрим понятие "среднее время пребывания" более детально. Интерпретатор рассчитывает это значение с использованием полного числа единиц времени, в течение которого различные параллельно работающие приборы находятся в состоянии "занято". Существует только одно такое значение. Оно считается по всем приборам, моделируемым в этом многоканальном устройстве. Значение автоматически корректируется, когда это необходимо. Следовательно, в любое время интерпретатор может вычислить среднее время пребывания делением полного времени на "счетчик входов". Преимуществом такого подхода является учет всех приборов, в том числе и тех, которые еще находятся в занятом состоянии в момент выполнения расчета. Недостатком такого подхода является некоторое занижение статистики, поскольку часть приборов еще некоторое время должна быть занята, а это не учитывается при расчете. Для каждого конкретного транзакта время нахождения в многоканальном устройстве (т. е. между моментами времени, когда он входит в блоки ЕNТЕR и LЕАVЕ) является интервалом, в течение которого одно из параллельно работающих устройств находится в занятом состоянии. Это означает, что среднее время пребывания идентично среднему времени нахождения транзакта в многоканальном устройстве. Вот почему эта статистика об использовании многоканального устройства распечатывается под названием АVЕRАGЕ ТIМЕ/ ТRАN (СРЕДНЕЕ ВРЕМЯ/ТРАН). Очевидна аналогия между методом расчета интерпретатором статистики АVЕRАGЕ ТIМЕ/ТRАNS для очереди и АVERAGE ТIМЕ/ТRANS для многоканального устройства. Также должно быть ясно, почему интерпретатор не осуществляет привязку транзакта к имени многоканального устройства или к значению модельного времени при прохождении транзактом блока ЕNТЕR. Для многоканальных устройств расчет значения "нулевых входов" не представляет интереса.Это означает, что привязки не нужны, и, следовательно, не существует ограничений на то, сколько различных многоканальных устройств будет занято транзактом одновременно. Блоки ЕNТЕR и LEAVE относятся к таким блокам, после обработки которых возобновляется просмотр цепи текущих событий от начала. Предположим, что перед тем, как остановиться в каком-либо блоке, транзакт прошел один из блоков ЕNТЕR и(или) LEAVE. В этом случае вместо того, чтобы перейти к обработке следующего по списку транзакта в цепи текущих событий, интерпретатор начинает заново просматривать цепь текущих событий.
Содержание раздела