Курсовая АСОИУ (954236), страница 8
Текст из файла (страница 8)
При размещении 2 самых выгодных репликаций, выигрыш будет составлять (525,7+474,3)=1000. Затраты при этом составят 9157,8.
При размещении 3 самых выгодных репликаций, выигрыш будет составлять (525,7+474,3+311,4)=1311,4. Затраты при этом составят 8846,4.
8. Аналитическое моделирование системы методом фонового потока
Необходимо выполнить аналитическое моделирование системы, содержащей ПЭВМ, канал и сервер (ЦП и диск). Формализованная схема моделируемой РСОД в виде СМО приведена на рис. 8.1.
Риc. 8.1. Формализованная схема моделируемой РСОД в виде СМО
На рабочей станции сети формируется запрос пользователя к базе данных, расположенной на сервере. Этот запрос через канал передачи данных поступает на обработку на сервер. После этого запрос с вероятностью поступает на обработку опять на сервер или с вероятностью
данные, относящиеся к запросу, поступают через канал на дообработку в соответствующую рабочую станцию сети.
8.1. Условные обозначения
В схеме используются следующие обозначения
- обслуживающий аппарат, имитирующий дообработку на i-той рабочей станции сети запроса от этой станции к серверу после обработки запроса на сервере
- обслуживающий аппарат, имитирующий формирование запроса от i-той рабочей станции к серверу; (
);
- буфер, имитирующий очередь запросов к каналу;
— обслуживающий аппарат, имитирующий задержку при передаче данных через канал;
- буфер, имитирующий очередь запросов к процессорам;
- обслуживающие аппараты, имитирующие работу процессоров.
- буфер, имитирующий очередь запросов к i-му диску;
-
Исходные данные аналитической модели
Таблица 8.2.1. Исходные данные аналитической модели
Обозначение | Описание |
N | число рабочих станций сети |
Т0 | среднее значение времени дообработки на рабочей станции сети запроса от этой станции к базе данных на сервере |
Тр | среднее значение времени формирования запроса от рабочей станции сети к базе данных на сервере |
tк | среднее значение времени передачи запроса по каналу |
С | число процессоров сервера (1 процессор) |
tцп | среднее значение времени обработки запроса в ЦП сервера |
tдi | среднее значение времени обработки запроса в диске сервера |
Рi | вероятность обращения запроса к i диску сервера после обработки запроса в процессоре |
-
Выходные характеристики аналитической модели
Таблица 8.3.1. Выходные характеристики аналитической модели
Обозначение | Описание |
Треак | среднее значение времени реакции системы |
Тцикла | среднее значение времени цикла системы |
Тпр | среднее значение времени обработки запроса в ЦП |
i | количество итераций |
rpc | коэффициент загрузки ОА, имитирующего работу PC |
rupc | коэффициент загрузки ОА, имитирующего работу пользователя PC |
rк | коэффициент загрузки ОА, имитирующего работу канала передачи данных |
rпр | коэффициент загрузки ОА, имитирующего работу процессора сервера |
rдi | коэффициент загрузки ОА, имитирующего работу i–ого диска сервера |
-
Итерационный алгоритм
Введем следующие обозначении:
ф1 – среднее значение суммарной интенсивности первичного фонового потока запросов, выходящих из ОА, имитирующих работу РС;
=1/(1–) – количество раз, которые заявка проходит через сервер за время ее обработки.
Тогда:
-
В системе с несколькими ОА у каждого узла своя интенсивность обслуживания
. Для того чтобы поток заявок не загружал систему, необходимо выбирать интенсивность входного потока
меньше или равной
, которая равна минимальному значению из интенсивностей обслуживания всех:
-
Задаем начальное приближенное значение фонового потока:
- количество рабочих станций, от которых идет фоновый поток по отношению к количеству исходных рабочих станций.
К1 принимает значения в диапазоне 0.995…0.99995.
-
Определяем времена пребывания заявок в узлах системы:
-
В канале:
tк – среднее значение времени обработки запроса в канале передачи данных: tк =0.5(tк1+ tк2)
Т к – среднее значение времени пребывания запроса в ОА, имитирующих работу канала передачи данных:
-
На ЦП:
-
На дисках:
-
Определяем максимальную интенсивность фонового потока после первой итерации ф:
- поток заявок от одной рабочей станции;
-
Сравним первичный фоновый поток ф1 и фоновый поток после первой итерации ф. Определяем относительную погрешность 1 для ф1: 1 принимает значения в диапазоне 0.001…0.00001.
Если , то алгоритм завершил работу, и переходим к пункту 7, иначе выполняется следующий пункт алгоритма.
-
Определяем новое приближённое значение для ф1:
К2 принимает значения в диапазоне 10…1000.
После этого переходим к пункту 3 данного алгоритма.
-
Определяем выходные результаты аналитической модели:
Тцикла = Треакции + Тформ
-
Текст программы на языке Ci++
AnalitModel.h
#ifndef AnalitModelH
#define AnalitModelH
//---------------------------------------------------------------------------
#include <math.h>
#include <stdlib.h>
#include <algorithm.h>
#include <iostream.h>
#include <functional.h>
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
TEdit *Edit1;
TEdit *Edit2;
TEdit *Edit3;
TEdit *Edit4;
TLabel *Label1;
TLabel *Label2;
TLabel *Label3;
TLabel *Label4;
TLabel *Label5;
TEdit *Edit5;
TLabel *Label6;
TEdit *Edit6;
TLabel *Label7;
TEdit *Edit7;
TLabel *Label8;
TEdit *Edit8;
TLabel *Label9;
TEdit *Edit9;
TLabel *Label10;
TEdit *Edit10;
TLabel *Label11;
TEdit *Edit11;
TButton *Button1;
TLabel *Label16;
TEdit *Edit16;
TLabel *Label17;
TEdit *Edit17;
TLabel *Label18;
TEdit *Edit18;
TLabel *Label19;
TEdit *Edit19;
TLabel *Label20;
TEdit *Edit20;
TLabel *Label12;
TEdit *Edit12;
void __fastcall Button1Click(TObject *Sender);
private: // User declarations
public: // User declarations
__fastcall TForm1(TComponent* Owner);
int n; // Число рабочих станций
double td; // Среднее время дообработки запроса на PC
double tf; // Среднее время формирования запроса на PC
double tk; // Среднее значение времени обработки запроса в канале
// передачи данных
double tp; // Среднее время передачи через канал в прямом
// направлении
double to; // Среднее время передачи через канал в обратном
// направлении
double b; // Среднее количество проходов запроса по тракту
int proc; // Количество процессоров
double tpp; // Среднее время обработки запроса на процессоре
int disk; // Количество дисков
double tpd; // Среднее время обработки запросв на диске
double ppd; // Вероятность обращения запроса к диску сервера после
// обработки запроса в процессоре
double pdp; // Вероятность обращения запроса к ЦП после обработки
// на диске
double m1; // Интенсивность обслуживания канала
double m2; // Интенсивность обслуживания процессора
double m3; // Интенсивность обслуживания диска
double l1; // Начальное приближенное значение фонового потока
double tko; // Среднее время пребывания запроса в канале
double tpo; // Среднее время пребывания запроса в процессоре
double tdo; // Среднее время пребывания запроса в диске
double l; // Интенсивность фонового потока после первой итерации
bool flag;
double pPC; // Загрузка рабочей станции
double puPC; // Загрузка пользователя рабочй станции
double pk; // Загрузка канала
double pp; // Загрузка процессора