Построение и реализация моделирующих алгоритмов Q - схем. Отчет
.docУфимский Государственный Авиационный Технический Университет
Кафедра ТК
ОТЧЕТ
По лабораторной работе №1
по предмету «Моделирование Систем»
на тему
Построение и реализация моделирующих
алгоритмов Q - схем
Выполнили: студенты гр Т28-319
Андреяшкин И.В.
Сивокобыленко О.В.
Плюхин В.
Проверила: Валеева Г.Р.
УФА 2004
Цель работы - изучение способов формализации процессов функционирования систем с использованием Q-схем.
Исходные данные.
Особенности формализации систем с помощью Q-схем рассмотрим на примере решения задачи исследования вероятностно-временных характеристик процесса функционирования вычислительного центра (ВЦ).
В ВЦ приходят пользователи через интервалы времени 102 мин. Если все 3 устройства подготовки данных (УПД) заняты, пользователю отказывают в обслуживании. Устройства имеют разную производительность и могут обеспечить обслуживание средней программы пользователя за 205, 4010 и 4020 мин.
Пользователи стремятся занять свободное УПД с максимальной производи-тельностью. Полученные программы сдаются в приемный накопитель, откуда выбираются для обработки на первую ЭВМ - программы с первого и второго устройства, на вторую ЭВМ - программы с третьего УПД. Времена обработки программ на первой и второй ЭВМ равны 15 и 30 мин. соответственно.
Смоделировать процесс обработки 300 заданий. Определить вероятность отказа в обслуживании пользователя ВЦ.
Для составления детальной схемы алгоритма используем следующие иден-тификаторы переменных:
- массив состояния УПД nz(3);
- время занятия УПД tz(3);
- массив состояния ЭВМ np(2);
- время занятия ЭВМ tp(2);
- массив состояния накопителей n(2);
- число отказов not;
- число обслуженных заявок nend;
- интервал t dt;
- массивы задания параметров времени обслуживания на УПД a(3), b(3);
- массив задания параметров времени обслуживания на ЭВМ to(2);
- вероятность отказа в обслуживании pot;
- переменные для задания параметров времени поступления заявок tа, tb.
Исходные данные, вводимы в программу:
a(3)={15,30,20}
b(3)={10,20,40}
ta=8, tb=4, dt=0,2
Код алгоритма на языке С++:
#include <iostream.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>
float DAT (double a, double b)
{
double c;
// cout<<a<<";"<<b<<";"<<c<<endl;
return c=random(b)+a;
}
void main()
{randomize();
float i,i1,if1,not,nend;
float ta,tb,dt,t,pot;
float a[3],b[3],to[2],tz[3],tp[2];
int nz[3],np[2],n[2];
for(i=0;i<3;i++)
cin>>a[i]>>b[i];
cin>>ta>>tb>>dt;
for(i=0;i<3;i++)
{nz[i]=0;
n[i]=0;
np[i]=0;
tz[i]=0;
tp[i]=0;
}//for(i=0;i<3;i++)
nend=0;not=0;t=0;
while(nend<300)
{for(i=0;i<2;i++)
if(np[i]==1)
if(tp[i]<=0)
{np[i]=0;
nend++;
}//if if for
if1=0;
for(i=0;i<3;i++)
if(nz[i]==1)
if(tz[i]<=0)
{if1=1;
nz[i]=0;
if(i==3) n[2]++;
else n[1]++;
}//if if for
for(i=0;i<2;i++)
if(n[i]>0)
if(np[i]==0)
{n[i]--;
np[i]=1;
tp[i]=to[i];
}//if if for
if(t<=0)
{if1=0;
for(i=0;i<3;i++)
if(if1==0)
if(nz[i]==0)
{nz[i]=1;
tz[i]=DAT(a[i],b[i]);
if1=1;
}//if if for
if(if1==0) not++;
t=DAT(ta,tb);
}//if(t<=0)
t=t-dt;
for(i=0;i<3;i++)
{tp[i]=tp[i]-dt;
tz[i]=tz[i]-dt;
}//for(i=0;i<3;i++)
}//while
pot=not/(nend+not);
cout<<nend<<","<<not<<","<<pot<<endl;
}
Результаты работы программы:
300, 84, 0.21875
300, 90, 0.230769
300, 79, 0.208443
300, 88, 0.226804
300, 83, 0.21671
300, 91, 0.232737
300, 84, 0.21875
300, 88, 0.226804
300, 92, 0.234694
300, 84, 0.21875
300, 84, 0.21875
300, 79, 0.208443
Вывод: В данной работе мы изучили способы формализации процессов функционирования систем с использованием Q-схем. Из 300 заявок, отказ получают не более 3%