Модель сети массового обслуживания

 

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ

КУРСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

Кафедра программного обеспечения и администрирования

информационных систем










Контрольная работа

по дисциплине

"Компьютерное моделирование"


Студент Крутоверцева З.С.

Преподаватель: Орлова М.С.

Преподаватель: Бабкин Е.А.










2010 г.

1. Задание


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


Номер вариантаВариант структуры СМОТип накопителя Н1Тип накопителя Н2Окончание процесса моделиро-вания (по числу заявок или по времени)Т обслуживания каналаЗакон распред.Интервал или мат. ожидание15СМО5Бесконечн.КонечныйПо ч.з.экспон.500

Модель сети массового обслуживания:


Рисунок 1. Двухфазная сеть массового обслуживания

N1 - входной поток заявок на обслуживание из источника 1 - входной поток заявок на обслуживание из источника 2- выходной поток обслуженных заявок из источника 1 - выходной поток обслуженных заявок из источника 2- выходной поток заявок, получивших отказ в обслуживании


Событийный граф СМО в программно-реализуемой форме

нпм - событие начала моделирования,кпм - событие конца моделирования,нп1 - событие начала процесса (событие появления заявки из источника1),нп2 - событие начала процесса (событие появления заявки из источника2),кпN3 - событие конца процесса для обслуженной заявки,кпN5 - событие конца процесса для обслуженной заявки,на1 - событие начала активности (обслуживание заявки в 1м канале),на2 - событие начала активности (обслуживание заявки в 2м канале)ка1 - событие конца активности (конец обслуживания в 1м канале),ка2 - событие конца активности (конец обслуживания в 2м канале),зS1 - событие занятия средства (канал 1),зS2 - событие занятия средства (канал 2),оS1 - событие освобождения средства (канал 1),оS2 - событие освобождения средства (канал 2),зQ1 - событие занятия очереди (накопитель 1),зQ2 - событие занятия очереди (накопитель 2),оQ1 - событие освобождения очереди(накопитель 1),оQ2 - событие освобождения очереди(накопитель 2).

Р1 - анализ состояния средства Sr(канала 1), значения: Зан - "занято", Св - "свободно";

Р2 - анализ состояния очереди Q1, значения: Пуст - "пуста", Непуст - "непуста";

Р3 - анализ состояния, значения: N1, N2;

Р4- анализ состояния средства Sr(канала 2), значения: Зан - "занято", Св - "свободно";

Р5 - анализ количества обработанных заявок в сети (сравнение с достижением желаемого количества К);

Р6- анализ состояния очереди Q2, значения: Пуст - "пуста", Непуст - "непуста";

Р7 - анализ количества обработанных заявок в сети (сравнение с достижением желаемого количества К);

Дуги второго типа помечаются величинами задержки:

Т0 - время поступления первой заявки после начала моделирования;

Тпз1 - интервал времени между поступлениями заявок от источника 1;

Тпз2 - интервал времени между поступлениями заявок от источника 2;

Та1 - время обслуживания заявки в канале 1(длительность активности 1);

Та2 - время обслуживания заявки в канале 2(длительность активности 2);


Рисунок 2. Событийный граф СМО

Рисунок 3. Событийный граф СМО в программно-реализуемой форме


Макрособытийный граф


После преобразования событийного графа в программно-реализуемой форме к форме макрособытий, получается граф, изображенный на рисунке 3.


Рисунок 4. Событийный граф на уровне макрособытий

Программная модель СМО

model_SMO (input,output);crt,graph,printer,dos;=record: integer;{приоритет текущего пpоцесса}:longint;{уазатель списка текущих пpоцессов}:integer;: array [1..1000] of PROCESS;:longint; {номеp сpедства}:longint; {номеp сpедства}: longint;{номеp очеpеди}: longint;{номеp очеpеди}: longint;{текущее вpемя моделиpования}:longint; {максимальное вpемя обслуживания заявки в канале CМО}:longint;{текущее вpемя обслуживания заявки в канале1 CМО}:longint;{текущее вpемя обслуживания заявки в канале2 CМО}:longint; {вpемя поступления пеpвой заявки1 в СМО}:longint; {вpемя поступления пеpвой заявки2 в СМО}:longint; {сpеднее вpемя интеpвала поступления заявок}:longint; {номеp событийной секции}:longint; {номеp текущего пpоцесса}:longint; {число пpиоpитетов в СМО}:integer; {пеpеменная цикла}:integer; {указатель списка текущих пpоцессов},L:integer;

