КРАТКОЕ ОПИСАНИЕ ЯЗЫКА GPSS
Язык GPSS(General Purpose Simulation System), ориентированный на процессы, реализован в ряде программ имитационного моделирования.
Модель (программа) на языке GPSS представляет собой последовательность операторов (их называют блоками), отображающих события, происходящие в СМО при перемещениях транзактов.
Поскольку в интерпретаторах GPSS реализуется событийный метод, и в СМО может быть одновременно много транзактов, то интерпретатор будет попеременно исполнять разные фрагменты программы, имитируя продвижения транзактов в текущий момент времени до их задержки в некоторых устройствах или очередях.
Операторы GPSS имеют следующий формат:
<метка> <имяonepamopa> <пoлe операндов>[<комментарий>]
причем метка может занимать позиции, начиная со второй, имя оператора – с восьмой, поле операндов – с девятнадцатой, комментарий обязательно отделяется от поля операндов пробелом.
Поле операндов может быть пусто, иметь один или более операндов, обозначаемых ниже при описании блоков символами А, В, С,...
Операндами могут быть идентификаторы устройств, накопителей, служебные слова и стандартные числовые атрибуты (СЧА).
К СЧА относятся величины, часто встречающиеся в разных задачах. Это, например, АС1 — текущее время, FN — функция, Р — параметр транзакта (каждый транзакт может иметь не более L параметров, обычно L=12), К — константа, RN1 — случайная величина, равномерно распределенная в диапазоне [0, 1], S — объем занятой памяти в накопителе, F — состояние устройства, Q — текущая длина очереди и др.
При этом ссылки на идентификаторы записываются в виде
<СЧА>$<идентификатор>
например, Q$ORD означает очередь ORD
или FN$COS — ссылка на функцию COS.
Оператор GENERATE
Источники заявокобычно описываются блоком
GENERATE А,В,C,D,Е
Здесь А и В служат для задания интервалов между появлениями заявок, при этом можно использовать один из следующих вариантов: 1) интервал— равномерно распределенная в диапазоне [А – В, А+В] случайная величина; 2) интервал — значение функции, указанной в В, умноженной на А; С — задержка в выработке первого транзакта; D — число вырабатываемых источником заявок; Е — приоритет заявок. Если D пусто, то число вырабатываемых транзактов неограничено.
GENERATE 6,FN$EXP,,15
Этот оператор описывает источник, который вырабатывает 15 транзактов с интервалами, равными произведению числа 6 и значения функции ЕХР.
GENERATE 36,12
Здесь число транзактов не ограничено, интервалы между транзактами — случайные числа в диапазоне [24, 48].
Рис. 8.1. Обозначение блока GENERATE
Оператор FUNCTION
Функции, на которые имеются ссылки в операторах, должны быть описаны с помощью блока следующего типа
М FUNCTION A,В
За блоком следует строка, начинающаяся с первой позиции
Х1,У1 /Х2,У2 /Х3,Y3/.../Хn,Уn
где метка М – идентификатор функции; А – аргумент функции; В – тип функции; Хi и Yi - координаты узловых точек функции, заданной таблично. Например:
EXP FUNCTION RN1,С12
0,0/0.2,0.22/0.4,0.51/0.5,0.6/0.6,0.92/... и т.д.
Это описание непрерывной (С) функции EXP, заданной таблично 12-ю узловыми точками. Аргументом является случайная величина (RN1), равномерно распределенная в диапазоне [0, 1]. Другой пример:
ВВВ FUNCTION *4,D6
1,2/2,5/3,11/4,20/5,18/6,12/7,9
Дискретная (D) функция ВВВ задана 6-ю узловыми точками, аргумент – четвертый параметр транзакта, вызвавшего обращение кфункции ВВB.
Дата добавления: 2016-02-02; просмотров: 1292;