![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Моделирование на языке Симула - 67
Язык СИМУЛА ориентирован на взаимодействие процессов и пред-ставляет собой расширение универсального языка АЛГОЛ в части средств описания и анализа сложных систем. Минимальное число основных понятий, используемых в языке, обеспечивает ему большую гибкость. В основе описания моделируемой системы лежит представление о ней как совокупности процессов. Процессом в языке СИМУЛА называется объект, работа которого привязана к системному времени, т.е. последо-вательности активных фаз такого объекта соответствует последовательность моментов системного времени. Исполнение активной фазы процесса называется событием. События отображают изменения состояния модели-руемой системы. Каждому событию при работе модели соответствует опре-деленный момент системного времени, при чем в ходе события системное время не меняется. Нескольким событиям модели может соответствовать один и тот же момент системного времени, что позволяет отображать одно-временные события, происходящие в моделируемой системе. Работа процес-сов и их взаимодействие отражают функционирование системы. Процесс может находиться в одном из четырех состояний: активном, приостановлен-ном, пассивном, законченном. Активным в каждый момент времени является только один процесс, на который указывает первое уведомление в управляющем списке (календаре событий). Этот процесс в данный момент непосредственно исполняет операторы, описывающие его правила действии. Для приостановленных процессов характерно наличие ссылающихся на них уведомлений в управляющем списке. Это означает, что для каждого из них запланировано событие и оно будет исполнено, т.е. рано или поздно приостановленный станет активным. Пассивные процессы, в отличие от приостановленных, не представ-лены уведомлениями в управляющем списке, т.е. события для них не запланированы. Пассивный процесс может быть переведен в активное или приостановленное состояние. Завершенный процесс также как и пассивный, не представлен в управляющем списке, но не может перейти ни в какое другое состояние, т.е. его работа не может быть возобновлена и он присутствует в модели как структура данных. Количество процессов и их взаимосвязи могут меняться в ходе работы модели, что позволяет легко описывать динамические системы с переменной структурен. Важной особенностью языка являются средства структурированного, иерархического описания классов процессов. Эти средства позволяют описывать типовые модели и дают возможность постепенно наращивать, детализировать описания типовых моделей. Исследователь разрабатывает программы для каждого класса процессов, к которому относятся все процессы с одинаковой структурой данных и операционным алгоритмом. Управление ходом имитации осуществляется с помощью " уведомлений о событии", в которых указывается, в какой момент имитационного времени наступит событие и к какому процессу оно относится. Уведомления помещаются в специальный последовательный управляющий список. Уведомления представляют собой объекты, содержащие информацию о запланированном времени события и ссылку на процесс, очередная активная фаза которого должна исполняться в это время. Во время исполнения своей очередной активной фазы процесс может запланировать события для других процессов, а также следующую активную фазу для себя самого. Кроме того, процесс может отменять некоторые из ранее запланированных, но еще не исполненных событий. Во время активной фазы процесс может " присоединять" другие процессы, получая доступ к их структурам данных для изменения значений характеристик, а также планировать себе или другому процессу с помощью специальных операторов следующую активную фазу. Для облегчения программирования типовых приемов статистического анализа в языке имеются процедуры, позволяющие накапливать гисто-граммы значений случайных величин и вести в ходе работы модели интегрирование по системному времени. Выдача данных экспериментов осуществляется с помощью операторов генерации отчетов. К сказанному добавим, что в дополнении к средствам Алгола-60 язык содержит удобный аппарат описания новых понятий, средства обработки текстовой информации, стандартные средства ввода-вывода, средства для организации квазипаралельного исполнения компонентов программы. Важной также является возможность построения на его основе и его средствами специализированных языков программирования и пакетов прикладных программ, содержащих основные понятия, выработанные в некоторой предметной области. Язык разработан в Норвежском вычислительном центре и наиболее широко используется для решения задач имитационного моделирования.
|