{$i smpl_new.pas}E0;

{----------------- ИНИЦИИРУЮЩАЯСЕКЦИЯ ---------------------}

{----- СОБЫТИЕ 0 - НАЧАЛО ПРОЦЕССА МОДЕЛИРОВАНИЯ -----------}:=50;Tob:=500;N10:=2;K:=1000;T0:=50;T1:=100;:=1;

{---- начальнаяустановка списка текущих пpоцессов ---------}I0:=1 to 999 do[I0].S0:=I0+1;[1000].S0:=0;:=1;

{---- начальная установка системы моделиpования------------};

{----------- объявление сpедства и очеpеди ------------}('Sredstvo1',Sr1);('Ochered1',Q1);('Sredstvo2',Sr2);('Ochered2',Q2);

{---------- планиpование пеpвого события -------------------}

{ schedl(1,T0,0);(2,T1,0);}(2,50,0);(1,100,0);(2,150,0);(2,750,0);(2,800,0);(1,1500,0);

{используются для детерменированного тестирования};E1;

{---------- СОБЫТИЕ 1 - ПОЯВЛЕНИЕ ЗАПРОСА В СМО от И1 -----------}

{---------- анализ переполнения таблицы процессов ---------}N0=0 THEN begin write('ОШИБКА 10'); exit; end;

{----------- формирование номера нового процесса ----------}:=N0;:=PR[N0].S0;

{------------- формирование атрибутов процесса ------------}

{ PR[J0].PRIORITET:=irand (1,N10);}[J0].Ist:=1;[J0].PRIORITET:=1;{Оператор используется для детеpминиpованного тестирования}

{------------- планирование следующей заявки --------------}(1,irand(0,TZ),0);

{---------------- планирование события 3 ------------------}(3,0,j0);;E2;

{---------- СОБЫТИЕ 2 - ПОЯВЛЕНИЕ ЗАПРОСА В СМО от И2 -----------}

{---------- анализ переполнения таблицы процессов ---------}N0=0 THEN begin write('ОШИБКА 10'); exit; end;

{----------- формирование номера нового процесса ----------}:=N0;:=PR[N0].S0;

{------------- формирование атрибутов процесса ------------}

{ PR[J0].PRIORITET:=irand (1,N10);}[J0].Ist:=2;[J0].PRIORITET:=2;{Оператор используется для детеpминиpованного тестирования}

{------------- планирование следующей заявки --------------}(2,irand(0,TZ),0);

{---------------- планирование события 2 ------------------}(3,0,j0);;E3;

{--------------СОБЫТИЕ 3 --------------}

{----------------- анализ состояния средства 1-------------}status(Sr1)=0 then

{--------------------- занятие средства-------------------}(Sr1,j0);

{ Ttob1:=irand (0,Tob);}:=150;{Оператор используется для детеpминиpованного тестирования}

{---------------- планирование события ------------------}(4,Ttob1,j0)

{------------ помещение процесса в очередь 1 ----------}(Q1,j0,PR[J0].PRIORITET);;E4;{----- СОБЫТИЕ E4 ------}

{-------------------------- освобождение сpедства1 ----------------------}(Sr1);(5,0,j0);

{--------------------------- анализ состояния очеpеди ------------------}length(q1)<>0 THEN:=head(q1);

{----------------- zanaytie состояния средства 1-------------}(Sr1,j0);

{ Ttob1:=irand (0,Tob);}:=150;{Оператор используется для детеpминиpованного тестирования}

