Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект лекций Моделирование систем.doc
Скачиваний:
52
Добавлен:
15.04.2019
Размер:
1.38 Mб
Скачать

6.2.Классификация языков моделирования

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

Язык активностей удобен для описания систем с большим числом разнообразных ресурсов, так как позволяет записывать условия их доступности в компактной форме. Он предполагает формализацию условий, при которых можно начать ту или иную работу, и описание вычислительных операций, которые необходимо проделать, если эти условия выполняются. В языках, ориентированных на активности, реализуется поисковая схема, предполагающая постоянство законов, обуславливающих порядок смены состояний системы в процессе ее функционирования. К данному классу языков относятся csl, forsim, gsp.

Язык, основанный на механизме расписания событий, обеспечивает экспериментатору строгий контроль прохождения программы. В событийно-ориентированных языках реализуется схема расписания событий. Моделирующая программа организуется в виде совокупности процедур событий, выполнение которых синхронизируется во времени списковым механизмом планирования. К данному классу языков относятся gasp, simscript, smpl, simtran.

Язык процессов допускает объединение нескольких событий в одну программу, что облегчает описание динамики системы. Принципиальная особенность программы процесса в том, что она выполняется так, как будто состоит из отдельных независимо управляемых программ. У каждого процесса может быть несколько точек взаимодействия (связи) с другими процессами и несколько активных фаз. Каждая фаза представляет собой некоторое событие. Это отличает язык процессов от языков активностей и событий. К процессно-ориентированным языкам относятся gpss, simula, sol, aspol.

Поисковый алгоритм и механизм планирования событий представляют собой различные пути решения одной проблемы. Язык активностей с поисковой схемой эффективен для описания сильно взаимосвязанных процессов, охватывающих фиксированное число объектов. Планирование событий эффективно для имитации менее связанных процессов с большим (возможно, переменным) числом объектов. Одно из неудобств схемы расписания событий заключается в дроблении логического блока модели. Язык активностей лишен этого недостатка, но, вообще говоря, менее эффективен с вычислительной точки зрения. Описание системы на языке взаимодействия параллельных процессов представляет собой попытку объединить машинную эффективность языка событий и лаконичность языка активностей. Однако более простая организация моделирующей программы на языке, ориентированном на процессы, обеспечивается сложной по сравнению с программой на языке, ориентированном на события, системой имитации во времени, скрытой от программиста. В то же время, любую систему, описанную в терминах одной из перечисленных выше схем, можно смоделировать на основе двух других. Таким образом, обращение к тому или иному языку определяется удобствами моделирования, которые он предоставляет6.

6.3.Средства языков моделирования

Система управления имитацией, отвечающая за пересчет системного времени, слежение за выполнением условий активизации событий и др., является необходимым компонентом любого ЯИМ, который определяет динамику моделируемой системы и оформляется в виде управляющей программы, называемой монитором, симулятором и т.п. Система управления имитацией базируется на одном из трех основных типов систем планирования или их комбинации: интеррогативном (вопросительном, спрашивающем), императивном (повелительном, указывающем) и автоматическом, причем каждый последующий тип является частным случаем предыдущего.

Наиболее общее интеррогативное управление определяет процесс функционирования модели по мере выполнения определенных логических условий; соответствующие операторы имеют вид “жди выполнения условия A. Операторы могут иметь явную (например, repeat … until A) или неявную форму.

При императивном управлении система планирования базируется на операторах вида “жди период времени T, т.е. управление происходит в будущие моменты модельного времени. Операторы императивного планирования являются особыми случаями интеррогативных операторов и в различных ЯИМ представлены, как правило, в явной форме. Они позволяют задать монитору те временные точки, когда в системе происходят определенные события.

В тех языках, где параметр задержки у всех элементов моделирующих систем одинаков (шаг Δt), т.е. их активные фазы синхронизированы, используется система автоматического планирования. Для нее период между активными фазами является системной переменной, а не атрибутом элемента. Такая система применяется в языке DYNAMO.

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

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

К числу основных средств ЯИМ относятся также средства создания и уничтожения объектов, управления очередями, планирования и упорядочивания событий, трассировки системы и сбора статистики, генерации случайных чисел с различными распределениями. Внешние декларации подпрограмм и функций могут быть помещены в отдельный файл, который включается в программу пользователя. ИМ может быть представлена следующим образом: объекты имеют атрибуты, могут принадлежать множествам, и могут использовать ресурсы. Синхронизация выполнения событий осуществляется при помощи двунаправленных циклически связных списков. Тип записи языка (например, Pascal) позволяет описать объекты, ресурсы и сообщения о событиях по специальным шаблонам. Так, поля записи объекта содержат идентификатор категории объекта, его имя и номер, указатели на положение в списке объектов, атрибуты, используемые при обработке списков, и т.д. Поля записи ресурса содержат имя ресурса и номер, количество имеющегося в наличии ресурса, доступные единицы ресурса, указатель на список объектов, ожидающих этот ресурс, и т.п. Уведомление о событии является записью с атрибутами: тип события, время наступления события, указатели положения события в списке событий, имя события и т.д. Подобное описание основных конструкций обеспечивает всю необходимую информацию для выполнения подпрограмм в ходе имитационного моделирования. Преимущество использования языка Pascal состоит в том, что для имитационного моделирования необходим лишь транслятор с языка. Применение стандартного Pascal делает программы переносимыми. Проектирование программ моделирования осуществляется по методу “сверху-вниз”, причем легче, чем на gpss или Fortran. Подпрограммы и структуры Pascal придают описанному подходу к моделированию большую гибкость. Кроме того, использование атрибутов объектов, ресурсов и сообщений позволяет осуществить не только дискретно-событийное, но и процессно-ориентированное моделирование аналогично тому, как это сделано в simula.

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

Для повторения прогонов с новыми параметрами модели в ЯИМ используются специальные средства.

При взаимодействии двух элементов необходимо изменять атрибуты одного элемента с помощью атрибутов другого элемента. Соответствующие средства ЯИМ обеспечивают такой доступ к атрибутам. Наиболее просто это выполняется для активностей (или псевдоактивностей) в языках GPSS, SOL и родственных им. Но атрибуты транзактов (временных элементов) не имеют доступа к ним со стороны других транзактов. В языках CSL и SIMSCRIPT такие возможности имеются, и это позволяет составлять сложные имитационные программы.

Некоторые атрибуты являются системными (неявными) или недоступными. Они служат для реализации каких-либо функций, управление которыми нежелательно со стороны пользователя (например, системное время, сбор статистики и др.). Поэтому в трансляторах ЯИМ предусмотрена защита от присваиваний и назначений со стороны пользователя.

Возможно моделирование систем в режиме диалога пользователя с ЭВМ. Такое интерактивное взаимодействие обеспечивают генераторы имитационных программ. Машина “задает” в этом случае развернутые вопросы о структуре и параметрах моделируемой системы, а пользователь дает короткие ответы. Генераторы переводят тексты имитационных программ на другие языки. Такие средства автоматизированного программирования моделей позволяют создавать сложные имитаторы при относительно низкой квалификации пользователя и вмешиваться в проведение эксперимента на ЭВМ в диалоговом режиме.