Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
konspekt_matematicheskoe_modelirovanie.doc
Скачиваний:
37
Добавлен:
22.02.2015
Размер:
3.61 Mб
Скачать

Организация квазипараллелизма просмотром активностей

Блок-схема моделирования:

Примечания к схеме:

* – в простейшем случае это проверка по совпадению времени инициализации с ts ;

** – новая проверка необходима, т. к. выполнение некоторых активностей может открыть условия инициализации других активностей в тот же момент ts. Например, в момент ts 1-й самолёт готов делать разгон и боевой разворот АК12. 2-й самолёт в принципе готов к взлёту, но пока предыдущий не начал разгона и боевого разворота – нельзя! Поэтому в список * АК21 не попадёт (там будет АК12), а в список ** попадёт. В итоге в ts оба начнут свои действия одновременно, но процессор выполнит их последовательно.

Два способа изменения (протяжки) системного времени

  1. До следующего ближайшего события (синхронно-событийный способ):

.

  1. Способ фиксированного шага (синхронно-временной):

,

и все активности с временами инициализации, попадающими между старым моментом и новым , считаются готовыми к инициализации и как бы одновременными. Их выполнение происходит в неопределённом порядке. Ясно, что при этом могут возникать ошибки моделирования.

Пример 2. СМО с одним местом в очереди. АЛi1, АЛi2 – алгоритм источника: появление заявки, постановка её в очередь или потеря, если места в очереди нет. АЛk1 – алгоритм канала обслуживания: готовность принять заявку.

На самом деле потери клиента быть не должно, но если в момент алгоритмы выполнять так: АЛi1, АЛi2, АЛk1, то АЛi2 уже вызовет потерю. Поэтому желательно брать поменьше. Синхронно-временной способ применяется, когда события появляются через фиксированные промежутки времени или когда их много и они появляются группами. Во всех остальных случаях применяется синхронно-событийный способ.

Пример 5.3. СМО (M|M|1|∞). В таком четырёхпольном обозначении первое поле характеризует распределение интервалов времени между заявками источника (M – экспоненциальное, т. е. это пуассоновский поток); второе поле характеризует распределение времён выполнения заявок каналами обслуживания; третье – число каналов; четвёртое – число мест в очереди.

Пусть интенсивность потока заявок la = 9 заявок/час; интенсивность обслуживаний mu = 12 заявок/час; время моделирования tsmax = 100 час.

Это подпрограмма проверки условий инициализации активностей и создания списка.

Активность источника. Если это не нулевая заявка (которой фактически не было), то ставит её в очередь, учитывает число заявок, модифицирует своё локальное время появления следующей заявки.

Активность канала. Если очередь не пуста, если канал был занят, то выпуск обслуженной заявки, впуск новой, канал – в состояние «занят», модифицирует своё локальное время окончания обслуживания. Если очередь была пуста, если канал был занят, то выпуск обслуженной, канал – «свободен», время очередной активизации – по активизации источника. Пока его устанавливаем равным tsmax, чтобы не ставить понапрасну в список инициализации в то же время.

В результате имитации получена оценка средней длины очереди 2.987 заявок. Этот результат будет обсуждаться в разделе 6.4. Оценка стандартного отклонения длины очереди – 3.447 заявок.

Эту программу легко обобщить на моделирование системы (reg|M|1|∞), с регулярным потоком заявок и (M|M|1|m), с конечным числом мест в очереди, а также на протяжку системного времени синхронно-временным способом.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]