Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Алгоритмы и программные средства имитационного моделирования систем. Учебное пособие
.pdf
51
4.2. Характеристики СМО
СМО и сети СМО характеризуются следующими параметрами:
1) входящий поток заявок;
2) дисциплины работы с очередями;
3) правила и дисциплины обслуживания заявок;
4) выходящий поток заявок;
5) режимы работы СМО.
Входящий поток заявок. Чтобы задать входящий поток заявок,
необходимо описать:
– число источников заявок;
– закон поступления заявок от каждого источника.
Закон поступления может быть детерминированным или вероятностным. Как правило, входной поток заявок определяется законом
распределения длительности интервала времени между соседними
заявками в потоке.
Классическая теория массового обслуживания, где получен ряд
аналитических решений, рассматривает только простейший поток заявок. Для такого потока интервал времени между соседними заявками –
это непрерывная случайная величина, удовлетворяющая показательному закону, а количество заявок, поступающих за некоторый промежуток времени, – это дискретная случайная величина, удовлетворяющая закону Пуассона.
Дисциплины работы с очередями. С их помощью определяется
порядок постановки заявок в очередь к занятому устройству, а также
порядок выбора заявок из очереди. Простейшая дисциплина – FIFO
(первый пришел – первый вышел). Более сложный вариант организации очереди – LIFO (последний пришел – первый вышел).
Выбор из очереди может быть случайным или по параметрам. На
очередь могут накладываться ограничения по длине или по времени
нахождения заявок в очереди.
При различных приоритетах заявок на входах обслуживающих
устройств фактически может образовываться несколько очередей. Каждая очередь содержит заявки с одним уровнем приоритета. Заявки из
очереди с наивысшим приоритетом поступают на обслуживание первыми. Заявки низшего приоритета обслуживаются только тогда, когда
отсутствуют очереди заявок с более высокими приоритетами.
Правила и дисциплины обслуживания заявок. Правила обслу-
живания характеризуются:
– законом распределения времени обслуживания;
– числом заявок, которые могут обслуживаться одновременно;
– дисциплиной обслуживания.

52
Время обслуживания может быть детерминированным или вероятностным с заданным законом распределения. Классическая теория
массового обслуживания допускает детерминированное время и только показательный закон распределения
где – интенсивность обслуживания.
Число заявок на обслуживание определяется характеристиками
СМО или структурами сетей СМО.
Дисциплины обслуживания определяют:
– как выбирается следующая заявка на обслуживание;
– при каких условиях прекращается обслуживание;
– возможность частичного обслуживания заявок.
Различают дисциплины обслуживания бесприоритетные и при-
оритетные. В первом случае все заявки равноправны и порядок их выбора из очереди зависит от дисциплины организации очереди.
Что касается приоритетных дисциплин, то здесь много вариантов, например:
1) приоритет заявок может быть статическим или динамическим.
Статический задается в виде числовых констант, динамический – в виде функции, зависящей от времени;
2) дисциплины обслуживания могут быть с относительными или с
абсолютными приоритетами. Относительный приоритет означает, что заявка с более высоким приоритетом не прерывает обслуживание менее приоритетных заявок. Абсолютный приоритет означает, что поступление заявки более высокого приоритета всегда прерывает текущее обслуживание менее приоритетной
заявки. Возможны вложенные прерывания (иногда ограничивают глубину вложенности). Прерванные заявки могут удаляться
или образовывать очереди на дообслуживание.
Выходящий поток заявок. Это поток заявок как обслуженных,
так и не обслуженных, которые удаляются из системы. Структура входящего потока важна при изучении многофазных систем, где выходящий поток одной СМО является входящим для следующей СМО. Известен следующий теоретический результат: для СМО с простейшим
входным потоком с интенсивностью , которая имеет k параллельных
устройств обслуживания при экспоненциальном законе распределения
времени обслуживания с интенсивностью для каждого устройства,
выходной поток также является простейшим и имеет интенсивность
.
,

53
Во всех других случаях закон распределения выходящего потока
имеет более сложную вероятностную природу и может исследоваться
только с помощью систем имитационного моделирования.
Режимы работы СМО. При описании процессов обслуживания в
реальных системах могут возникать отказы устройств. Такой режим
называется режимом отказа. Возможен также режим блокировки обслуживания, когда осуществляется временное прерывание или замедление процесса обслуживания. Это потребуется, например, при моделировании каких-либо технологических процессов, где предусмотрено
временное отсутствие комплектующих, деталей или материалов.
В целом для СМО любых видов справедлив закон Литтла, кото-
рый гласит: для любого распределения времени между поступлениями
заявок, для любого распределения времени их обслуживания, для любого числа устройств обслуживания и для любой дисциплины обслуживания среднее количество заявок в СМО или сети СМО определяется как
где – интенсивность заявок;
T – среднее время нахождения заявок в системе.
В литературе для обозначения видов СМО используют три пара-
метра - X/Y/Z:
X – распределение времени поступления заявок;
Y – распределение времени обслуживания;
Z – количество обслуживающих устройств.
Ряд известных аналитических результатов получен для систем ти-
па D/D/1, M/M/1, M/G/1, где D – детерминированное время, M – экспоненциальное распределение времени, G – произвольное распределение
времени.
В целом результаты анализа СМО и сетей СМО обычно включа-
ют:
1) производительность (пропускную способность системы), т.е.
среднее число обслуженных заявок в единицу времени;
2) вероятность обслуживания заявки для СМО с отказами;
3) характеристики очередей для СМО с ожиданием (максималь-
ная и средняя длина, максимальное и среднее время ожидания
в очереди и др.);
4) коэффициенты загрузки обслуживающих устройств и др.
Интерпретация результатов осуществляется с учетом специфики
исследуемой системы. Например, для вычислительных систем могут
быть найдены состав и количество устройств обработки и хранения