{---------------- планирование события ------------------}(4,Ttob1,j0);E5;{--------------СОБЫТИЕ 5 --------------}

{----------------- проверка условия N --------------}pr[j0].Ist=1 then:=k-1;

{----------------------- конец пpоцесса-------------------}[J0].S0:=N0;:=J0;K=0 then schedl(7,0,0);

{----------------- анализ состояния сpедства --------------}status(Sr2)=0 then(Sr2,j0);

{Ttob1:=irand (0,Tob);}:=500;{Оператор используется для детеpминиpованного тестирования}

{---------------- планирование события ------------------}(6,Ttob1,j0)

{--------------------------- анализ состояния очеpеди ------------------}length(q2)<L THEN

{------------ помещение процесса в очередь диска ----------}(Q2,j0,PR[J0].PRIORITET)

{----------------------- конец процесса -------------------}[J0].S0:=N0;:=J0;;;E6;{----- СОБЫТИЕ E6 ------}

{-------------------------- освобождение сpедства1 ----------------------}(Sr2);

{-------------------------- конец процесса ----------------------}[J0].S0:=N0;:=J0;:=k-1;k=0 then schedl(7,0,0);

{--------------------------- анализ состояния очеpеди ------------------}length(q2)<>0 THEN:=head(q2);

{----------------- zanaytie состояния средства 1-------------}(Sr2,j0);

{ Ttob2:=irand (0,Tob);}:=500;{Оператор используется для детеpминиpованного тестирования}

{---------------- планирование события ------------------}(6,Ttob2,j0);;E7;

{-------- СОБЫТИЕ 7 - КОНЕЦ ПРОЦЕССА МОДЕЛИРОВАНИЯ --------};;{$i+u+r}

{-------------------- УПРАВЛЯЮЩАЯ СЕКЦИЯ -------------------};(E,J0);E of

: E1;

: E2;

: E3;

: E4;

: E5;

: E6;

: E7;E=7;.


1.Начало нового процесса, когда средство свободно;

2.Начало нового процесса, когда средство занято;

.Конца процесса, когда очередь пуста;

.Конца процесса когда очередь не пуста - в очереди ожидают обслуживания;

.Конец процесса, когда заявка постуила из первого источника и число заявок меньше К - отказ в обслуживании заявок;

.Конец процесса, когда заявка постуила из первого источника и число заявок равно К;

.Начало нового роцесса, когда заявка поступила из второго источника, средство занято и очередь не полна;

.Начало нового процесса, когода заявка поступила из второго источника, средство занято и очередь полна- полна - отказ в обслуживании заявки;

.Начало нового процесса, когда заявки поступают из второго источника и средство свободно;

.Конец процесса, когда заявки поступили из второго источика и очередь пуста;

.Конца процесса когда заявки поступили из второго источника и очередь не пуста - в очереди ожидают обслуживания заявки;

.Конца процесса моделирования, когда количество заявок будет равно максимальному количеству заявок k.


Рисунок 5. Временная диаграмма детерминированного теста


Детерминированный тест


Для проведения детерминированного теста необходимо задать следующую последовательность поступления заявок:


Время событияНомер событияНомер процесса502010010150207502080020150010

В соответствии с временной диаграммой правильная последовательность событий должна быть следующей:


Время событияНомер событияНомер процесса502050311001010032150201503320052200413505135043500537006070063750217503380020800329005190042105052120063150010150032165061165070170052170070

Трассировка модели


В результате прогона получили следующее:

Трассировка модели

Время: Событие: Процесс:

.00 2 0

Трассировка модели

Время: Событие: Процесс:

.00 3 1

Трассировка модели

Время: Событие: Процесс:

.00 1 0

Трассировка модели

Время: Событие: Процесс:

.00 3 2

Трассировка модели

Время: Событие: Процесс:

.00 2 0

Трассировка модели

Время: Событие: Процесс:

.00 3 3

Трассировка модели

Время: Событие: Процесс:

.00 5 2

Трассировка модели

