В GPSS обслуживающие элементы моделируются c помощью одноканальных (ОКУ), многоканальных (МКУ) устройств и логических ключей. В реальных системах аналогами обслуживающих элементов могут быть люди, механизмы, линии связи и другие объекты. [4, 5]
Каждое ОКУ в любой момент времени может обслуживать только один транзакт. Если в процессе обслуживания одного транзакта другой транзакт пытается войти в устройство, то он должен либо подождать своей очереди обслуживания, либо направиться в другой блок, либо, если вновь пришедший транзакт имеет больший приоритет, устройство прерывает текущее обслуживание и начинает обслуживать новый транзакт.
ОКУ (прибор) реализуется блоками SEIZE (занять) и RELEASE (освободить).
Формат записи блока SEIZE следующий:
SEIZE A,
где А (обязательный операнд) – имя (символьное или числовое) занимаемого устройства.
Если ОКУ присваивают числовые имена, числа должны быть положительными целыми. Наибольшим разрешенным номером является максимальное число приборов, допустимое в модели. Это число зависит от объема памяти, доступной этой модели. Если приборам присваивают символические имена, то для образования этих имен используют те же правила, что и для составлений символических имен блоков (см. с. 9).
|
|
Если в текущий момент времени устройство занято, то транзакт не может войти в блок SEIZE и должен ожидать своей очереди. Если устройство свободно, то транзакт входит в блок SEIZE. Вход транзакта в блок вызывает выполнение подпрограммы обработки этого блока. Состояние устройства меняется со «свободно» на «занято». Допускается вложенность устройств.
Блок RELEASE изменяет состояние ранее занятого устройства c «занято» на «свободно». Блок RELEASE имеет следующий формат записи:
RELEASE А,
где А (обязательный операнд) – имя (символьное или числовое) освобождаемого устройства.
Статистическая информация о работе устройства при моделировании собирается автоматически и представлена в файле стандартной статистики (прил. 2).