Инструментарий ExtendSim для разработки и исследования дискретно-событийных моделей
Разработка простейшей модели
Один из основных подходов к созданию имитационных моделей систем, который реализован в среде ExtendSim, — дискретно-событийное моделирование.
Система называется дискретно-событийной если изменение состояний в ней происходит под влиянием явно определенных (дискретных) событий. Находясь в некотором состоянии, система сохраняет его (не изменяет своих характеристик) до наступления очередного события, под воздействием которого переменные системы (и, следовательно, ее состояние) изменяются «скачком». Термин «дискретно-событийное моделирование» исторически закрепился за моделированием, прежде всего, систем массового обслуживания (СМО) [6].
Понятие СМО охватывает широкий круг систем. СМО — любая динамическая система по обслуживанию заявок в условиях ограничения на ресурсы системы [3, 7]. Примерами СМО являются: библиотека, вычислительный центр, система передачи данных, информационная система, автоматизированная система управления, аэропорт, производственный участок, АЗС и т.д. Любая информационно-вычислительная система может быть представлена, формализовано описана и исследована, как СМО.
При построении модели, например, вычислительной системы состояние системы может быть представлено количеством заявок в системе, числом занятых компьютеров. Состояние системы изменяется, если новая заявка поступает в систему или, когда освобождается компьютер. Приход заявки или окончание обслуживания заявки — событие, которое изменяет состояние системы «скачком».
Реализованный в ExtendSim инструментарий для создания дискретно- событийной модели рассмотрим на примере простой задачи.
Пример 2. Известно, что вычислительная система состоит из одного компьютера. Интервал времени между двумя последовательными поступлениями заданий к компьютеру подчиняется равномерному закону распределения в интервале: 1—11 мин. Перед компьютером допустима очередь заданий, длина которой не ограничена. Время выполнения задания также равномерно распределено в интервале: 1—19 мин. Промоделировать процесс обработки 100 заданий.
Для создания модели используются блоки двух библиотек: Item.Их (см. приложение) и Plotter.lix. Библиотека Item.Их является основной при моделировании дискретно-событийных систем, библиотека Plotter.lix — содержит разные типы графиков. Конечный вид модели приведен на рис. 13.

Рис. 13. Конечный вид модели
Рассмотрим построение модели по шагам. В модели используются следующие блоки: Create, Exit, Queue, Executive, Activity, Plotter Discrete Event. Остановимся подробно на настройках каждого из блоков.
В блоке Executive устанавливается общее время моделирования, моделирование завершается, когда через модель пройдут 100 заявок. В диалоговом окне блока выберите вкладку Control, выберите опцию: Stop simulation: when count connector value —> = и введите значение 100.
В блоке Create устанавливается интервал между поступлением двух заявок и закон распределения интервала. На рис. 14 приведены настройки блока:
Рис. 14. Настройка блока Create
В блоке Activity устанавливается закон распределения интервала между поступлением двух заявок и параметры закона. На рис. 15. Приведены настройки блока:
Рис. 15. Настройка блока Activity
В настройках блоков Exit, Queue, Plotter Discrete Event используются параметры по умолчанию и ничего изменять не нужно.
Обратите внимание, блоки Queue и Activity содержат информационные выходные коннекторы, с которых можно снять информацию о характеристиках текущих (проходящих через модель) заявок или текущем состоянии блока. Например. у блока Queue следующие информационные выходные коннекторы: L текушая длина очереди; W — время ожидания в очереди текущей заявки; F — состояние очереди: возвращает 1, если очередь полна, 0 — в противном случае; Р — приоритет текущей заявки.
У блока Activity следующие основные информационные выходные коннекторы: L — текущее количество обрабатываемых заявок; U — коэффициент загрузки; РТ — время обработки текущей заявки и другие. Подробную информацию о коннекторах блока можно прочитать, нажав кнопку help в диалоговом окне блока.
Выходные коннекторы блоков (см. рис. 13) соединяются с графиком Plotter Discrete Event. После запуска модели на выполнение (пункт меню Run —> Run Simulation) выводятся график изменения выбранных характеристик системы в процессе моделирования (красная линия — средняя длина очереди, синяя линия — время обработки одной заявки) и временной ряд значений характеристик в табличном виде (рис. 16).

Рис. 16. График изменении выходных характерце гик
Выходные характеристики эффективности функционирования системы по результатам моделирования (например, коэффициент загрузки системы, среднее время обработки заявок, средняя длина очереди и т.п.) выводятся во вкладке Results в диалоговом окне блока. Например, для блока Activity выводятся следующие результаты (см. рис. 17): текущее, среднее и максимальное число заявок в
устройстве (Current, Average, Maximum Length); текущее, среднее и максимальное время обработки заявки (Current, Average, Maximum Wait); коэффициент использования устройства (Utilization); число заявок, зашедших в устройство (Arrivals); число заявок, вышедших из устройства (Departures).

Рис. 17. Выходные характеристики блока Activity
Для блока Queue выводятся следующие результаты (см. рис. 18): текущее, среднее и максимальное число заявок в очереди (Current, Average. Maximum Length); текущее, среднее и максимальное время нахождения заявки в очереди (Current, Average, Maximum Wait); коэффициент использования очереди (Utilization); число заявок, зашедших в очередь (Arrivals); число заявок, вышедших из очереди (Departures).

Рис. 18. Выходные характеристики блока Queue
Очевидно, что моделируемая система не справляется с потоком заявок, так как средний интервал поступления (6 единиц времени) заявок меньше среднего интервала обработки заявки (10 единиц времени). Компьютер загружен на 99%, очередь заявок линейно растет и на конец моделирования включает 71 заявку.
По результатам моделирования также можно сформировать итоговый текстовый отчет. Для этого, в модель необходимо добавить блок
из библиотеки Value.Их. Блок статистики нс требует подключения и обеспечивает сбор итоговой статистики но блокам модели. Для формирования отчета выберите пункты меню Run —> Generate Report, Run —> Report type(Statistics)/Statistics, Run —> Add all to report. В результате моделирования будет выведен текстовый отчет.