Время: Событие: Процесс:

.00 4 1

Трассировка модели

Время: Событие: Процесс:

.00 5 1

Трассировка модели

Время: Событие: Процесс:

.00 4 3

Трассировка модели

Время: Событие: Процесс:

.00 5 3

Трассировка модели

Время: Событие: Процесс:

.00 6 0

Трассировка модели

Время: Событие: Процесс:

.00 6 3

Трассировка модели

Время: Событие: Процесс:

.00 2 1

Трассировка модели

Время: Событие: Процесс:

.00 3 3

Трассировка модели

Время: Событие: Процесс:

.00 2 0

Трассировка модели

Время: Событие: Процесс:

.00 3 2

Трассировка модели

Время: Событие: Процесс:

.00 5 1

Трассировка модели

Время: Событие: Процесс:

.00 4 2

Трассировка модели

Время: Событие: Процесс:

.00 5 2

Трассировка модели

Время: Событие: Процесс:

.00 6 3

Трассировка модели

Время: Событие: Процесс:

.00 1 0

Трассировка модели

Время: Событие: Процесс:

.00 3 2

Трассировка модели

Время: Событие: Процесс:

.00 5 2

Трассировка модели

Время: Событие: Процесс:

.00 7 0

Трассировка модели

Время: Событие: Процесс:

.00 6 1

Трассировка модели

Время: Событие: Процесс:

.00 7 0


Анализ результатов


При наблюдении работы модели было установлено ее соответствие эталонным результатам, то есть модель работает верно.


2. Задание

массовое обслуживание программная модель

1.Изучить методические указания к лабораторной работе.

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

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

3.Дополнить разработанную программную модель операторами необходимыми для определения длительности прогона m. Выполнить пробные прогоны разработанной программной модели при различных уровнях факторов для определения длительности прогона m.

.Выполнить машинный эксперимент. Для этого, задавая каждый раз новые уровни факторов, выполнить n запланированных прогонов. Результаты каждого прогона распечатать.

5.Выполнить анализ и интерпретацию результатов. Вычислить для каждого рабочего прогона значение об.с. Построить графики зависимости об.с, ож, Qср, Qmax от факторов. Выполнить качественный анализ зависимостей: объяснить характер и причины зависимости.


Номер в группеДоверительный интервал (%)Доверительная вероятность1590.975

Планирование эксперимента

Тоб Tз50100250375500600123456506789107001112131415900161718192010002122232425

Номер прогонаTзТоб1. 600502. 6001003. 6002504. 6003755. 6005006. 6505007. 7005008. 9005009. 1000500

1 прогон

Рисунок 6


2 прогон


Рисунок 7


3 прогон


Рисунок 8


4 прогон


Рисунок 9.

5 прогон


Рисунок 10


6 прогон


Рисунок 11


7 прогон


Рисунок 12

8 прогон


Рисунок 13


9 прогон


Рисунок 14


Результаты прогонов

NТоб.к1Тоб.к2Тож1Тож2Qср1Qср21252517110,0160,0022525142320,0760,013132123670723,8430,051419418217032116160,6370,074525323820337152351,1520,067625226123850147284,0260,081725025724294160234,8290,09382472511213716656,560,105925224419691617,520,083

NQm1Qm2Nн1Nн2Nк1Nк2Тоб.с.1311382610004867823127745100251117732318571071008489997430311014126101848617524568611016144101646020980657511034143103449424510743911032150103247424961898110261601026493128019201100013510235052626

Тож.ср1Тож.ср2QmТзТоб.к2,3460,5884773746005011,61077842,818003914600100569,63293715,75460122460025016965,076630,07407413046003752033747,58260876876005002385042,55263165766505002429450,63291144407005001213753,8742394999005001924,7311843,039604211000500

Графики зависимостей


Графики зависимостей Tc,Tож,Qcр от факторов з, об.к приведены на рисунках 15- 26.


Рисунок 15


Рисунок 16


Рисунок 17


Рисунок 18


Рисунок 19


