РПЗ_Аниканов (954315), страница 11
Текст из файла (страница 11)
8.Аналитическое моделирование сети.
8.1.Формализованная схема и исходные данные.
В соответствии с техническим заданием, моделируем систему, содержащей ПЭВМ, и сервер ( два ЦП и диски);
Рис.12. Формализованная схема.
В схеме используются следующие обозначения
ОАдб – обслуживающий аппарат (ОА), имитирующий работу рабочей станции по дообработке запроса к серверу.
ОАф – ОА, имитирующий работу рабочей станции по формированию запроса к серверу.
Бcpu – буфер (Б), имитирующий очередь запросов к процессорам сервера.
ОАcpu – ОА, имитирующий работу процессора по обработке запроса от рабочей станции.
Бдм – Б, имитирующий очередь запросов к дисковым массивам сервера.
ОАдм – ОА, имитирующий работу дискового массива сервера.
Исходными данными аналитической модели являются:
N –число рабочих станций сети.
Т0 – среднее значение времени дообработки запроса на рабочей станции сети к базе данных на сервере.
Тр - среднее значение времени формирования запроса -//-.
С – количество процессоров сервера.
tп – среднее значение времени обработки запроса в процессоре сервера.
tд - среднее значение времени обработки запроса в диске сервера.
Рi - вероятность обращения запроса к i диску сервера после обработки запроса в процессоре
Выходными характеристиками аналитической модели являются:
Треак – среднее значение времени реакции системы.
п – коэффициент загрузки ОА, имитирующего работу процессора сервера.
дi – коэффициент загрузки ОА, имитирующего работу iго дискового массива сервера.
Введём следующие обозначения:
ф1 – среднее значение суммарной интенсивности фонового потока запросов, выходящих из ОА, имитирующих работу РС.
ф1 – среднее значение интенсивности фонового потока запросов, проходящих через ОА, имитирующих работу процессора, где b=1/(1–р)
b - среднее количество проходов запроса по тракту процессор-диски за время одного цикла его обработки в системе.
n – количество серверов, обслуживающих рабочие станции;
количество дисков в сервере, при условии, что все они одинаковые
- вероятность обращения к i-му диску сервера
8.2. Порядок расчета рассматриваемой системы методом фонового потока
При расчете используется приближённый итерационный алгоритм нахождения значения выходных характеристик рассматриваемой системы
-
Определяем начальное значение для lф1
К1 принимает значения в диапазоне 0.995…0.99995.
-
Определяем средние времена пребывания запроса в узлах системы: канале, процессоре, дисках:
.
-
Определяем интенсивность фонового потока после очередной итерации:
-
Сравниваем lф1 и lф .Если
, то переход на пункт 6, иначе на пункту 5
-
Определяем новое приближённое значение для lф1:
К2 принимает значения в диапазоне 10…1000, .
Переход на пункт 2.
-
Определяем выходные результаты аналитической модели.
Определяем средние времена пребывания запроса в узлах системы: канале, процессоре и дисках.
Определяем выходные результаты аналитической модели:
Tреак=T0+(Tп+Tд) (10)
Tреак=(N-1)/ф–Tр (11)
2=Т/(Tреак+Tр) (12)
pп=2tп/С (13)
pдi=Pi2tд (14)
Предложенная аналитическая модель реализована программно на языке Delphi.
8.3. Текст программы на языке Delphi.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, StdCtrls, Math;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Edit8: TEdit;
Button1: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Edit9: TEdit;
Label7: TLabel;
Edit12: TEdit;
Edit14: TEdit;
Edit15: TEdit;
Edit18: TEdit;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Edit19: TEdit;
Label15: TLabel;
Label16: TLabel;
Label11: TLabel;
Edit10: TEdit;
Label14: TLabel;
Label17: TLabel;
Label12: TLabel;
Label13: TLabel;
Label18: TLabel;
Label19: TLabel;
Button2: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
function step(x:real; y:integer):real;
var
Form1: TForm1;
N:integer; // ЧислоРС
T0:real; // Вр. доработкизапросанаРС
Tp:real; // Вр. формирования запроса на РС
C:integer; // Кол-во процессоров сервера
Tn:real; // Вр. обработки запроса в процессоре
M:integer; // Кол-во дисков сервера;
Td:real; // Вр. обработки запроса в сервере
Pii:real; // Вер-ть обращения к i-му диску
b:real;
v,v1,v2,v3:real;
Tk:real;
TkL:real;
TnL:real;
TdL:real;
L,L1,L2,Ld,D1:real;
TTp:real; // Время реакции системы на запрос
Ppc:real;
Pn:real; // Коэф. процессора
Pd:real; // Коэф. диска
implementation
{$R *.DFM}
function step(x:real; y:integer):real;
var i:integer;
begin
result:=x;
for i:=1 to y do result:=result*x;
end;
procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
N:=StrToInt(Edit1.Text);
T0:=StrToFloat(Edit2.Text);
Tp:=StrToFloat(Edit3.Text);
C:=StrToInt(Edit6.Text);
Tn:=StrToFloat(Edit7.Text);
M:=StrToInt(Edit8.Text);
Td:=StrToFloat(Edit9.Text);
if M<>0 then Pii:=1/M
elsePii:=0;
Edit10.Text:=FloatToStr(Pii);
b=1;
v2:=C/(b*Tn); //интенсивность фонового потока запросов в процессоры
v3:=1/(b*Pii*Td); //интенсивность фонового потока запросов в дисковые массивы
if (v2<v3) then v:=v2
else v:=v3;
L2:=0.99995*v*(N-1)/N; //среднее значение суммарной интенсивности
Edit18.Text:=FloatToStr(L2);
repeat
L1:=L2;
TnL:=Tn*b/(1-Power(b*L1*Tn/C,C)); //процессорное время
TdL:=Td*Pii/(1-b*Pii*L1*Td); //время дисков
L:=(N-1)/(T0+Tp+b*(TnL+TdL));
D1:=abs(L1-L)/1000;
L2:=L1-D1;
until abs((L1-L)/L)<0.00001;
TTp:=T0+Tp+b*(TnL+TdL);
Ppc:=(T0+Tp)/TTp;
Ld:=N/TTp;
Pn:=Tn*b*Ld;
Pd:=b*Td*Pii*Ld;
Edit19.Text:=FloatToStr(TTp);
Edit12.Text:=FloatToStr(Ppc);
Edit14.Text:=FloatToStr(Pn);
Edit15.Text:=FloatToStr(Pd);
end;
end.
8.4.Результаты аналитического эксперимента
Таблица 39. Результаты аналитического эксперимента.
Номер эксперимента | 1 | 2 | 3 | 4 | 5 |
Исходные данные | |||||
Количество рабочих станций | 32 | 32 | 32 | 32 | 32 |
Среднее время дообработки запроса на РС | 70 | 210 | 70 | 70 | 70 |
Среднее время формирования запроса на РС | 70 | 70 | 210 | 70 | 70 |
Количество процессоров | 2 | 2 | 2 | 2 | 2 |
Среднее время обработки запроса на процессоре | 10 | 10 | 10 | 20 | 10 |
Количество дисков | 6 | 6 | 6 | 6 | 6 |
Среднее время обработки запроса на диске | 10 | 10 | 10 | 10 | 20 |
Результаты моделирования. | |||||
Загрузка рабочей станции | 0,83 | 0,92 | 0,92 | 0,78 | 0,82 |
Загрузка пользователя рабочей станции | 0,41 | 0,23 | 0,69 | 0,39 | 0,41 |
Среднее количество работающих РС | 26,5 | 29,3 | 29,44 | 25,1 | 26,4 |
Среднее количество РС формирующих запрос | 13,3 | 7,3 | 22,08 | 12,3 | 13,3 |
Загрузка процессора | 0,21 | 0,13 | 0,13 | 0,39 | 0,2 |
Загрузка iго диска | 0,07 | 0,04 | 0,04 | 0,07 | 0,14 |
Среднее время цикла системы | 157,7 | 294,3 | 294,3 | 169,3 | 159,6 |
Среднее время реакции системы | 87,7 | 224,3 | 84,3 | 99,3 | 89,6 |
9.Имитационное моделирование сети.
9.1.Формализованная схема .
Рис.14. Формализованная схема.