54
данных, структура их связей и способы передачи данных между устройствами, значение основных характеристик этих устройств и т.п.
4.3. Имитационное моделирование СМО
Термин «имитационное моделирование» означает, что исследуются такие математические модели, с помощью которых результат
нельзя заранее вычислить или предсказать. С помощью подобных моделей можно выполнить анализ исследуемой системы путем проведения эксперимента (имитации) при заданных исходных данных и режимах работы.
Имитация представляет собой численный метод проведения экспериментов на ЭВМ с моделями, описывающими функционирование
исследуемой системы в течение некоторого периода времени. Такой
период времени может задаваться или формироваться в процессе эксперимента.
В применяемых моделях, называемых имитационными, функционирование исследуемой системы, включая функционирование отдельных элементов и процессов их взаимодействия, представляется набором алгоритмов, реализуемых на некотором языке. Совокупность описаний этих алгоритмов на языке программирования или моделирования называется программной имитационной моделью. Результаты
проведения экспериментов с имитационной моделью предоставляют
возможность решения следующих задач:
– сравнение различных вариантов организации структуры сис-
темы;
– оценка и сравнение различных алгоритмов управления систе-
мой;
– анализ степени влияния параметров системы, начальных усло-
вий и внешних факторов на эффективность системы;
– определение таких параметров, влияние которых является
критическим и др.
Элементы программной имитационной модели
Имитационная модель образуется при взаимодействии следующих элементов:
– состояний;
– событий;
– датчиков случайных чисел;
– таймера модельного времени;
– цепей событий;
– счетчиков;
– блока инициализации;

55
– критерия завершения.
Состояние моделируемой системы и ее элементов задается коли-
чественными значениями числовых параметров отдельных элементов,
их связей и системы в целом. Например, состояние некоторой простой
сети СМО можно описать следующими данными:
– текущее число заявок в сети;
– фазы обслуживания заявок;
– моменты поступления новых заявок в систему;
– моменты начала и окончания обслуживания в каждом устройст-
ве;
– текущее число заявок в каждой очереди и т.п.
Событие – это резкое скачкообразное изменение состояния модели. Различают события первичные и вторичные. Вторичные наступают
как следствие первичных событий. Например, завершение обслуживания заявки в некотором устройстве – это первичное событие. Продвижение очереди к этому устройству – вторичное событие.
Датчики случайных чисел используют для планирования оче-
редных событий в модели. Например, с помощью датчиков определяют моменты поступления заявок, длительности их обслуживания, объемы необходимых ресурсов для обслуживания, траектории движения
заявок в сетях СМО и др.
Имитируемый процесс функционирования исследуемой системы
развивается в так называемом модельном времени. Счетчик модельного времени называют модельным таймером или таймером модельно-
го времени. Работа с таймером определяет общий подход (алгоритм)
моделирования системы. В общем случае изменение значения таймера
может производиться двумя основными способами:
– с постоянным шагом во времени (принцип ∆t);
– с переменным шагом, т.е. скачками от события к событию.
Цепи событий – это специальным образом организованные списки событий в модели. В процессе анализа и обработки цепей событий
реализуется логика моделируемых процессов. Различают несколько
типов цепей событий (календарей событий).
Цепь текущих событий. Здесь размещаются записи об одновременных событиях, которые должны произойти в модели в текущее
модельное время. Последовательность обработки одновременных событий определяется логикой моделируемых процессов и является
строго фиксированной. События из этой цепи обрабатываются без изменения таймера модельного времени. В простейшей СМО одновременными могут быть следующие события:

56
– завершение обслуживания заявки;
– поступление новой заявки на обслуживание из очереди;
– продвижение очереди;
– определение момента завершения обслуживания поступившей
заявки и др.
Цепь будущих событий. Содержит записи о событиях, запланированных на последующие моменты модельного времени. Записи о событиях сортируются по моментам наступления. Одновременно с продвижением таймера записи из второй цепи переносятся в первую цепь
для обработки соответствующих событий.
Цепь задержанных событий. Содержит записи о таких событиях,
которые должны были произойти в текущее время или ранее, но стали
невозможными из-за возникших дополнительных условий в модели.
Например, запланированное заранее обслуживание некоторой заявки
стало невозможно из-за прерывания процесса обслуживания более
приоритетной заявкой. Или заявка должна была поступить на обслуживание, но обслуживание стало невозможным из-за нехватки доступных ресурсов. Такие события называют задержанными (или заблокированными). Возможность наступления этих событий проверяется каждый раз после обработки цепи текущих событий.
Счетчики используют для сбора и накопления результатов моделирования. Например, чтобы вычислить среднее время обслуживания заявки некоторым устройством, необходимо два счетчика:
- счетчик числа заявок, обслуженных этим устройством;
- счетчик суммарного времени полезной работы устройства.
Блок инициализации предназначен для приведения модели в
начальное состояние перед запуском программы моделирования и
сбора статистики. Обычно это обнуление всех счетчиков и установка
датчиков случайных чисел в начальное состояние для воспроизводимости эксперимента. В более сложных вариантах начальные условия
блоков инициализации должны определять такой момент начала сбора
статистики, когда режим работы близок к стационарному.
Критерий завершения эксперимента определяет момент пре-
кращения работы программы. В простейших моделях это может быть
достижение заданного значения таймера или числа обслуженных заявок и т.п. В более сложных вариантах управление длительностью эксперимента должно определяться погрешностями получаемых результатов.

57
4.4. Обобщенные алгоритмы имитационного моделирования
В соответствии со способами изменения модельного времени различают два основных алгоритма:
– алгоритм моделирования с постоянным шагом модельного
времени. В этом алгоритме модельное время изменяется с помощью
фиксированного приращения ∆t, поэтому в литературе этот алгоритм
также называют алгоритмом моделирования по принципу ∆t;
– алгоритм событийного моделирования. В этом алгоритме мо-
дельное время изменяется скачками разной величины, т.е. от события
к событию.
4.1.4. Алгоритм моделирования с постоянным шагом
модельного времени
Обобщенная схема моделирующего алгоритма имеет следующий
вид, представленный на рис. 4.9.
Исходное состояние моделируемой системы описывают значения
ее параметров Zi(t0) в начальный момент модельного времени t0. Процесс функционирования системы анализируется по смене состояний,
описываемых значениями этих параметров Zi(t) в каждый момент мо-
дельного времени t. Для этого на каждом шаге моделирования таймер
модельного времени получает некоторое приращение ∆t. Затем, если в
системе произошли некоторые события, определяется новое состояние, которое становится текущим. Для определения нового состояния
используются необходимые математические и алгоритмические соотношения, включая датчики случайных чисел.
Для каждого нового значения модельного времени измеряются,
фиксируются и обрабатываются требуемые выходные характеристики
(с помощью соответствующих счетчиков).
В качестве примера, иллюстрирующего такой подход к моделированию, для простой модели СМО (очередь - прибор) построим временную диаграмму (рис. 4.10), отражающую изменение ее состояния,
где в окружностях показаны номера поступивших в систему заявок.
Здесь в каждый момент ti просматриваются все элементы модели
(их параметры) и проверяется возможность наступления какого-либо
события (вход новой заявки в систему, освобождение обслуживающего прибора, изменение длины очереди и т.п.). Если обнаружено наступление данных событий, то выполняется изменение состояния модели.
Основная сложность использования такого алгоритма моделирования
заключается в определении величины ∆t. Очевидно, что при малых ∆t
будет выполняться большое число просмотров модели без изменения

58
Да
Нет
Начало
Ввод исходных
данных Zi(t0)
Установка модельного
времени t = t
0
Изменение модельно-
го времени
t = t + ∆t
Изменения в
модели?
Определение ново-
го состояния
Zi(t) = Zi(t+∆t)
Конец
моделирования?
Вывод резуль-
татов
Конец
Да
Нет
ее состояния. При больших ∆t, наоборот, можно пропустить кратковременные изменения состояния (например, если время обслуживания
заявки меньше величины ∆t).
Рис. 4.9

59
Рис. 4.10
4.4.2. Обобщенный алгоритм событийного моделирования
В этом алгоритме анализируются только смены состояния модели, которые происходят вследствие наступления соответствующих
событий. Процесс имитации во времени включает следующие действия:
1. Определяется событие с минимальным временем наступления,
т.е. наиболее раннее событие.
2. Таймер модельного времени получает значение, равное вре-
мени наступления наиболее раннего события.
3. Определяется тип этого события.
4. В зависимости от типа события производятся изменения в мо-
дели (по загрузке обслуживающих устройств и продвижению
заявок в системе). Также планируются моменты наступления
будущих событий. Действия, перечисленные в пункте 4, называются реакцией модели на событие.
5. Пункты 1-4 повторяются до окончания моделирования.
Обобщенная схема алгоритма событийного моделирования приведена на рис. 4.11.
Временная диаграмма, описывающая состояние моделируемой
системы, подобно рассмотренному примеру будет иметь следующий
вид, представленный на рис. 4.12.

60
Реакция модели на
событие 1-го типа
Конец модели-
рования?
Вывод
результата
Конец
Нет
Да
Реакция модели на
событие 2-го типа
Реакция модели на
событие n-го типа
Начало
Ввод исходных
данных
Планирование первых заявок
от всех источников
Определение наиболее
раннего события
Изменения таймера мо-
дельного времени
Определение
типа события
Рис. 4.11
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
