MS_glavy_123 (1086515), страница 11
Текст из файла (страница 11)
Процессы и состояния объектов. Порядок функционирования системы в модели задается совокупностью алгоритмов, описывающих преобразования объектов. Алгоритм обработки строится с учетом структурных связей между элементами системы и действующего в ней закона управления. Он представляет основу для построения блок-схемы соответствующей программы. Программа, имитирующая определенные стадии обработки поступающих «сообщений» (объектов), называется в модели процессом. Как отмечалось ранее, в модели может быть несколько одновременно (псевдо-одновременно) работающих процессов. Это обеспечивается путем «остановки» модельного времени для некоторых процессов. Каждый объект в модели может находиться в одном из следующих состояний: активном, активизированном и состоянии ожидания. В последнее состояние объект переводится либо соответствующими операторами, либо в результате постановки объекта в очередь вследствие невыполнимого запроса на ресурс. При этом соответствующий процесс входит в фазу приостановки.
Активизация процессов или их участков осуществляется монитором, который получает необходимую информацию от соответствующих операторов языка. К таким операторам, например, относятся:
операторы запроса на ресурсы — ЗАХВАТИТЬ <имя устройства>, ЗАНЯТЬ <имя памяти, требуемый объем>;
операторы освобождения ресурсов — ОСВОБОДИТЬ <имя устройства>, ОСТАНОВИТЬ <имя памяти, объем>;
операторы, указывающие необходимые временные или логические задержки, отображающие ход системного времени — ЖДАТЬ <арифметическое выражение>, ЖДАТЬ ПОКА <логическое выражение> <указатель состояния>.
Введение понятия процесса освобождает от необходимости отдельно рассматривать постоянные и временные объекты системы, с одной стороны, и алгоритмы, описывающие функционирование с другой стороны. Класс процессов может рассматриваться как класс объектов, которые характеризуются значениями своих атрибутов и алгоритмом поведения. Если алгоритм поведения объектов некоторого класса процессов отсутствует, то такой класс объектов является лишь описанием структуры пассивных объектов системы.
Признаком процесса является наличие оператора ПРОЦЕСС <имя процесса>,<параметры процесса>.
В ходе моделирования могут порождаться новые процессы и уничтожаться старые. При порождении нового процесса порождающий процесс не будет остановлен, и в модельном времени квазипараллельно пойдут два процесса — старый и новый. Создание процесса осуществляется оператором НОВЫЙ ПРОЦЕСС <имя процесса>,<метка входа>. При этом сообщаются необходимые параметры процесса или объекта.
Уничтожение осуществляется оператором УНИЧТОЖИТЬ <имя процесса>.
Глобальные и локальные переменные. При моделировании необходимо представлять параметры системы, вводить переменные, описывающие свойства и поведение ресурсов безотносительно к отдельным объектам или их классам. По отношению к отдельным процессам эти переменные — глобальные, т.е. доступные для использования и изменения в любом процессе модели. К глобальным относятся переменные, представляющие значения текущего времени в модели, а также представляющие любые интересующие исследователя характеристики поведения системы, как, например, время пребывания заявок в системе, время ожидания их в очередях и т.д.
Другую группу образуют переменные, представляющие свойства объектов системы. Они ограничены одним процессом и называются локальными. Значения локальных переменных задаются при образовании объектов и в общем случае могут изменяться при функционировании системы.
Поведение системы во времени представляется последовательными значениями глобальных переменных модели, их текущие значения определяются состояниями системы в некоторый фиксированный момент времени. Изменение любой переменной, входящей в совокупность глобальных переменных, называется событием. Функционирование системы рассматривается как последовательность ее состояний.
Операторы и стандартные функции. Для описания математических операций и операций управления в языках моделирования существуют специальные функции.
В некоторых языках есть операторы управления очередью, постановкой в очередь, выбором из очереди, операторы синхронизации и др. При этом могут указываться дисциплины обслуживания «сообщений» (типа FIFO, LIFO и др.) и ряд других операторов, например, обеспечивающих вывод информации и облегчающих отладку программ.
Для генерации значений случайных чисел в языках используются стандартные функции, реализуемые с помощью подпрограмм с передачей им параметров, характеризующих закон распределения (например, NORMAL (M, D)). В некоторых языках функции и значения распределений могут задаваться в виде гистограмм.
В языках есть операторы, организующие сбор статистики. Так, оператор ТАБУЛИРОВАТЬ обеспечивает сбор и вывод указанной информации в виде гистограммы (таблицы) в соответствии с заданным описанием, а оператор окончания моделирования прекращает моделирование и включает выдачу накопленной статистики, например оператор СТОП.
В качестве общих рекомендаций по применению языков моделирования, входящих в состав программного обеспечения наиболее распространенных ЭВМ, можно отметить следующее.
Система моделирования GPSS хорошо разработана и отлажена, имеет более полную документацию, сильные средства отладки, большое количество стандартизированных средств, возможность перераспределения используемой памяти. Однако следует заметить, что GPSS является более узкоспециализированной системой моделирования. Она предназначена в первую очередь для имитации движения объектов при фиксированной блок-схеме и наиболее удобна при создании небольших моделей отдельных блоков и узлов АСУ.
Система моделирования GPSS допускает вставки на уровне АССЕМБЛЕР, что позволяет создать макрорасширение языка для использования результатов работы разных моделей.
-
Некоторые пути сокращения требуемых объемов памяти и времени при реализации имитационных алгоритмов
Требуемые объемы памяти моделирующей ЭВМ и затраты машинного времени на работу моделирующей программы всегда были и остаются факторами, ограничивающими ее допустимую сложность.
Требования к объему памяти можно представить в виде двух составляющих: статический объем и динамический объем. Статический объем памяти требуется для хранения исходной моделирующей программы (вместе с необходимыми исходными данными) и вспомогательных блоков системы моделирования — монитора и интерпретатора. Обозначим требуемые объемы памяти
соответственно, тогда
В свою очередь, память для программы складывается из объемов:
а) занимаемого операторами языка, составляющими программу, после их компиляции на промежуточный или машинный язык ;
б) резервированного под рабочее поле для интерпретации в ходе моделирования ;
в) отведенного для хранения исходных данных — глобальных переменных.
Таким образом, статическая составляющая объема памяти, выделенная для работы моделирующей программы,
где П — количество процессов в программе моделирования; i — номер процесса.
Объемы памяти и
обычно указываются в техническом описании системы моделирования и пользователь практически не имеет возможностей их изменить. Чтобы уменьшить величину
, учитывая, что параметр П и все составляющие третьего слагаемого суммы (3.1) зависят от сложности исследуемой модели, прежде всего необходимо выбирать из иерархической системы моделей наиболее простые модели, содержащие минимум элементов и параметров, достаточный для достижения цели исследования. Кроме того, следует выбирать такие операторы (блоки) языка моделирования, которые требуют наименьших объемов памяти
и
.
Динамический объем памяти существенно зависит от максимального числа параллельно работающих процессов
, количества формируемых в ходе моделирования копий процессов, от числа и типов формируемых в ходе моделирования локальных переменных:
где — объем памяти, отводимый для хранения локальных переменных;
— число копий i-го процесса (
= 0,1,2, ...).
Следует подчеркнуть, что указанные объемы рассчитываются с учетом работы блока сбора статистики.
Сокращение величины обеспечивается упрощением модели, сокращением числа параллельно работающих процессов и уменьшением объема собираемых статистических данных. В настоящее
время разработаны системы моделирования, позволяющие уменьшить ограничения на величины и
путем использования виртуальной памяти.
Однако такие системы требуют существенно больших затрат времени.
Перейдем к рассмотрению вопроса о затратах машинного времени на реализацию программы моделирования и о путях его сокращения. Оно достигается, во-первых, рациональной организацией программы, реализуемой на каждом прогоне, и, во-вторых, уменьшением количества прогонов.
В тех случаях, когда программирование ведется на универсальном языке или в распоряжении программиста имеется большой выбор языков моделирования, важно правильно выбрать принцип построения имитационного алгоритма: с детерминированным (постоянным) шагом или со случайным шагом (по особым состояниям — по событиям).
В случае фиксированного шага при моделировании m элементов на интервале времени требуется выполнить
проверок необходимости изменения состояния системы (при условии, что интервал
выбран так, чтобы за
изменялось состояние не более одного элемента). Если среднее время нахождения каждого элемента в одном состоянии равно
, то число изменений состояния системы на интервале
равно
.