Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Книги / MODELIROVANIE_SISTEM_12.docx
Скачиваний:
240
Добавлен:
17.06.2016
Размер:
3.17 Mб
Скачать

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

Напомним, что рассматривается СМО с отказами (т.е. без буфера), имеющая два обслуживающих прибора. Интервал  между заявками распределен по экспоненциальному закону с математическим ожиданием 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 класс"ПЗ"

При моделировании по схеме процессов за основу берется понятие процесса.

Основные принципы построения моделирующего алгоритма.

Процесс отражает поведение одного объекта (источника, заявки, детали, рыси, зайца и т.п.), а объектов в системе много.

Параллельно развиваются несколько процессов.

Имитация на одном процессоре процессов производится поочередно.

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

Продвижение процессов по системному времени можно осуществлять по принципу t или по принципу особых моментов.

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

Календарь указывает моменты активизации процессов.

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

Календарь содержит и момент активизации процесса Т(J) и метку очередной его фазы M(J) , где J -номер процесса (J=f,...,K ). К - максимальное число возможно дновременно существующих процессов (емкость календаря).

Процессы могут быть постоянными (т.е. развиваться бесконечно долго) и временными.

Временный процесс создается в некоторый момент времени, существует какое-то время, после чего ликвидируется. Одна из фаз процесса может представлять собой создание нового процесса.

При создании процесса отыскивается свободное место в календаре, и номер этого места становится номером процесса. После ликвидации процесса его место в календаре освобождается. Признаком свободного места в календаре может быть нуль в ячейке, отведенной для обозначения (метки) очередной фазы процесса.

За один шаг производится поочередный просмотр всех процессов и имитация тех из них, для которых созрели условия, в частности наступило время исполнения очередной фазы.

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

Под меньшим номером может быть создан процесс и помещен на свободное место в календаре, чем текущий процесс.

В обоих случаях требуется повторный просмотр процессов в рамках того же шага.

Флаг - двоичную переменную, удобно использовать для организации повторного просмотра. Этой переменной перед началом просмотра присваивается значение единицы ("подъем" флага). Освобождение ресурса или создание нового процесса влечет за собой "сброс" флага в нуль. Завершение шага и переход к следующему шагу производится только, если флаг остался поднятым.

Термин "процесс" имеет два разных смысла: процесс как алгоритм и процесс как структура данных.

Чаще термин процесс применяют к структуре данных, а алгоритм называют классом процессов (классом объектов), поскольку процесс как алгоритм относится ко всему множеству процессов одинакового типа, а процесс как структура данных описывает конкретного представителя этого множества.

Алгоритм шага содержит следующие части:

запоминание значений некоторых переменных,

определение момента активизации очередного процесса,

имитация очередной фазы (фаз) процесса, пополнение статистик, планирование событий,

создание и ликвидация временных процессов,

«подъем и сбрасывание» флага».

Каждому классу процессов соответствует блок в алгоритме имитации, а каждому процессу и очередной фазе процесса - определенное место в календаре. Алгоритм шага состоит в поочередном просмотре всех процессов и имитация тех из них, для которых наступило время исполнения очередной фазы.

При той и при другой схеме построения моделирующего алгоритма до начала шагов производятся ввод исходных данных и установка начальных значений переменных, а по окончании шагов - подсчет оценок искомых характеристик по накопленным статистикам и выдача результатов.

Схема процессов удобно реализуется с использованием объектно-ориентированного подхода, который широко применяется при построении мощных инструментальных систем моделирования.

Монитор. Часть программы, управляющая последовательностью выполнения отдельных блоков программы в процессе имитации.

Принцип построения монитора у рассматриваемых схем построения моделирующего алгоритма одинаковый - повелительный.

Повелительный (императивный) принцип состоит в том, что для предстоящих событий заранее определяется время их наступления (оно записываются в календарь), и события имитируются, когда приходит их время. Календарь как бы предписывает, в какие моменты должны происходить события, в каком порядке их имитировать - отсюда и название принципа.