Рисунок 20


Листинг измененной программы

model_SMO (input,output);crt,graph,printer,dos;=record: integer;{приоритет текущего пpоцесса}:longint;{уазатель списка текущих пpоцессов}:longint;;Tst:array[1..500] of real = (12.71, 4.30, 3.18, 2.78, 2.57, 2.45,

.36, 2.31, 2.26, 2.23, 2.20, 2.18,

.16, 2.14, 2.13, 2.12, 2.11, 2.10,

.09, 2.09, 2.08, 2.07, 2.07, 2.06,

.06, 2.06, 2.05, 2.05, 2.04, 2.04,

.04, 2.04, 2.04, 2.04, 2.04, 2.04,

.04, 2.04, 2.04, 2.02, 2.02, 2.02,

.02, 2.02, 2.02, 2.02, 2.02, 2.02,

.02, 2.02, 2.02, 2.02, 2.02, 2.02,

.02, 2.02, 2.02, 2.02, 2.02, 2.00,

.00, 2.00, 2.00, 2.00, 2.00, 2.00,

.00, 2.00, 2.00, 2.00, 2.00, 2.00,

.00, 2.00, 2.00, 2.00, 2.00, 2.00,

.00, 2.00, 2.00, 2.00, 2.00, 2.00,

.00, 2.00, 2.00, 2.00, 2.00, 2.00,

.00, 2.00, 2.00, 2.00, 2.00, 2.00,

.00, 2.00, 2.00, 2.00, 2.00, 2.00,

.00, 2.00, 2.00, 2.00, 2.00, 2.00,

.00, 2.00, 2.00, 2.00, 2.00, 2.00,

.00, 2.00, 2.00, 2.00, 2.00, 1.98,

.96, 1.96, 1.96, 1.96, 1.96, 1.96,

.96, 1.96, 1.96, 1.96, 1.96, 1.96,

.96, 1.96, 1.96, 1.96, 1.96, 1.96,

.96, 1.96, 1.96, 1.96, 1.96, 1.96,

.96, 1.96, 1.96, 1.96, 1.96, 1.96,

.96, 1.96, 1.96, 1.96, 1.96, 1.96,

.96, 1.96, 1.96, 1.96, 1.96, 1.96,

.96, 1.96, 1.96, 1.96, 1.96, 1.96,

.96, 1.96, 1.96, 1.96, 1.96, 1.96,

.96, 1.96, 1.96, 1.96, 1.96, 1.96,

.96, 1.96, 1.96, 1.96, 1.96, 1.96,

.96, 1.96, 1.96, 1.96, 1.96, 1.96,

.96, 1.96, 1.96, 1.96, 1.96, 1.96,

.96, 1.96, 1.96, 1.96, 1.96, 1.96,

.96, 1.96, 1.96, 1.96, 1.96, 1.96,

.96, 1.96, 1.96, 1.96, 1.96, 1.96,

.96, 1.96, 1.96, 1.96, 1.96, 1.96,

.96, 1.96, 1.96, 1.96, 1.96, 1.96,

.96, 1.96, 1.96, 1.96, 1.96, 1.96,

.96, 1.96, 1.96, 1.96, 1.96, 1.96,

.96, 1.96, 1.96, 1.96, 1.96, 1.96,

.96, 1.96, 1.96, 1.96, 1.96, 1.96,

.96, 1.96, 1.96, 1.96, 1.96, 1.96,

.96, 1.96, 1.96, 1.96, 1.96, 1.96,

.96, 1.96, 1.96, 1.96, 1.96, 1.96,

.96, 1.96, 1.96, 1.96, 1.96, 1.96,

.96, 1.96, 1.96, 1.96, 1.96, 1.96,

.96, 1.96, 1.96, 1.96, 1.96, 1.96,

.96, 1.96, 1.96, 1.96, 1.96, 1.96,

.96, 1.96, 1.96, 1.96, 1.96, 1.96,

.96, 1.96, 1.96, 1.96, 1.96, 1.96,

.96, 1.96, 1.96, 1.96, 1.96, 1.96,

.96, 1.96, 1.96, 1.96, 1.96, 1.96,

.96, 1.96, 1.96, 1.96, 1.96, 1.96,

.96, 1.96, 1.96, 1.96, 1.96, 1.96,

.96, 1.96, 1.96, 1.96, 1.96, 1.96,

.96, 1.96, 1.96, 1.96, 1.96, 1.96,

.96, 1.96, 1.96, 1.96, 1.96, 1.96,

.96, 1.96, 1.96, 1.96, 1.96, 1.96,

.96, 1.96, 1.96, 1.96, 1.96, 1.96,

.96, 1.96, 1.96, 1.96, 1.96, 1.96,

.96, 1.96, 1.96, 1.96, 1.96, 1.96,

.96, 1.96, 1.96, 1.96, 1.96, 1.96,

.96, 1.96, 1.96, 1.96, 1.96, 1.96,

.96, 1.96, 1.96, 1.96, 1.96, 1.96,

.96, 1.96, 1.96, 1.96, 1.96, 1.96,

.96, 1.96, 1.96, 1.96, 1.96, 1.96,

.96, 1.96, 1.96, 1.96, 1.96, 1.96,

.96, 1.96, 1.96, 1.96, 1.96, 1.96,

.96, 1.96, 1.96, 1.96, 1.96, 1.96,

.96, 1.96, 1.96, 1.96, 1.96, 1.96,

.96, 1.96, 1.96, 1.96, 1.96, 1.96,

.96, 1.96, 1.96, 1.96, 1.96, 1.96,

.96, 1.96, 1.96, 1.96, 1.96, 1.96,

.96, 1.96, 1.96, 1.96, 1.96, 1.96,

.96, 1.96, 1.96, 1.96, 1.96, 1.96,

.96, 1.96, 1.96, 1.96, 1.96, 1.96,

.96, 1.96, 1.96, 1.96, 1.96, 1.96,

.96, 1.96, 1.96, 1.96, 1.96, 1.96,

.96, 1.96, 1.96, 1.96, 1.96, 1.96,

.96, 1.96, 1.96, 1.96, 1.96, 1.96,

.96, 1.96, 1.96, 1.96, 1.96, 1.96,

.96, 1.96, 1.96, 1.96, 1.96, 1.96,

.96, 1.96);=0.975;: array [1..1000] of PROCESS;:longint; {номеp сpедства}:longint; {номеp сpедства}: longint;{номеp очеpеди}: longint;{номеp очеpеди}: longint;{текущее вpемя моделиpования}:longint; {максимальное вpемя обслуживания заявки в канале CМО}:longint;{текущее вpемя обслуживания заявки в канале1 CМО}:longint;{текущее вpемя обслуживания заявки в канале2 CМО}:longint; {вpемя поступления пеpвой заявки1 в СМО}:longint; {вpемя поступления пеpвой заявки2 в СМО}:longint; {сpеднее вpемя интеpвала поступления заявок}:longint; {номеp событийной секции}:longint; {номеp текущего пpоцесса}:longint; {число пpиоpитетов в СМО}:integer; {пеpеменная цикла}:integer; {указатель списка текущих пpоцессов},L:integer;:longint;{ёєььр тЁхьхэ юсёыєцштрэш }:longint;{ёєььр ътрфЁрЄют тЁхьхэ юсёыєцштрэш }:array[1..1000] of real;{юЎхэър ёЁхфэхътрфЁрЄшўхёъюую}:array[1..1000] of real;{юЎхэър фютхЁшЄхы№эюую шэЄхЁтрыр}:array[1..1000] of real;{юЎхэър юЄэ.фютхЁшЄхы№эюую шэЄхЁтрыр}:integer; {яхpхьхээр Ўшъыр}:integer;

