книги / Моделирование систем. Практикум
.pdfНомер |
Номер |
Номер |
Время |
Время |
транзакта |
текущего |
следующего |
выхода |
Приоритет помещения |
|
блока |
блока |
из списка |
в список |
|
Р и с |
22 Структура списка |
GPSS/PC |
ройств (свободно, занято, прервано, не прервано). Захват (на обра ботку) и освобождение устройства моделируются соответственно блоками SEIZE и RELEASE. Прерывание устройства моделирует блок PREEMPT, снятие прерывания — блок RETURN. Проверка состояния устройства осуществляется блоком GATE.
Памяти. Память, или емкость накопителя, служит для модели рования реальных объектов, обладающих конечной величиной числа сообщений (транзактов), ожидающих своей очереди на об работку. Память моделируется блоками ENTER и LEAVE, а также оператором STORAGE, который задает емкость памяти (накопи теля). Проверка состояния памяти осуществляется блоком GATE.
Логические ключи. Логические ключи служат для моделирова ния объектов с двумя логическими состояниями «включено», «вы ключено». Управление ключами осуществляется транзакгами, продвигающимися по модели. Транзакт может установить ключ в состояние «включено», сбросить его — перевести в состояние «выключено» или инвертировать, т. е. изменить состояние ключа на противоположное значение. Логические ключи моделируются блоками LOGIC и GATE.
Очереди. Если в системе Уможет происходить задержка в про движении сообщения или задержка в его обработке, то тогда воз никает очередь. Для сбора и регистрации статистики об очередях в моделирующей системе ставят блоки QUEUE и DEPART. При вхо де сообщения (транзакта) в блок QUEUE текущая длина очереди получает приращение. Уход сообщения из очереди отображается блоком DEPART.
Таблицы. Для сбора различного рода статистических данных и их регистрации используют таблицы, которые моделируются бло ком TABULATE и оператором TABLE. Занесение интересующей информации в таблицу осуществляется блоком TABULATE в мо мент входа очередного транзакта в этот блок. Описание структуры таблицы и типа заносимых данных (стандартизированных самой системой GPSS) осуществляется оператором TABLE.
Ячейки. В системе GPSS/PC для сохранения некоторой число вой информации используются ячейки. Бывают ячейки сохраняе мых величин и матрицы ячеек сохраняемых величин. Начальные значения ячеек и матриц можно задавать при помощи оператора описания INITIAL. Размер матрицы задается оператором описа
31
ния MATRIX. Изменение содержимого ячеек осуществляется бло ками SAVEVALUE и MSAVEVALUE. Блок SAVEVALUE использу ется для замены, увеличения или уменьшения текущего содержи мого заданной ячейки, блок MSAVEVALUE — для записи значе ний в матрицы, а также для увеличения или уменьшения значений, записанных в матрицах.
Функции и переменные. Функции и переменные в GPSS/PCот носятся к вычислительным объектам. В GPSS/PC имеется три типа переменных: арифметические переменные; арифметические пе ременные с плавающей точкой; булевские переменные.
В арифметических переменных, как уже отмечалось, использу ются следующие арифметические операции:
+ — алгебраическое сложение;
-----алгебраическое вычитание;
# — алгебраическое умножение; Л— возведение в степень;
/ — алгебраическое деление, остаток отбрасывается; при этом сохраняется только частное (прямой слэш);
\— деление нацело (обратный слэш);
@— деление по модулю.
Все функции в GPSS/PC задаются табличным способом с по мощью специальных операторов описания функций (непрерыв ного или дискретного типа).
Арифметические переменные с фиксированной точкой и с плавающей точкой описываются соответственно операторами VARIABLE и FVARIABLE. Только при описании переменных с плавающей точкой (FVARIABLE) допускается применение дроб ных констант.
Булевские переменные представляют собой логические выраже ния. Булевские переменные описываются оператором BVARIABLE с соответствующими операторами отношений или условий. В булев ских переменных используются три типа операторов: логические (для определения состояния объектов), булевские (OR — опера тор логического сложения и AND — оператор логического умно жения) и операторы отношения (G — больше, L — меньше, Е — равно, NE — не равно, LE — меньше или равно, GE — боль ше или равно). Булевские переменные дают возможность прини мать решения в зависимости от состояния и значения многих объ ектов, входящих в моделирующую систему GPSS/PC.
В арифметических и булевских переменных могут также ис пользоваться библиотечные функции и выражения следующего вида:
SIN(...) — синус,
32
COS(...) — косинус,
TAN(...) — тангенс, ATN(...) — арктангенс, EXP(...) — экспонента,
LOG(...) — натуральный логарифм, SQR(...) — квадратный корень, АВС(...) — абсолютное значение, ШТ(...) — целая часть,
NOT — логическое отрицание.
Функции GPSS/PC описываются оператором FUNCTION, че рез который задается тип функции (непрерывный или дискрет ный) и количество пар точек, задаваемых в следующих строках по сле строки с оператором FUNCTION.
Операторы, применяемые в программах GPSS/PC, обычно располагаются за телом основной программы, т. е. либо до блока GENERATE, либо после блока TERMINATE (см. рис. 2.1). При этом для них необязательна нумерация строк, которая применяет ся в теле основной программы.
2.2.3. Форматы описания блоков и операторов GPSS/PC
Блоки (рис. 2.1) составляют основное тело программы GPSS/PC. Блоки должны нумероваться по мере их появления в программе, т. е. номер каждого последующего блока должен быть больше предыдущего. Нумерация блока подразумевает номер строки, в которой осуществляется формат записи блока. Нумера ция строк, в которых записываются служебные слова того или иного оператора, не обязательна. Формат записи:
<№>_<метка>_БЛОК_<А>,<В>,<С>,[<К>]; Комментарии
Описание начинается с номера строки (№), отсчет которых на чинается сверху вниз, после пробела (указан символ _) помещает ся по необходимости метка блока, которая должна начинаться с буквы и содержать не более пяти алфавитно-цифровых символов. После метки или, если она отсутствует, после номера строки сле дуют два пробела, после которых указывается имя блока (БЛОК). Далее после одного пробела располагаются операнды, разделен ные запятыми. В литературе в описаниях программ обязательные операнды помещают в символы: больше >, меньше < (операнды А, В, С), необязательные операнды помещают дополнительно еще в квадратные скобки, как, например, для операнда D. Количество операндов определяется типом блока и его функциональным на-
3- 3083 |
33 |
значением в данной программе. Если рабочая строка заканчивает ся точкой с запятой (;), то далее в этой строке можно поместить комментарии. Комментарий может помещаться в строке, в первой позиции (колонке) которой будет находиться звездочка (*). Звез дочки часто используют для логического разделения фрагментов программы, удобства чтения и восприятия. Какую-то строку мож но, начиная с первой позиции, полностью заполнить звездочками.
Формат записи операторов имеет следующий вид:
[м етк а]_ 0П Е Р А Т 0Р _ < А > ,< В > ,< С > )< 0 > ,...; Комментарии
Операторы GPSS/PC подразделяются на операторы описания данных и контроля управления. В отдельную группу операторов выделяются команды GPSS/PC. Описание начинается с метки (ал фавитно-цифровая не более 5 знаков), после которой достаточно проставить один пробел и затем имя оператора. После имени опе ратора через один пробел указываются операнды. Комментарии пишутся после точки с запятой. Количество операндов различно для разных операторов. Для некоторых операторов метка не ста вится. В выходной статистике GPSS/PC строки с операторами не фиксируются и не указываются. Для записи операторов можно ис пользовать нумерованные строки, но они также не будут присутст вовать в выходной статистике. Формат записи операторов с нуме рованными строками будет приведен позднее при рассмотрении конкретных программ на GPSS/PC.
2.2.4. Стандартные числовые атрибуты
Все элементы, используемые в GPSS/PC, имеют специальные числовые характеристики, которые называются стандартными чи словыми атрибутами (СЧА). Например, для различия одного сооб щения от другого можно применить такой числовой атрибут, как приоритет. Каждый транзакт (сообщение) может иметь несколько параметров, по которым они отличаются друг от друга. Транзакты имеют четыре СЧА:
PR — приоритет по умолчанию равен нулю;
Pj или *j, или *<имя>, или *$<имя> — значение параметра) те кущего сообщения или значение параметра с именем <имя> теку щего транзакта. Этот СЧА задает номер 0) или имя параметра транзакта;
MPj — значение времени, равное разности абсолютного мо дельного времени, и величины, записанной B J - M параметре теку щего транзакта. Разница может быть как положительной, так и от рицательной;
34
MBj — флаг синхронизации: присваивается 1, если транзакт в блоке] принадлежит тому же семейству, что и текущий транзакт; в противном случае присваивается 0. Синхронизация отмечается между сопряженными блоками MATCH.
Таким образом, транзакты могут идентифицироваться по за данным СЧА. Значения СЧАдлятранзактов задаются разработчи ком (//^-программы.
Другие объекты GPSS/PC, как и транзакты, имеют соответст вующие наборы СЧА: блоки, устройства, многоканальные устрой ства, очереди, таблицы, ячейки и матрицы сохраняемых величин, списки и группы, вычислительные объекты. Для изменения значе ний некоторых атрибутов к ним можно обращаться программным путем согласно логике рассматриваемой модели. По мере изуче ния системы GPSS/PC будут проводиться СЧА соответствующих объектов. Весь список СЧА приведен в Приложении 3.
В GPSS/PCеще существуют так называемые системные СЧА, к которым пользователь может обращаться в модели, но не может изменять их значение. К системным числовым атрибутам относят ся следующие величины:
С1 — текущее значение условного времени. Автоматически изменяется программой и устанавливается в ноль управляющими операторами CLEAR и RESET;
АС1 — текущее значение абсолютного времени. Автоматиче ски изменяется программой. Эта величина не меняется под дейст вием управляющего оператора RESET и устанавливается в 0 лишь под действием оператора CLEAR;
M l — время пребывания в модели сообщения, обрабатывае мого программой в данный момент. Эта величина может изме няться блоком MARK. Величина M l вычисляется как разница те кущего значения абсолютного времени и отметки времени обраба тываемого транзакта;
Z1 — возвращает размер свободной оперативной памяти в байтах;
XN1 — возвращает номер активного транзакта;
TG1 — число, равное текущему значению счетчика заверше ний. Транзакты, вошедшие в блоки TERMINATE с нулевым опе рандом <А>, уменьшают значение этого счетчика на число, равное значению операнда <А>;
PR — приоритет обрабатываемого вданный момент транзакта. По умолчанию приоритет равен нулю. Эта величина может изме няться (назначаться) блоком PRIORITY;
RNj — число, вычисляемое j генератором (датчиком) случай ных чисел (j = 1,7 т. е. RN1, RN2,..., RN7). Все датчики генерируют
у |
35 |
последовательность (одного и того же периода) равномерно рас пределенных чисел от 0 до 999 включительно. Если число исполь зуется в качестве аргумента функции или элемента в переменной, то тогда осуществляется генерация случайных равномерно распре деленных чисел в пределах от 0 до 0.999999.
Следует отметить, что СЧА (включая системные числовые ат рибуты), т. е. их символьные обозначения, нельзя использовать в качестве меток операторов и блоков программы GPSS/PC.
С помощью СЧА осуществляется дополнительное специаль ное кодирование операторов и блоков GPSS/PC. Практически всегда СЧА можно использовать в качестве операндов блоков и большинства операторов.
В GPSS/PCстандартные числовые атрибуты имеют следующие объекты: блоки, устройства, многоканальные устройства, очере ди, таблицы, ячейки и матрицы ячеек сохраняемых величин, спи ски и группы, вычислительные объекты (СЧА вычисленного зна чения функции, СЧА вычисленного значения переменной). С по мощью СЧА пользователь получает доступ к характеристикам со стояния системы S в процессе моделирования.
2.3.СИСТЕМНЫЕ ТРЕБОВАНИЯ
ИИНТЕГРИРОВАННЫЕ ОБОЛОЧКИ GPSS/PC
Программный комплекс GPSS/PC версии 2.0, разработанный фирмой MINUTEMAN Software, функционирует под управлени ем операционной системы MS DOS, состоит из двух исполняемых файлов и файлов настройки и занимает 540 Кбайт дискового про странства. Система GPSS/PC2.0успешно работает на платформе типа IBM PC с объемом оперативной памяти 1 Мбайт.
Экранный интерфейс GPSS/PC2.0 не совсем удобен для про ведения имитационных экспериментов с моделями систем S. По этому вряде высших учебных заведений России были разработаны интегрированные оболочки, которые включают в себя текстовый редактор, многооконный интерфейс для отладки и просмотра от четов. Одна из популярных интегрированных оболочек подобного рода — TGPSS — разработана в Московском государственном техническом университете им. Н.Э. Баумана. Экранная форма этой оболочки представлена на рис. 2.3. Она содержит следующие пункты меню:
Файл, Редактирование, Поиск, Моделирование, Отчет, Окно, Опции F1 — Помощь, F2 — Сохранить, F3 — Открыть, F7 — Отчет,
F9 — Моделирование, F10 — Меню.
36
TGPSS
9 x 15 3 I |<Si ^ |
В eg s |
A ! |
||
__Фаил_ Редактирование |
Поиск |
Моделирование Отчет _Окно Опц.ии_ |
||
" шPs-I-==-ssn£^shS£h=sK=ssJSHbiiniJUа ш |
ш |
|
ш 9" |
|
S^-gJg CTHgg^ |
ЬГ=Г= S§g= |
|
=Яг^1иЁ^=«^=а^^£Чд^ШШЙ|ас-«^д1Ьм1 ra.m B5a««l^!!ii;Lll5!!!3
Ti-T =-_“ТГ- |
=2ш.ЕЧЬ~?S3=TJ“ !f™ = aja |
3 y s fs . j§™!«р1ЧЭi=l-H := =r |
A ^F ^S o M 'lb '^Jib llj^^C -2 §= 1 s£s |
^ ““ГдА- ISLl : |
||||
s> . ti- -“—» |
B tu luin. Me*rs. |
----------4: млШЩШЦ1 ISIM*IIIUIUIUIUI^ |
s? м л - e uctti i nc.3iminmtLibiM _ M |
|||
P I Помощь F2 Сохранить |
F i Открыть |
F7 Отчет F9 Моделирование |
F10 Меню |
|||
Р и с |
2 3 |
О сновная |
экранная ф орм а T G P SS |
|
Оболочка имеет два режима работы: реальный и защищенный и занимает 390 Кбайт дискового пространства. В этом же универ ситете разработана обучающая и контролирующая программа SimTG, также функционирующая под управлением MS DOS. Она дополнена большим количеством тестовых примеров, занимает 155 Кбайт дискового пространства, не считая файлов тестовых примеров.
В Санкт-Петербургском государственном электротехниче ском университете «ЛЭТИ» разработана автоматизированная обу чающая система (АОС) EITut, которая включает в себя гипертек стовую версию комплексного электронного учебника, т. е. непо средственно учебник «Моделирование систем» и учебное пособие «Моделирование систем. Практикум», которая используется в учебном процессе при проведении практических занятий, лабора торного практикума и курсового проектирования [12, 16, 19, 22]. Разработанная АОС занимает 785 Кбайт дискового пространства, включая тестовые примеры каждой из лабораторных работ и вари антов курсовой работы, реализованные на языке GPSS/PC 2.0 с интегрированной оболочкой TGPSS. Установочные файлы про граммы EITut доступны для пользователей Internet по ссылке pttp://eltech.ru/main/asoiu/simsys.htm.
С учетом того что операционные системы типа WIN 32 в на стоящее время фактически вытеснили MS DOS, а вариант языка GPSS для Windows 95/98/2000 является дорогостоящим, поэтому
37
[CAGPSS РС\СР LR\S_Yak_Lat)1 GPSJ |
Я13КЭ1 |
1ц&Файл Правке Объекты Моделирование Окно 2 |
■=jsl *J |
Р и с 2 4 О сновная экранная ф орм а DipPro
GPSS/PC2.0 по-прежнему находит широкое применение на плат форме WIN 32. В Мордовском государственном университете была разработана интегрированная оболочка GPSS/PC2.0 для платформы WIN 32 DipPro. Особенностью этой оболочки является наличие HELP-файла по языку моделирования GPSS/PC. Основ ная экранная форма DipPro представлена на рис. 2.4. Она содержит следующие пункты меню:
Ф айл, Правка, Объекты, М оделирование, Окно, Помощь (?).
Программа DipPro занимает 1,38 Мбайт дискового пространства, установочные файлы 1 Мбайт дискового пространства. Следует доба вить, что в процессе инсталляции программа установки автоматиче ски определяет местоположения на диске файлов GpssPc.ExE и GpssRepT.ExE, при их отсутствии инсталляция прерывается. Устано вочные файлы программы DipPro доступны для пользователей по ссылке http://phaeton.mrsu.ru/university/main/chairs/fet/default.htm.
Более детально с особенностями использования при модели ровании информационных систем S языка моделирования GPSS/PC можно ознакомиться в последующих главах данного учебного пособия, а также воспользоваться обучающей и контро-
38
лирующей программой SimTG, разработанной в Московском го сударственном техническом университете им. Н.Э. Баумана, и ав томатизированной обучающей системой ElTut, разработанной и внедренной в учебный процесс в Санкт-Петербургском государст венном электротехническом университете «ЛЭТИ» и включаю щей гипертекстовую версию комплексного электронного учебни ка, т. е. непосредственно учебник «Моделирование систем» [12] и учебное пособие «Моделирование систем. Практикум» [16] (http://eltech.ги/main/asoiu/simsys.htm).
КОНТРОЛЬНЫЕ ВОПРОСЫ
1. |
Что |
представляет и з |
себя блок-диаграм м а GPSS^ |
|
|
||
2. |
В |
чем заключается |
принцип |
организации |
системы |
моделирования |
|
G P S S /P C |
|
|
|
|
|
|
|
3. |
Что |
представляют из |
себя объекты в м оделируемой |
систем е SP |
|||
4. |
Как |
м ож но определить понятие |
«транзакт» |
в систем е |
м оделирования |
||
G P S S /P C > |
|
|
|
|
|
|
|
5. Что |
называется устройством в язы ке моделирования |
G P S S /P C 7 |
|||||
6. Что |
представляет из |
себя интегрированная оболочка |
G P S S /P C ? |
Глава 3
ПРОГРАММИРОВАНИЕ ИМИТАЦИОННЫХ МОДЕЛЕЙ В СРЕДЕ G P S S /P C
В третьей главе рассмотрены элементы программирования в системе G P S S /P C с целью раскрытия функционального назначения основных объектов G P S S /P C и форматы описания применяемых блоков, операторов и т . д. Одной из особенностей системы G P S S /P C являет ся автоматическое формирование некоторой стандартной выходной статистики по используемым в программе (модели) элементам . Усложнение программ приведено по мере привлечения дополнительных операторов и блоков, а т акж е по м ере расш ирения их ф унк циональных возмож ностей. При эт ом дет ально анализируется ст андарт ная выходная статистика, кот орая авт омат ически выводится системой G PSS/PC . Объекты G P SS /P C принято разбиват ь на категории, которые объ единяют несколько блоков и операторов В G P S S /P C можно выделить следую щие категории объектов• аппаратная, динамическая, вычислительная, ст а тистическая, запоминающая и группирующ ая категории. Рассмотрена т ех нология применения языка G P S S /P C при выполнении практикума, приведена информация об ошибках, выявляемых системой G P SS/P C , как на эт апе ас семблирования, т ак и на эт апе исполнения программы
3.1. ПРОГРАММИРОВАНИЕ ДЛЯ АППАРАТНОЙ
И ДИНАМИЧЕСКОЙ КАТЕГОРИЙ ЯЗЫКА МОДЕЛИРОВАНИЯ GPSS/PC
Анализ функциональных возможностей объектов аппаратной и динамической категорий приведем на примерах элементарных типовых ситуаций, характерных для систем массового обслужива ния (Q-схем) [11—13, 16]. Решение каждой задачи оформляется в виде программы *.GPS с последующим объяснением как самой программы, так и результатов моделирования в виде стандартной выходной статистики, которая формируется в файле стандартного отчета *.RPT.
40