Общие сведения о языке GPSS и пакете GPSS/PC

Одним из наиболее распространенных языков имитационного моделирования является язык GPSS (от General Purpose Simulation System), разработанный в 1974 г. фирмой IBM. Язык применяется для моделирования дискретных процессов, реализует метод “по особым событиям” с целочисленным модельным временем.

При выполнении цикла работ используется пакет GPSS/PC, который полностью реализует язык GPSS и обладает развитыми интерактивными возможностями, характерными для пакетов программ персональных компьютеров.

Пакет состоит из двух загрузочных модулей с именами gpsspc.exe и gpssrept.exe. Первый содержит итнтерпретатор языка и основные интерактивные средства. Второй имеет вспомогательный характер и предназначен для выдачи на печать итогового отчета о результатах моделирования.

Ввод и редактирование программы моделирования

Работа с пакетом начинается с загрузки модуля gpsspc.exe, после чего в нижней части экрана высвечивается приглашение для ввода операторов языка в виде >.

Если программа моделирования набивается впервые, после приглашения > набираются последовательно строки программы или команды. Каждая строка при этом завершается нажатием клавиши “Возврат каретки” (ВК), после чего введенная строка переходит в верхнюю часть экрана, а в его нижней части вновь высвечивается приглашение >. Если набирается строка, содержащая синтаксическую ошибку, то в месте ошибки ввод прекращается, выдается звуковой сигнал, а под строкой высвечивается ^. Иногда имеют место ошибки, выявляемые в процессе интерпретации всей строки. В этом случае сообщение об ошибке появляется в верхней части экрана после нажатия клавиши ВК. Следует отметить, что возможны ошибки в процессе исполнения программы моделирования. В этом случае соответствующие сообщения появляются на экране вверху.

При наборе оператора GPSS следует строго выполнять синтаксические правила, в частности, разбиение оператора на поля. Для облегчения этого редактором GPSS/PC предоставляются удобные средства в виде подсказок. После набора первого поля следует нажать клавишу пробела. Тогда в нижней строке курсор перескочит к первой позиции следующего поля - поля меток, где временно высветится символ L. С началом набора имени метки этот символ “забьется” именем метки. Аналогичные подсказки высвечиваются и для других полей (V-для поля операций, X,A,B,C,D и т.д. - для полей операндов, ; - для поля комментариев). Для перехода к следующему полю необходимо нажимать клавишу пробела или клавишу с запятой.

В процессе набора строки ее можно исправлять, пользуясь клавишами передвижения курсора, клавишей Ins (вставки), клавишами Home,End,Ctrl. Для передвижения к началу следующего (предыдущего) слова удобно использовать комбинации клавиш Ctrl/-> (Ctrl/<-).

Если требуется исправить уже введенную строку, необходимо выполнить команду

EDIT <номер строки>

После исполнения этой команды в нижней части экрана появится та строка, номер которой указан в данной команде.

Для удобства обзора текста набираемой программы можно пользоваться командой вывода на дисплей. Проще всего эта команда исполняется путем нажатия клавиши F2. В этом случае на экран выводятся все набранные или введенные строки, имеющие номера. При этом из нескольких набранных строк с одинаковым номером остается та, которая набрана последней.

Если программа очень длинная, можно на экран вывести ее фрагмент. Для этого необходимо после приглашения > набрать команду

DISPLAY a,b

где a и b - начальная и конечная строки программы. Как a, так и b могут отсутствовать. Если не задано a, то на экран выведется фрагмент от начала программы до строки с номером b; если не задано b, то выведется строка с номером a; если не заданы ни a, ни b, то выведутся все строки программы (так же, как при нажатии F2).

Для удаления набранных строк используется команда

DELETE a,b

где a и b имеют тот же смысл, что и у команды DISPLAY, но аргумент a обязательно должен быть.

Для загрузки уже существующей на диске программы необходимо выполнить команду

@<спецификация файла с программой на GPSS>

например,

@GAUNETS.GPS

После исполнения такой команды начнется построчная загрузка программы на GPSS в память компьютера с одновременной ее трансляцией. После завершения загрузки введенную программу можно запускать на счет либо редактировать с помощью внутреннего редактора. Следует отметить, что программу на GPSS можно набирать с помощью любого текстового редактора, работающего с ASCII-файлами.

Введенную или отредактированную программу, как правило, необходимо сохранить в файле на диске, для чего следует набрать на клавиатуре и исполнить команду

SAVE <спецификация файла>, a, b

где аргументы a и b имеют тот же смысл и правила использования, что и в команде DISPLAY (см. выше).

3.3.Запуск на счет и управление процессом моделирования

Запуск на счет вновь введенной или прочитанной с диска программы осуществляется путем исполнения команды

START a,c ,

где a - начальное значение счетчика завершения, c - отсутствует или NP (NP - если не нужен выходной файл статистики).

После этого программа начнет выполняться до тех пор, пока в счетчике завершения не окажется нуль. Таким образом, время моделирования регулируется начальным значением счетчика завершения и принятым в данной программе алгоритмом уменьшения значения счетчика завершения.

Обычно для управления временем моделирования в программу вводится отдельный сегмент вида

GENERATE b

TERMINATE 1

Тогда время моделирования бутет определяться произведением указанных выше параметров a и b.

Для визуального контроля процесса моделирования в пакете предусмотрены окна и микроокна. Окна могут быть высвечены на экране с помощью функциональных клавиш F4,F5,...F10, Всего предусмотрено 7 окон - данных, блоков, устройств, таблиц, многоканальных устройств, позиций, матриц.