{$i smpl_new.pas}Report2;;(5,1);('?єььр = ', Sum);(5,2);('?шёыю юсёыєцхээ?ї чр тюъ = ', M);(5,3);('?Ўхэър ёЁхфэхът.юЄъы. = ');i:=1 to M do('S[',i,']=',SrKv[i],' ');;('?Ўхэър фютхЁшЄхы№эюую шэЄхЁтрыр:');i:=1 to M do('I[',i,']=',Inter[i],' ');;('?Ўхэър юЄэюёшЄ. фютхЁшЄхы№эюую шэЄхЁтрыр:');i:=1 to M do('D[',i,']=',D[i],' ');;;E0;

{----------------- ИНИЦИИРУЮЩАЯСЕКЦИЯ ---------------------}

{----- СОБЫТИЕ 0 - НАЧАЛО ПРОЦЕССА МОДЕЛИРОВАНИЯ -----------}:=1000;Tob:=250;N10:=2;K:=1000;T0:=100;T1:=200;:=1;M:=0;Sum:=0;SumKv:=0;

{---- начальнаяустановка списка текущих пpоцессов ---------}I0:=1 to 999 do[I0].S0:=I0+1;[1000].S0:=0;:=1;

{---- начальная установка системы моделиpования------------};

{----------- объявление сpедства и очеpеди ------------}('СРЕД1',Sr1);('ОЧЕР1',Q1);('СРЕД2',Sr2);('ОЧЕР2',Q2);

{---------- планиpование пеpвого события -------------------}(2,T0,0);(1,T1,0);

{schedl(2,100,0);(1,200,0);(2,300,0);(2,1200,0);(2,1600,0);(1,2500,0);}

{используются для детерменированного тестирования};E1;

{---------- СОБЫТИЕ 1 - ПОЯВЛЕНИЕ ЗАПРОСА В СМО от И1 -----------}

{---------- анализ переполнения таблицы процессов ---------}N0=0 THEN begin write('ОШИБКА 10'); exit; end;

{----------- формирование номера нового процесса ----------}:=N0;:=PR[N0].S0;

{------------- формирование атрибутов процесса ------------}

{Tbeg[J0]:=t;}[J0].PRIORITET:=irand (1,N10);[J0].Ist:=1;

{PR[J0].PRIORITET:=1;}{Оператор используется для детеpминиpованного тестирования}

{------------- планирование следующей заявки --------------}(1,irand(0,TZ),0);

{---------------- планирование события 3 ------------------}(3,0,j0);;E2;

{---------- СОБЫТИЕ 2 - ПОЯВЛЕНИЕ ЗАПРОСА В СМО от И2 -----------}

{---------- анализ переполнения таблицы процессов ---------}N0=0 THEN begin write('ОШИБКА 10'); exit; end;

{----------- формирование номера нового процесса ----------}:=N0;:=PR[N0].S0;

{------------- формирование атрибутов процесса ------------}[J0].PRIORITET:=irand (1,N10);[J0].Ist:=2;

{PR[J0].PRIORITET:=1;}{Оператор используется для детеpминиpованного тестирования}

{------------- планирование следующей заявки --------------}(2,irand(0,TZ),0);

{---------------- планирование события 2 ------------------}(3,0,j0);;E3;

{--------------СОБЫТИЕ 3 --------------}

{----------------- анализ состояния средства 1-------------}status(Sr1)=0 then

{--------------------- занятие средства-------------------}(Sr1,j0);:=irand (0,Tob);

{Ttob1:=Tob;}{Оператор используется для детеpминиpованного тестирования}

{---------------- планирование события ------------------}(4,Ttob1,j0)

{------------ помещение процесса в очередь 1 ----------}(Q1,j0,PR[J0].PRIORITET);;E4;{----- СОБЫТИЕ E4 ------}

{-------------------------- освобождение сpедства1 ----------------------}(Sr1);(5,0,j0);

{--------------------------- анализ состояния очеpеди ------------------}length(q1)<>0 THEN:=head(q1);

{-----------------zanaytie состояния средства 1-------------}(Sr1,j0);:=irand (0,Tob);

{Ttob1:=Tob;}{Оператор используется для детеpминиpованного тестирования}

{---------------- планирование события ------------------}(4,Ttob1,j0);

{---------------- ?яpхфхыхэшх фышЄхы№эюёЄш яpюуюэр

ш ўшёыр юсёыєцхээ?ї чр тюъ---------------}

{ begin:=t-Tbeg[J0];:=M+1;

{------------ ??ўшёыхэшх ёєьь? ш ёєьь? ътрфЁрЄют ------}

{ Sum:=Sum+Ttob1;:=SumKv+Ttob1*Ttob1;}

{---------------- ??ўшёыхэшх ёЁхфэхътрфЁрЄшўхёъюую ш

юЎхэъш фютхЁшЄхы№эюую шэЄхЁтрыр --------}

{ if M>1 then[M]:= sqrt(abs(SumKv-Sum*Sum)/(M-1));M<=500 then Inter[M]:=Tst[M-1]*SrKv[M]/MInter[M]:=Tst[500]*SrKv[M]/M;[M]:=Inter[M]/2/Sum*M;; }

{end;};E5;{--------------СОБЫТИЕ 5 --------------}

{----------------- проверка условия N --------------}PR[j0].Ist=1 then:=k-1;

{----------------------- конец пpоцесса-------------------}[J0].S0:=N0;:=J0;K=0 then schedl(7,0,0);

{----------------- анализ состояния сpедства --------------}status(Sr2)=0 then(Sr2,j0);:=irand (0,Tob);

{Ttob1:=Tob;}{Оператор используется для детеpминиpованного тестирования}

{---------------- планирование события ------------------}(6,Ttob2,j0)

{--------------------------- анализ состояния очеpеди ------------------}length(q2)<L THEN

{------------ помещение процесса в очередь диска ----------}(Q2,j0,PR[J0].PRIORITET)

{----------------------- конец процесса -------------------}[J0].S0:=N0;:=J0;;;E6;{----- СОБЫТИЕ E6 ------}

{-------------------------- освобождение сpедства1 ----------------------}(Sr2);

{-------------------------- конец процесса ----------------------}[J0].S0:=N0;:=J0;:=k-1;k=0 then schedl(7,0,0);

{--------------------------- анализ состояния очеpеди ------------------}length(q2)<>0 THEN:=head(q2);

{----------------- zanaytie состояния средства 1-------------}(Sr2,j0);:=irand (0,Tob);

{Ttob1:=Tob;}{Оператор используется для детеpминиpованного тестирования}

{---------------- планирование события ------------------}(6,Ttob1,j0);

{-------------- ?яpхфхыхэшх фышЄхы№эюёЄш яpюуюэр

ш ўшёыр юсёыєцхээ?ї чр тюъ---------------}

{ begin:=t-Tbeg[J0];:=M+1;

{------------ ??ўшёыхэшх ёєьь? ш ёєьь? ътрфЁрЄют ------}

{ Sum:=Sum+Ttob2;:=SumKv+Ttob2*Ttob2;

{---------------- ??ўшёыхэшх ёЁхфэхътрфЁрЄшўхёъюую ш

юЎхэъш фютхЁшЄхы№эюую шэЄхЁтрыр --------}

{ if M>1 then[M]:= sqrt(abs(SumKv-Sum*Sum)/(M-1));M<=500 then Inter[M]:=Tst[M-1]*SrKv[M]/MInter[M]:=Tst[500]*SrKv[M]/M;[M]:=Inter[M]/2/Sum*M;;;};E7;

{-------- СОБЫТИЕ 7 - КОНЕЦ ПРОЦЕССА МОДЕЛИРОВАНИЯ --------};;;{$i+u+r}

{-------------------- УПРАВЛЯЮЩАЯ СЕКЦИЯ -------------------};(E,J0);E of

: E1;

: E2;

: E3;

: E4;

: E5;

: E6;

: E7;;E=7;.



МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ КУРСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ Кафедра программного обеспечения и администрирования информационных систем

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