МОДЕЛИРОВАНИЕ ОДНОКАНАЛЬНЫХ СИСТЕМ МАССОВОГО ОБСЛУЖИВАНИЯ.
Имитация обслуживания.
Обслуживающий элемент - прибор, характеризуется двумя основными свойствами:
Каждый прибор в любой момент времени может обслуживать только одно требование.
Когда на прибор поступает требование в модели, надо пропустить время, необходимое для его обслуживания. Такое время называется временем обслуживания.
В модели может быть много приборов, поэтому приборам должны быть присвоены различные имена (идентификаторы). Имена могут быть либо числовыми, либо символьными. Числовой идентификатор должен быть положительным целым числом, максимальное значение которого зависит от объема внутренней памяти (ОЗУ) ЭВМ. При объеме 256 Mb максимальное значение 10000. Символьное имя должно начинаться на букву и может содержать до 256 символов или цифр. Допускается символ "_" (подчеркивание).
При использовании прибора необходимо выполнить следующие шаги:
Если необходимо, то ожидаем своей очереди.
Когда подходит очередь, занимаем прибор. Это событие происходит в некоторый момент модельного времени.
Прибор остается в состоянии занятости, пока не закончится обслуживание. Для обслуживания требуется некоторый интервал времени.
По окончании обслуживания прибор должен быть освобожден. Освобождение прибора происходит в некоторый момент модельного времени.
Полная реализация этих шагов осуществляется последовательным прохождением транзакта трех блоков: SEIZE (ЗАНЯТЬ), ADVANCE (ЗАДЕРЖАТЬ), RELEASE (ОСВОБОДИТЬ). Рассмотрим работу каждого из блоков.
Блок SEIZE.
Графическое представление блока имеет вид:
в операторной форме:
SEIZE A
A - имя (символическое или числовое) занимаемого прибора. Блок обладает следующими свойствами:
Если прибор уже используют (прибор занят), то транзакт не может войти в блок и помещается в очередь.
Если прибор не используют (прибор свободен), то транзакт может войти в блок. При этом, выполняется подпрограмма обработки блока изменяющая статус прибора из "незанято" в "занято".
Блок RELEASE.
Графическое представление блока имеет вид:
в операторной форме:
RELEASE A
A - имя (символическое или числовое) освобождаемого прибора. Блок обладает следующими свойствами:
Блок RELEASE никогда не запрещает вход транзакта.
Блоки SIEZE и RELEASE дополняют друг друга.
Блок ADVANCE.
Графическое представление блока имеет вид:
в операторной форме:
ADVANCE A,B
A - математическое ожидание интервала модельного времени задержки транзакта в блоке;
B - Половина поля допуска (половина размаха) равномерно распределенного интервала модельного времени.
Например:
в операторной форме
ADVANCE 12,3
означает, что транзакт будет задержан в блоке с равными вероятностями на 9, 10, 11, 12, 13, 14 и 15 единиц модельного времени. Обратите внимание: обслуживание рассматривается как временная задержка транзакта, а не как набор каких-либо специфических операций обработки.
Таким образом, обслуживание одноканального прибора в GPSS реализуется последовательностью блоков SEIZE → ADVANCE → RELEASE. Например:
в операторной форме:
SEIZE JOB
ADVANCE 12,3
RELEASE JOB
При освобождении прибора (проверяет SEIZE) транзакт входит в блок ADVANCE и после реализации задержки поступает в блок RELEASE, который изменяет статус прибора JOB.
Полностью сегмент модели реализующий прибытие заявки, помещение ее в очередь, поступление заявки на обслуживание, обслуживание, освобождение прибора и удаление заявки из системы имеет вид:
или в операторной форме:
GENERATE 8,3
SEIZE JOB
ADVANCED 12,3
RELEASE JOB
TERMINATE
Обращаем Ваше внимание - это только сегмент модели. Другой обязательный сегмент - таймер модельного времени, будет рассмотрен в следующем параграфе.