Советов Б.Я., Яковлев С.А. Моделирование систем (2001) (1186219), страница 35
Текст из файла (страница 35)
В настоящее время существует большое количество языков имитационного моделирования — специальных языков программирования имитационных моделей на ЭВМ — и перед разработчиком машинноймодели возникает проблема выбора языка, наиболее эффективного для целеймоделирования конкретной системы. Языки моделирования заслуживают пристального внимания, так как, во-первых, число существующих языков и системмоделирования превышает несколько сотен и необходимо научиться ориентироваться в них, а во-вторых, почти каждый новый язык моделирования нетолько является средством, облегчающим доведение концептуальной модели доготовой машинной моделирующей программы, но и представляет собой новыйспособ «видения мира», т.
е. построения моделей реальных систем. Необходимость эффективной реализации имитационных моделей предъявляет всеболее высокие требования как к инструментальным ЭВМ, так и к средстваморганизации информации в ЭВМ при моделировании. Поэтому с учетом использования новой информационной технологии в процессе моделированияследует учитывать особенности построения баз знаний и банков данных и систем управления ими.5.1. ОСНОВЫ СИСТЕМАТИЗАЦИИ ЯЗЫКОВ ИМИТАЦИОННОГОМОДЕЛИРОВАНИЯИспользование современных ЭВМ и вычислительных комплексов и сетей является мощным средством реализации имитационныхмоделей и исследования с их помощью характеристик процессафункционирования систем S.
В ряде случаев в зависимости отсложности объекта моделирования, т. е. системы S, рациональноиспользование персональных ЭВМ (ПЭВМ) или локальных вычислительных сетей (ЛВС). В любом случае эффективность исследования системы S на программно-реализуемой модели Мы преждевсего зависит от правильности схемы моделирующего алгоритма,совершенства программы и только косвенным образом зависит оттехнических характеристик ЭВМ, применяемой для моделирования.Большое значение при реализации модели на ЭВМ имеет вопросправильного выбора языка моделирования.144Моделирование систем и языки программирования. Алгоритмические языки при моделировании систем служат вспомогательнымаппаратом разработки, машинной реализации и анализа характеристик моделей. Каждый язык моделирования должен отражать определенную структуру понятий для описания широкого класса явлений.
Выбрав для решения задачи моделирования процесса функционирования системы конкретный язык, исследователь получаетв распоряжение тщательно разработанную систему абстракций,предоставляющих ему основу для формализации процесса функционирования исследуемой системы 5. Высокий уровень проблемнойориентации языка моделирования значительно упрощает программирование моделей, а специально предусмотренные в нем возможности сбора, обработки и вывода результатов моделирования позволяют быстро и подробно анализировать возможные исходыимитационного эксперимента с моделью Мм.Основными моментами, характеризующими качество языковмоделирования, являются: удобство описания процесса функционирования системы S, удобство ввода исходных данных моделирования и варьирования структуры, алгоритмов и параметров модели,реализуемость статистического моделирования, эффективность анализа и вывода результатов моделирования, простота отладки и контроля работы моделирующей программы, доступность восприятияи использования языка.
Будущее языков моделирования определяется прогрессом в области создания мультимедийных систем машинной имитации, а также проблемно-ориентированных на целимоделирования информационно-вычислительных систем [17, 31, 41,46].Рассмотрим основные понятия, связанные с алгоритмическимиязыками и их реализацией на ЭВМ вообще и языками моделирования в частности.Язык программирования представляет собой набор символов,распознаваемых ЭВМ и обозначающих операции, которые можнореализовать на ЭВМ.
На низшем уровне находится основной языкмашины, программа на котором пишется в кодах, непосредственносоответствующих элементарным машинным действиям (сложение,запоминание, пересылка по заданному адресу и т. д.). Следующийуровень занимает автокод (язык АССЕМБЛЕРА) вычислительноймашины. Программа на автокоде составляется из мнемоническихсимволов, преобразуемых в машинные коды специальной программой — ассемблером.Компилятором называется программа, принимающая инструкции, написанные на алгоритмическом языке высокого уровня, и преобразующая их в программы на основном языке машины или наавтокоде, которые в последнем случае транслируются еще разс помощью ассемблера.Интерпретатором называется программа, которая, принимаяинструкции входного языка, сразу выполняет соответ ствующие опе145рации в отличие от компилятора, преобразующего эти инструкциив запоминающиеся цепочки команд.
Трансляция происходит в течение всего времена работы программы, написанной на языке интерпретатора. В отличие от этого компиляция и ассемблированиепредставляют собой однократные акты перевода текста с входногоязыка на объектный язык машины, после чего полученные программы выполняются без повторных обращений к транслятору.Программа, составленная в машинных кодах или на языке АССЕМБЛЕРА, всегда отражает специфику конкретной ЭВМ. Инструкции такой программы соответствуют определенным машиннымоперациям и, следовательно, имеют смысл только в той ЭВМ, длякоторой они предназначены, поэтому такие языки называются машинно-ориентированными языками.Большинство языков интерпретаторов и компиляторов можноклассифицировать как процедурно-ориентированные языки.
Этиязыки качественно отличаются от машинно-ориентированных языков, описывающих элементарные действия ЭВМ и не обладающихпроблемной ориентацией. Все процедурно-ориентированные языкипредназначены для определенного класса задач, включают в себяинструкции, удобные для формулировки способов решения типичных задач этого класса. Соответствующие алгоритмы программируются в обозначениях, не связанных ни с какой ЭВМ.Язык моделирования представляет собой процедурно-ориентированный язык, обладающий специфическими чертами.
Основныеязыки моделирования разрабатывались в качестве программногообеспечения имитационного подхода к изучению процесса функционирования определенного класса систем [31].Особенности использования алгоритмических языков. Рассмотрим преимущества и недостатки использования для моделированияпроцесса функционирования систем языков имитационного моделирования (ЯИМ) и языков общего назначения (ЯОН), т. е.
универсальных и процедурно-ориентированных алгоритмических языков. Целесообразность использования ЯИМ вытекает из двух основныхпричин: 1) удобство программирования модели системы, играющеесущественную роль при машинной реализации моделирующих алгоритмов; 2) концептуальная направленность языка на класс систем,необходимая на этапе построения модели системы и выборе общегонаправления исследований в планируемом машинном эксперименте. Практика моделирования систем показывает, что именно использование ЯИМ во многом определило успех имитации какметода экспериментального исследования сложных реальныхобъектов.Языки моделирования позволяют описывать моделируемые системы в терминах, разработанных на базе основных понятий имитации. До того как эти понятия были четко определены и формализованы в ЯИМ, не существовало единых способов описанияимитационных задач, а без них не было связи между различными146разработками в области постановки имитационных экспериментов.Высокоуровневые языки моделирования являются удобным средством общения заказчика и разработчика машинной модели Мм.Несмотря на перечисленные преимущества ЯИМ, в настоящеевремя выдвигаются основательные аргументы как технического, таки эксплуатационного характера против полного отказа при моделировании от универсальных и процедурно-ориентированных языков.Технические возражения против использования ЯИМ: вопросыэффективности рабочих программ, возможности их отладки и т.
п.В качестве эксплуатационных недостатков упоминается нехваткадокументации по существующим ЯИМ, сугубо индивидуальныйхарактер соответствующих трансляторов, усложняющий их реализацию на различных ЭВМ, и трудности исправления ошибок. Снижение эффективности ЯИМ проявляется при моделировании задачболее разнообразных, чем те, на которые рассчитан конкретныйязык моделирования. Но здесь следует отметить, что в настоящеевремя не существует и ЯОН, который был бы эффективен прирешении задач любого класса.Серьезные недостатки ЯИМ проявляются в том, что в отличиеот широко применяемых ЯОН, трансляторы с которых включеныв поставляемое изготовителем математическое обеспечение всехсовременных ЭВМ, языки моделирования, за небольшим исключением, разрабатывались отдельными организациями для своих достаточно узко специализированных потребностей.
Соответствующие трансляторы плохо описаны и приспособлены для эксплуатации при решении задач моделирования систем, поэтому, несмотря на достоинства ЯИМ, приходится отказываться от их практического применения в ряде конкретных случаев.При создании системы моделирования на базе любого языканеобходимо решить вопрос о синхронизации процессов в модели,так как в каждый момент времени, протекающего в системе (системного времени), может потребоваться обработка несколькихсобытий, т. е.
требуется псевдопараллельная организация имитируемых процессов в машинной модели Ми. Это является основнойзадачей монитора моделирования, который выполняет следующиефункции: управление процессами (согласование системного и машинного времени) и управление ресурсами (выбор и распределениев модели ограниченных средств моделирующей системы).Подходы к разработке языков моделирования. К настоящемувремени сложились два различных подхода к разработке языковмоделирования: непрерывный и дискретный — отражающие основные особенности исследуемых методом моделирования систем [35,43, 46].
Поэтому ЯИМ делятся на две самостоятельные группы,которые соответствуют двум видам имитации, развивавшимся независимо друг от друга: для имитации непрерывных и дискретныхпроцессов.147Для моделирования непрерывных процессов могут быть использованы не только АВМ, но и ЭВМ, последние при соответствующемпрограммировании имитируют различные непрерывные процессы.При этом ЭВМ обладают большей надежностью в эксплуатациии позволяют получить высокую точность результатов, что привелок разработке языков моделирования, отображающих модель в видеблоков таких типов, которые играют роль стандартных блоковАВМ (усилителей, интеграторов, генераторов функций и т.