При использовании математического аппарата ТМО часто удается быстро получить аналитические модели для решения достаточно широкого круга задач исследования ВС. В то же время аналитические модели имеют ряд существенных недостатков:
- значительные упрощения, свойственные большинству аналитических моделей (представление потоков заявок как простейших, предположение об экспоненциальном распределении длительностей обслуживания заявок, невозможность моделирования обслуживания заявки одновременно, например процессором и оперативной памятью, и др.);
- громоздкость вычислений;
- сложность учета в показателях эффективности характеристик процессов функционирования ПО.
В отличие от аналитического, имитационное моделирование снимает большинство ограничений, связанных с возможностью отражения в моделях реального процесса функционирования исследуемой ВС. Хотя имитационные модели во многих случаях более трудоемки чем аналитические, они могут быть сколь угодно близки к моделируемой системе. Имитационные модели ВС воспроизводят процессы генерации сообщений приложениями, разбиение сообщений на пакеты и кадры определенных протоколов, задержки, связанные с обработкой сообщений, пакетов и кадров внутри операционной системы, процесс получения доступа компьютером к разделяемой сетевой среде, процесс обработки поступающих пакетов маршрутизатором и т. д. Дополнительным преимуществом имитационных моделей является возможность подмены процесса смены событий в исследуемой системе в реальном масштабе времени на ускоренный процесс смены событий в модельном времени. Результатом работы имитационной модели являются собранные в ходе наблюдения за протекающими событиями статистические данные о наиболее важных характеристиках сети: временах реакции, коэффициентах использования каналов и узлов, вероятности потерь пакетов и т. п.
Существуют специальные языки имитационного моделирования (например, GPSS World), которые существенно облегчают процесс создания программной модели ВС по сравнению с использованием универсальных языков программирования.
3.4.1. Элементы имитационных моделей систем массового обслуживания
Описания компонентов реальной ВС в имитационной модели носят определенный логико-математический характер и представляют собой совокупность алгоритмов, имитирующих функционирование исследуемой ВС. Моделирующая программа, построенная на основе этих алгоритмов, позволяет свести имитационное моделирование к проведению экспериментов путем их «прогона» на некотором множестве входных данных, имитирующих первичные события, которые происходят в системе. Статистика, фиксируемая в процессе моделирования, позволяет определить показатели, характеризующие качества ВС.
Имитационные модели состоят из элементов, в качестве которых фигурируют источники входных потоков заявок, устройства, памяти и узлы.
Модель источника входного потока заявок представляет собой алгоритм, по которому вычисляются моменты поступления заявок. Источники могут быть независимыми – реализует алгоритм выработки значений случайной величины, распределенной по заданному закону, и зависимыми – заявка вырабатывается при поступлении на некоторый вход синхронизирующей заявки. Каждый источник вырабатывает заявки одного типа и определенного приоритета.
Ресурсы ВС делятся на устройства (ОА) и памяти, причем устройство может обслуживать в каждый момент времени только одну заявку, а память – несколько.
Модель устройства представляет собой алгоритм выработки значений интервалов обслуживания. Для каждого типа заявок могут быть установлены свои распределения. Модель устройства также отражает заданную дисциплину обслуживания, так как в нее входит алгоритм, управляющий очередями в соответствии с дисциплиной обслуживания и приоритетами поступивших заявок.
Модель памяти представляет собой алгоритм определения объема памяти, требуемой для обслуживания заявки. Объем определяется как реализация случайной величины, причем закон распределения и его параметры зависят от типа заявки. Параметры памяти – емкость и дисциплина обслуживания. Заявка, поступившая в память, занимает вычисленный объем и продолжает движение по СМО до встречи со специальным элементом освобождения памяти.
Модель узла используется для маршрутизации движения заявок в СМО и связей между элементами этой модели. Узлы могут быть нескольких типов и применятся для направления заявок по определенному или случайно выбираемому маршруту в зависимости от типа заявки или выполнения определенных условий; разделения потока заявок на части; объединения заявок друг с другом; изменения параметров заявок [4, 5, 25, 28].