В окне данных производится редактирование программы с помощью внутреннего редактора, выводятся сообщения об ошибках и результатах работы некоторых команд.

В окне блоков изображается в виде прямоугольников (для адаптера CGA) либо специальных символов (для EGA) программа моделирования с сокращенными наименованиями блоков, метками и числами, показывающими количество сообщений в каждом из блоков. В процессе моделирования можно следить за продвижением сообщений по блокам, что особенно ценно при отладке модели. На цветном дисплее, кроме того, блоки изменяют свои цвета в зависимости от числа скопившихся в блоке сообщений.

Особенно часто окно блоков используется совместно с нижним горизонтальным меню, в котором имеются пункты CONTINUE, STEP, STOP, UNSTOP, EDIT, INSERT, DELETE, позволяющие редактировать программу непосредственно по блок-схеме из окна блоков. Так, для удаления некоторого блока требуется с помощью клавиш передвижения курсора совместить курсор с данным блоком и нажать на клавишу Ins, затем вернуть курсор на горизонтальное меню, совместив его с пунктом DELETE и вновь нажать на клавишу Ins. Аналогично выполняются и другие пункты - останов и продолжение моделирования (STOP и CONTINUE), снятие условия останова (UNSTOP), редактирование оператора блока (EDIT), вставка блока (INSERT).

В окне устройств (facilities) помещается информация о текущем состоянии устройств - их имена, интегральные коэффициенты загрузки (Ut), величины очереди к устройствам (Q), средние времена пребывания сообщений в устройстве Av.time) и некоторая другая информация. Эти данные приведены частично в графическом виде, что облегчает визуальный контроль за процессом моделирования.

В окне многоканальных устройств (storages) помещается информация о многоканальных устройствах (МУ). Информация приводится в форме, близкой к форме представления в окне устройств. Поскольку МУ в данный момент времени может быть занято частично, то помимо интегрального коэффициента загрузки Ut и длины очереди к устройству Q, здесь также выводится информация о проценте загрузки МУ в текущий момент времени (Part Used) и количество сообщений в устройстве в текущий момент времени(Content).

В окне таблиц (Tables) выводятся гистограммы выходных данных модели, формируемые пользователем в программе моделирования с помощью описаний TABLE или QTABLE и оператора- блока TABULATE.

В окне матриц (matrices) отображаются текущие значения элементов матриц.

В окне позиций при необходимости отображается процесс моделирования в виде совокупности неподвижных и перемещающихся объектов (мультипликация)

Микроокна заводятся с помощью команды MICROWINDOWS непосредственно с клавиатуры или при исполнении программы, если среди ее операторов имеется такая команда. В последнем случае микроокно откроется только при загрузке такой программы с диска, но не после внесения команды MICROWINDOWS в программу с помощью внутреннего редактора. Микроокно представляет собой прямоугольную рамку, внутри которой указывается номер микроокна, задаваемый короткий текст (до 8 символов) и отображаемое значение (стандартный числовой атрибут - СЧА или СЧА$параметр). Максимальное количество микроокон - 4. Микроокна располагаются в правой части всех окон, кроме окна данных. Указанная команда имеет синтаксис:

MICROWINDOWS a,b;c ,

где a - номер микроокна (от 1 до 4),

b - отображаемый СЧА или СЧА$параметр,

c - короткий текст (до 8 символов).

Для вывода значений СЧА и выражений в текущий момент модельного времени используется также команда SHOW. Для этого необходимо приостановить процесс моделирования путем нажатия клавиши ESC или другим способом (например, с помощью нижнего горизонтального меню) и с клавиатуры набрать команду

SHOW a ,

где a - выражение GPSS.

Имеются и некоторые другие средства вывода информации - команды EVENTS, ANOVA, GROUPS, USERCHAINS, PLOT, с которыми можно ознакомиться по технической документации [1].

3.4.Вывод итоговых результатов моделирования

В отличие от других языков программирования, в языке GPSS нет специальных средств для формирования отчетов об итогах моделирования. Здесь имеются две возможности - воспользоваться стандартным файлом отчета либо формировать нестандартный отчет в подпрограмме HELP на языке FORTRAN. Последнее требует наличия компилятора FORTRAN в составе программного обеспечения персональной ЭВМ. В большинстве случаев стандартный отчет удовлетворяет потребности пользователей.

Он формируется автоматически в файле REPORT.GPS либо в файле с заданным именем с помощью команды REPORT. Кроме того, имеются средства (команды RESULT и ANOVA) для вывода и статистической обработки значений ячеек сохраняемых величин.

Так, если требуется получить математическое ожидание и стандартное отклонение ячеек сохраняемых величин с именами NAME1 и NAME2, необходимо в программе моделирования в нужном месте поместить операторы

RESULT FILE.RES,NAME1,1

...

RESULT FILE.RES,NAME2,2

...

ANOVA FILE.RES .

Первые два оператора помещаются в тех местах программы, где уже известны значения NAME1 и NAME2, последний оператор обычно задают в виде команды с клавиатуры терминала либо в конце программы моделирования. Здесь FILE.RES - спецификация файла результатов моделирования, числа 1 и 2 задают так называемые уровни обработки. Уровни обработки позволяют различать выборки различных случайных величин в одном файле результатов. После работы команды ANOVA на экране терминала для каждого уровня обработки будут выведены математическое ожидание (Mean) и стандартное отклонение (Std.Dev).

Предлагаю ознакомиться с аналогичными статьями: