Курсовая работа: Разработка средств моделирования систем
В разрабатываемой модели будем использовать только оператор START.
Формат оператора:START A, где А – значение счетчика завершения (количество заявок, которое должно пройти через сеть до завершения моделирования).
2.2 Датчики или генераторы транзактов
Формат оператора:GENERATE A, B, C, D, E,где А – определяет время, через которое появляется новый транзакт,В – модификатор времени, через которое появляется новый транзакт.
Если В не вызов функции, то В задает разбежку генерируемых по равномерному закону значений.
С – время задержки первого транзакта.
D – предельное количество генерируемых заявок (по умолчанию бесконечность).
Е – приоритет всех генерируемых транзактов.
Вместо параметра А так же могут задаваться специальные встроенные функции GPSS.
2.3 Для имитации обслуживания в устройстве используем оператор ADVANCE.
Формат оператора:ADVANCE A, В, гдеА – среднее время обслуживания заявки на устройстве, В – разбежка среднего времени обслуживания при равномерном обслуживании в устройстве (если отсутствует, то используется дискретный закон) .
2.4 Операторы управления маршрутными узлами
В программе оператор TRANSFER:TRANSFER А, В, где В – метка,А – вероятность перехода по метке В.
2.5 Операторы управления объектами сбора статистики
QUEUE A – войти в очередь А.
DEPART A – выйти из очереди А.
При прохождении транзакты не задерживаются. Эти операторы не влияют на логику работы модели. Любой транзакт может войти во сколько угодно очередей без ограничений.
2.6 TERMINATE (Уничтожить, терминировать)
Служит для удаления транзактов из модели по завершении их обработки. Производит подсчет выведенных из модели транзактов, уменьшая величину специального счетчика - счетчика завершений.
Формат: <TERMINATE [A]>, где: А - величина, на которую будет уменьшен счетчик завершений.
2.7 SEIZE (завладеть), RELEASE (освободить)
Оператор SEIZE, является парным с оператором RELEASE, использование их по одиночке не допустимо. Имена, записываемые в операнде А пары должны быть идентичны. Оператор служит приглашением ко входу в одно из устройств модели. Транзакт, подойдя к блоку SEIZE, пытается занять устройство, названное в операторе. Если устройство занято, транзакт ожидает освобождения устройства перед этим оператором. Перед оператором SEIZE может находиться любое количество транзактов. При попадании первого транзакта на обслуживание в устройство, происходит переключение, осуществляемое программой, запрещающее вход в устройство до окончания обслуживания.
Формат:< SEIZE А>,где А - имя (или номер) устройства.
Функция оператора RELEASE - моделировать освобождение устройства. Пройдя обслуживание в операторе ADVANCE, и исполнив, оператор RELEASE, транзакт переключает поименованное в операторе устройство из положения «занято» в положение «свободно» и разрешает вход в ADVANCE, первому из транзактов, ожидающих перед оператором SEIZE .
Формат: <RELEASE А>,где А - имя (или номер) устройства.
2.8 ENTER ( войти), LEAVE (отпустить)
Эта пара операторов выполняет те же функции, что и SEIZE и RELEASE, но не для устройств, а для STORAGE - «хранилищ», то есть для ресурсов, к которым может обращаться более одного транзакта. Такие объекты могут быть полезны при моделировании, например, распараллеленного процесса: обработки потока деталей на нескольких одинаковых станках, выхода публики из театра через несколько дверей и т.д. Эти «хранилища», или устройства параллельной обработки, должны быть предварительно описаны в программе при помощи оператора описания STORAGE (см. ниже). По логике своей работы связки операторов SEIZE – ADVANCE – RELEASE; ENTER- ADVANCE- LEAVE; абсолютно одинаковы, но употребляются для разных объектов.
2.9 FUNCTION ( функционировать )
Используется для определения характера функции, связывающей независимую переменную с рядом зависимых величин. Эта связь может иметь непрерывный или дискретный вид. Кроме того функция может быть представлена в символьном виде, когда значение функции вычисляется из выражения, приводимого в списке. Формат FUNCTION имеет вид: