Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МОДЕЛИРОВАНИЕ СИСТЕМ 2014.docx
Скачиваний:
157
Добавлен:
09.02.2015
Размер:
2.14 Mб
Скачать

5.4. Моделирование смо с отказами по схеме процессов

Напомним, что рассматривается СМО с отказами (т.е. без буфера), имеющая два обслуживающих прибора. Интервал  между заявками распределен по экспоненциальному закону с математическим ожиданием m. Время обслуживания обсл постоянно. Оценивается вероятность потери заявки Рпот, распределение числа занятых приборов (Р0, Р1, Р2) и коэффициент загрузки прибора Рзп . Обозначения будут те же, что в алгоритме из раздела 2.3.1, и немного добавлено: Ксп,- количество свободных приборов, К - максимальное число одновременно существующих процессов (емкость календаря) и др. Календарь теперь указывает не моменты наступления событий, а моменты активизации процессов. Активизацией процесса называется выполнение алгоритма, соответствующего очередной фазе этого процесса. Календарь содержит и момент активизации процесса Т(J) и метку очередной его фазы M(J) , где J -номер процесса (J=f,...,K ).

В приведенном ниже алгоритме первая цифра метки соответствует номеру процесса, а вторая - номеру фазы в этом процессе.

Моделирование смо с отказами по схеме процессов

ввод данных ( m, обсл, правило остановки)

установка начальных значений переменных, в том числе заполнение календаря (N:=0, ТT:=0, КЗ:=0, КПОТ:=0,

S0:=0, S1:=0, S2:=0, T(J)=0,

J=1..K; M(1):=11; M(J):=0, J:=2..K, KСП:=2)

do шаг имитации (раскрыт ниже)

until выполнено условие остановки

end - do

вычисление оценок

выдача результатов

end-моделир.

Шаг имитации

увеличение номера шага (N:=N+1)

запоминание особого момента ( TL:=TT)

определение очередного особого момента (Тт:= minT(J)|M(J)0)

пополнение суммарного времени пребывания в определенном состоянии (y:=2-KСП; ДТ:=ТТL; Sy:= Sy +ДT)

установка текущего номера процесса в нуль (JТ: = 0 )

do определение очередного номера процесса (JT:=JT+1)

подъем флага (IFL:= 1)

if процесс с номером JT существует (М(JT)0)

then if запланированный момент активизации совпадает с текущим моментом (T(JТ=TТ)

then имитация процесса о номером JТ, начиная с фазы

М(JТ) до тех пор, пока это возможно по алгоритму соответствующего класса

end if

end if

if флаг сбросился ( IFL = 0 )

then возврат к началу списка процессов (JТ := 0)

end if

until просмотрен и, если надо, имитирован последний процесс, а флагостался

поднятым (JТ=K & IFL =1)

end do

end шаг

Класс процессов "генерирование заявок источником"

{предполагается единственный источник бесконечной емкости)

(11) подготовка заявки в течение времени :

генерирование интервала (обращение к датчику случайных

чисел, реализующему экспоненциальное распределение с мате-

матическим ожиданием m)

планирование выдачи заявки источником (T(1):=T(1)+ ;

M(1):=12 процесс этого класса существует постоянно,

причем в единственном числе; поэтому ему постоянно

отведена группа под номером 1}

(12) создание процесса "прохождение заявки":

поиск свободной группы и присваивание ее номера перемен

ной Jv {группа с номером J свободна, если M(J)=0}

создание процесса под номером Jv (T(Jv):=T(1); M(Jv):=21)

пополнение счетчика заявок (Kз:=Kз+1 )

установка указателя активной фазы на начало процесса

(М(1):=11))

end класс "ГЗИ"

Класс процессов "прохождение заявки"

переход к запланированной фазе (goto М (.Jт))

(21) занятие прибора:

if есть свободный прибор ( Кcп>0)

then занятие прибора (Ксп :=Кcп-1),

установка на обслужи вание (М(Jт):=22)

else потеря заявки (Кпот:=Кпот+1),

установка на ликвидацию процесса (M(Jт):=24)

end if

переход к соответствующей фазе (gо to М Jт) )

(22) обслуживание заявки в течение времени обсл:

планирование освобождение прибора (Т(Jт):=Т(Jт)+обсл)

прерывание до наступления запланированного момента (goto end класс"ПЗ")

[23) освобождение прибора:

увеличение числа свободных приборов (Ксп:= Ксп+1)

сброс флага ( lFL:= 0)

(24) ликвидация процесса (M(Jт):=0)

end класс"ПЗ"

Сопоставим схему событий и схему процессов, так как их можно считать конкурирующими.

Схема событий более стройна: события не пересекаются, за один шаг имитируется одно событие, события имитируется в хронологическом порядке, алгоритм шага делится на этапы с четким функциональным назначением (имитация события, пополнение статистик, планирование новых событий). Однако в сложных ситуациях довольно трудно сформировать перечень типов событий и правильно разработать соответствующие им части алгоритма.

С этой точки зрения схема процессов удобнее, так как не требует при разработке алгоритма учитывать сразу все, что может происходить в системе, а допускает раздельную разработку отдельных процессов. Особенно упрощается разработка имитационных моделей при использовании универсальной системы моделирования, когда пользователю требуется только описать последовательность событий и работ в процессах, а учет взаимодействия процессов, сбор статистики, управление порядком имитации процессов берет на себя система моделирования. Схема процессов не позволяет выделить функционально различные части алгоритма: пополнение статистик и планирование событий исследуют с операциями смены состояний в рамках одной фазы процесса. Это чревато упущениями при разработке алгоритма.