РПЗ (954110), страница 6
Текст из файла (страница 6)
N – число рабочих станций сети;
tс время непосредственной обработки запроса сервером;
Тс время нахождения запроса на сервере (учитывая время пребывания в очереди);
tк1 – среднее значение времени передачи запроса от РС к серверу сети через канал передачи данных;
tк2 – среднее значение времени передачи данных от сервера сети к РС через канал передачи данных;
tк – среднее время передачи данных по каналу;
Тк – среднее значение времени пребывания запроса в ОА, имитирующих работу канала (включая время в очереди);
Тдообр – среднее значение времени дообработки на рабочей станции (РС) сети запроса от этой станции к базе данных на сервере;
Тформ – среднее значение времени формирования запроса от рабочей станции сети к базе данных на сервере;
Треак – среднее значение времени реакции системы: Треак = Тобр + Тдообр + 2Тк;
Тобр = Тс;
Тцикла = Треак + Тформ = Тдообр + Тс + Тформ + 2Тк;
– вероятность поступления запроса после обработки в процессоре сервера снова на процессор сервера.
1- – вероятность поступления запроса после обработки в процессоре сервера в канал;
средний интервал времени между заявками, поступающими в систему;
интенсивность входного потока
;
интенсивность обслуживания заявок в узле сети: для сервера
;
Выходные характеристики:
Треак – среднее значение времени реакции системы;
i – коэффициент загрузки ОА, имитирующего работу канала, процессоров, дисков
Введем следующие обозначении:
ф1 – среднее значение суммарной интенсивности первичного фонового потока запросов, выходящих из ОА, имитирующих работу РС;
=1/(1–) – количество раз, которые заявка проходит через сервер за время ее обработки;
Тогда :
-
В системе с несколькими ОА у каждого узла своя интенсивность обслуживания
. Для того чтобы поток заявок не загружал систему, необходимо выбирать интенсивность входного потока
меньше или равной
, которая равна минимальному значению из интенсивностей обслуживания всех:
-
Задаем начальное приближенное значение фонового потока:
К1 принимает значения в диапазоне 0.995…0.99995.
-
Определяем времена пребывания заявок в узлах системы:
Тк – среднее значение времени пребывания запроса в ОА, имитирующих работу канала передачи данных определяется как
tк =0.5(tк1+ tк2)
Тп – среднее значение времени пребывания запроса в ОА, имитирующих работу процессора сервера определяется как:
Тд – среднее значение времени пребывания запроса в ОА, имитирующих работу диска сервера определяется как:
-
Определяем максимальную интенсивность фонового потока после первой итерации ф:
- поток заявок от одной рабочей станции;
-
Сравним первичный фоновый поток ф1 и фоновый поток после первой итерации ф. Определяем относительную погрешность 1 для ф1: 1 принимает значения в диапазоне 0.001…0.00001.
Если , то алгоритм завершил работу, и переходим к пункту 7, иначе выполняется следующий пункт алгоритма.
6. Определяем новое приближённое значение для ф1:
К2 принимает значения в диапазоне 10…1000.
После этого переходим к пункту 3 данного алгоритма.
-
Определяем выходные результаты аналитической модели:
Tреак=T0+2Tк+(Tп+Tд)
Tреак=(N-1)/ф–Tр
рст= (То+Тр) /Тцикл
pк=2tк =N/Тцикл
pп=tп/С
pдi=Pitд
Чем больше итераций, тем больше точность.
Предложенная аналитическая модель реализована программно на языке Delphi.
7.3. Результаты моделирования
Вариант | 1 | 2 | 3 | 4 | 5 |
Количество ПЭВМ | 13 | 13 | 13 | 13 | 26 |
Время дообработки запроса на ПЭВМ | 0 | 20 | 0 | 0 | 0 |
Время формирования запроса на ПЭВМ | 260 | 260 | 260 | 260 | 260 |
Время обработки запроса в канале | 20 | 20 | 40 | 20 | 20 |
Время обработки запроса на сервере | 20 | 20 | 20 | 40 | 20 |
Время реакции | 303,796 | 309,341 | 809,092 | 358,045 | 795,634 |
Загрузка канала | 0,922 | 0,913 | 0,973 | 0,841 | 0,985 |
Загрузка сервера | 0,461 | 0,457 | 0,243 | 0,841 | 0,493 |
7.4 Программа
n: integer; //число рабочих станций
tc: real; //время непосредственной обработки запроса процессором
tco: real; //время нахождения запроса на сервере
tk: real; //время передачи данных по каналу
tko: real; //время пребываения запроса в канале
to1: real; //вермя добработки
tp: real; //время формирования запроса
y: real; //вероятность поступления снова на процессор
pk: real; //загрузка канала
pc: real; //загрузка процессора
tr: real; //время реакции систем
implementation
{$R *.dfm}
procedure TForm1.BitBtn1Click(Sender: TObject);
var m1,l,b,l1,ts,delta,l0: real;
i: integer;
q1,q2,q3,q,q4:real;
begin
i:=0;
n:=strtoint(Edit1.Text);
to1:=strtofloat(Edit2.Text);
tp:=strtofloat(Edit3.Text);
tk:=strtofloat(Edit4.Text);
tc:=strtofloat(Edit5.Text);
y:=strtofloat(Edit6.Text);
b:=1/(1-y);
q1:=0.5/tk;
q2:=c/(b*tc);
m1:=q1;
if q2<m1 then m1:=q2;
l1:=0.999*m1*(n-1)/n;
repeat
tko:=2*tk/(1-2*l1*tk);
tco:=abs(b*tc/(1-(b*l1*tc))) ;
ts:=to1+tco+tp+tko{+tdisko};
l:=(n-1)/ts;
delta:=((l1-l)/1000);
l1:=(l1-delta);
i:=i+1;
until ((abs(l1-l)/l)<0.0001);
l0:=n/ts;
tr:=ts-tp;
pk:=2*l0*tk;
pc:=b*l0*tc;
Edit11.Text:=floattostr(tr);
Edit12.Text:=floattostr(pk);
Edit13.Text:=floattostr(pc);
end;
8. Имитационное моделирование сети
8.1. Формализованная схема
8.2. Текст программы GPSS
INITIAL X$STATION_N,13
INITIAL X$STATION_TD,0
INITIAL X$STATION_TF,260
INITIAL X$CANAL_T,20
INITIAL X$SERVER_T,20
EXPON FUNCTION RN1,c24
0,0/.1,.104/.2,.222/.3,.355/.4,.509/.5,.69/.6,.915/.7,1.2/.75,1.38/.8,1.6/.84,1.83/.88,2.12/.9,2.3/.92,2.52/.94,2.81/.95,2.99/.96,3.2/.97,3.5/.98,3.9/.99,4.6/.995,5.3/.998,6.2/.999,7./.9998,8.
WORKSTATION_D STORAGE 8
WORKSTATION_F STORAGE 8
SERVER STORAGE 1
START 1
GENERATE 0,0,0,X$STATION_N
WOSF QUEUE QSYSTEM
ENTER WORKSTATION_F,1
ADVANCE X$STATION_TF,FN$EXPON
LEAVE WORKSTATION_F,1
ASSIGN 3,SVR
CAN QUEUE QCANAL
SEIZE CANAL
DEPART QCANAL
ADVANCE X$CANAL_T,FN$EXPON
RELEASE CANAL
TRANSFER ,P3
SVR ENTER SERVER,1
ADVANCE X$SERVER_T,FN$EXPON
LEAVE SERVER,1
ASSIGN 3,WOSD
TRANSFER ,CAN
WOSD ENTER WORKSTATION_D,1
ADVANCE X$STATION_TD,FN$EXPON
LEAVE WORKSTATION_D,1
DEPART QSYSTEM
TRANSFER ,WOSF
GENERATE 100000
TERMINATE 1
8.3. Листинг
GPSS World Simulation Report - leo.22.1
Friday, December 08, 2006 15:13:44
START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 100000.000 24 1 3
NAME VALUE
CAN 7.000
CANAL 10011.000
CANAL_T 10003.000
EXPON 10005.000
QCANAL 10010.000
QSYSTEM 10009.000
SERVER 10008.000
SERVER_T 10004.000
STATION_N 10000.000
STATION_TD 10001.000
STATION_TF 10002.000
SVR 13.000
WORKSTATION_D 10006.000
WORKSTATION_F 10007.000
WOSD 18.000
WOSF 2.000
LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1 GENERATE 13 0 0
WOSF 2 QUEUE 2381 1 0
3 ENTER 2380 0 0
4 ADVANCE 2380 8 0
5 LEAVE 2372 0 0
6 ASSIGN 2372 0 0
CAN 7 QUEUE 4742 3 0
8 SEIZE 4739 0 0
9 DEPART 4739 0 0
10 ADVANCE 4739 1 0
11 RELEASE 4738 0 0
12 TRANSFER 4738 0 0
SVR 13 ENTER 2370 0 0
14 ADVANCE 2370 0 0
15 LEAVE 2370 0 0
16 ASSIGN 2370 0 0
17 TRANSFER 2370 0 0
WOSD 18 ENTER 2368 0 0
19 ADVANCE 2368 0 0
20 LEAVE 2368 0 0
21 DEPART 2368 0 0
22 TRANSFER 2368 0 0