Допомога у написанні освітніх робіт...
Допоможемо швидко та з гарантією якості!

Розрахунок параметрів корпоративної мережі з 1 сервером

КонтрольнаДопомога в написанніДізнатися вартістьмоєї роботи

Log→Lines→Add ((AnsiString) «Середня кількість елементів даних в системі:» + FloatToStrF (SystemSize, ffFixed, 6, 3) + «елементів»); Середній час, який елементи даних очікують обслуговування, при збільшенні утилізації сервера,. Log→Lines→Add ((AnsiString) «Середній час відповіді при збільшенні утилізації:» + FloatToStrF (temp, ffFixed, 4, 3) + «c»); Log→Lines→Add ((AnsiString) «Утилізація… Читати ще >

Розрахунок параметрів корпоративної мережі з 1 сервером (реферат, курсова, диплом, контрольна)

Розрахункова графічна робота Розрахунок параметрів корпоративної мережі з 1 сервером

Вступ

Вивчення курсу «Cполучені мережі» передбачає набуття студентом навичок проектування параметрів об'єднаних комп’ютерних мереж.

З цією метою виконується РГР, яка дозволяє засвоїти основні принципи, технології та протоколи комп’ютерних мереж.

Мережа підприємства, як правило, повинна підтримувати ряд найбільш затребуваних для бізнесу додатків і керованих сервісів. У першу чергу це:

· Можлівість високошвидкісного доступу до мережі Інтернет;

· Створення віртуальних приватних мереж (VPN);

· Передача голосу поверх IP;

· Проведення відеоконференцій;

· Захист інформації й зберігання даних.

Основним завданнями РГР є засвоєння методик розрахунку параметрів мережі. Одержання навичок РГР та користування інформацією стандартів дозволяє також виконувати відповідні розділи у дипломному проекті.

1. Технічне завдання

1. Складена мережа має «a» робочих станцій та «N» серверів.

2. Середній час обслуговування елементів, що надійшли, системою «b».

3. Стандартне відхилення цього часу «c».

4. Швидкість надходження запитів від кожної робочої станції «d».

5. Розподіл часу надходження заявок або часу обслуговування системою

M / G / N, M / M / N або M / D / N, де

* G — нормальний розподіл часу надходження або часу обслуговування елементів даних;

* М — пуасонівської розподіл часу надходження; пуасонівської або експоненційний розподіл часу обслуговування елементів даних;

* D — детермінований час надходження або час обслуговування елементів даних;

* N — кількість серверів.

6. Максимально прийнятний час відповіді «e», в «r"% випадків.

7. Збільшення утилізації сервера «Util"%.

Розрахувати:

* швидкість надходження елементів даних в систему,

* утилізацію одного сервера,

* утилізацію системи (інтенсивність трафіку),

* функцію Ерланга;

* коефіцієнт Пуасона,

* середній час відповіді,

* середній час відповіді при збільшенні утилізації сервера,

* середній розмір черги,

* відсоток завантаження до досягнення насиченості сервера,

* середню кількість елементів даних в системі,

* середній час, який елементи даних проводять в системі,

* середній час, який елементи даних очікують обслуговування,

* середній час, який елементи даних очікують обслуговування, при збільшенні утилізації сервера,

* стандартне відхилення q,

* середній час обслуговування для елементів даних в черзі (тобто, не включаючи елементи, для яких час очікування дорівнює 0),

* стандартне відхилення Tq.

2. Варіант завдання

M/D/1

3,09

a

b

0.12

c

0.10

d

e

1.0

r

Util

3. Лістинг програми

// ;

#include

#pragma hdrstop

#include «Main.h»

// ;

#pragma package (smart_init)

#pragma resource «*.dfm»

// Ініціалізація змінних

TForm1 *Form1;

float lyambda = 0;

float ServUtil = 0;

float MidAnswerT = 0;

float MidProcWaitT = 0;

float LineSize = 0;

float SystemSize = 0;

float Tq = 0;

float q = 0;

float reaching = 0;

float K = 0;

float C = 0;

float Td = 0;

// швидкість надходження елементів даних в систему

float DataIncomingSpeed (unsigned int StationsNum, unsigned int IncSpeed)

{

return (StationsNum * IncSpeed) / 60.0;

}

// ;

// утилізація системи

float ServerUtilization (float DataIncSpeed, float MidProcTime)

{

return (DataIncSpeed * MidProcTime);

}

// ;

// середній час відповіді

float MidAnswerTime (float ServerUtil, float MidProcTime)

{

return (MidProcTime * (2 — ServerUtil)) /

(2 * (1 — ServerUtil));

}

// ;

// середній розмір черги

float SizeOfLine (float ServerUtil)

{

return (pow (ServerUtil, 2) / (2 * (1 — ServerUtil)));

}

// ;

// середня кількість елементів даних в системі

float ElementsInSystem (float LineSz, float ServerUtil)

{

return (LineSz + ServerUtil);

}

// ;

// середній час, який елементи даних очікують обслуговування

float MidProcessWaitingTime (float ServerUtil, float MidProcTime)

{

return ((ServerUtil * MidProcTime) / (2 * (1 — ServerUtil)));

}

// ;

// стандартне відхилення q

float Deltaq (float ServerUtil)

{

return (1 / (1 — ServerUtil)) * sqrt (ServerUtil + 3 * pow (ServerUtil, 2) / 2 + 5 * pow (ServerUtil, 3) / 6);

}

// ;

// стандартне відхилення Tq

float DeltaTq (float MidProcTime, float ServerUtil)

{

return (MidProcTime / (1 — ServerUtil)) * sqrt (ServerUtil / 3 + pow (ServerUtil, 2) / 12);

}

// ;

// коефіцієнт Пуасона

float PuasonKoef (float ServerUtil)

{

return 1 / (1 + ServerUtil);

}

// ;

// середній час обслуговування для елементів даних в черзі

float MidProcTimeTd (float MidProcTime, float ServerUtil)

{

return MidProcTime / (1 — ServerUtil);

}

// ;

// відсоток завантаження до досягнення насиченості сервера

float ReachStateProcentage (float MidProcTime, float EventsCount, float MaxAnswerTime)

{

return (1 — (MidProcTime * log (100 / (100 — EventsCount)) / MaxAnswerTime)) * 100;

}

// ;

__fastcall TForm1: TForm1 (TComponent* Owner): TForm (Owner)

{

}

// ;

// Обробник кнопки «Розрахунок»

void __fastcall TForm1: StartButtonClick (TObject *Sender)

{

Log->Lines->Clear ();

lyambda = DataIncomingSpeed (WorkStationsEdit->Text. ToInt (),

InSpeedEdit->Text. ToInt ());

ServUtil = ServerUtilization (lyambda, MidProcTimeEdit->Text. ToDouble ());

if (ServUtil > 1)

ShowMessage («Введено некоректні дані! Утилізація неповинна перевищувати 100%»);

else

{

MidAnswerT = MidAnswerTime (ServUtil, MidProcTimeEdit->Text. ToDouble ());

LineSize = SizeOfLine (ServUtil);

SystemSize = ElementsInSystem (LineSize, ServUtil);

MidProcWaitT = MidProcessWaitingTime (ServUtil,

MidProcTimeEdit->Text. ToDouble ());

C = ServUtil;

K = PuasonKoef (ServUtil);

Td = MidProcTimeTd (MidProcTimeEdit->Text. ToDouble (), ServUtil);

q = Deltaq (ServUtil);

Tq = DeltaTq (MidProcTimeEdit->Text. ToDouble (), ServUtil);

reaching = ReachStateProcentage (MidProcTimeEdit->Text. ToDouble (),

EventsCountEdit->Text. ToDouble (),

MaxAnswerTimeEdit->Text. ToDouble ());

Log->Lines->Add ((AnsiString) «Швидкість надходження елементів даних в систему:» + FloatToStrF (lyambda, ffFixed, 6, 1) + «елементів/сек»);

Log->Lines->Add ((AnsiString) «Утилізація сервера при обслуговуванні:» + FloatToStrF (ServUtil * 1e2, ffFixed, 4, 2) + «%»);

Log->Lines->Add ((AnsiString) «Функція Ерланга:» + FloatToStrF (ServUtil, ffFixed, 4, 3));

Log->Lines->Add ((AnsiString) «Коефіцієнт Пуасона:» + FloatToStrF (K, ffFixed, 4, 3));

Log->Lines->Add ((AnsiString) «Середній час відповіді:» + FloatToStrF (MidAnswerT, ffFixed, 4, 3) + «c»);

try

{

if (((UtilEdit->Text. ToDouble () * 1e-2) + ServUtil) > 1)

UtilEdit->Text = FloatToStrF (UtilEdit->Text. ToDouble () ;

(UtilEdit->Text. ToDouble () + ServUtil * 100 — 100), ffFixed, 4, 2);

float temp = MidAnswerTime (ServUtil + UtilEdit->Text. ToDouble () * 1e-2, MidProcTimeEdit->Text. ToDouble ());

Log->Lines->Add ((AnsiString) «Середній час відповіді при збільшенні утилізації:» + FloatToStrF (temp, ffFixed, 4, 3) + «c»);

}

catch (…)

{

Log->Lines->Add («Середній час відповіді при збільшенні утилізації: сервер перевантажено»);

}

Log->Lines->Add ((AnsiString) «Середній розмір черги:» + FloatToStrF (LineSize, ffFixed, 6, 3) + «елементів»);

Log->Lines->Add ((AnsiString) «Відсоток завантаження до досягнення насиченості сервера:» + FloatToStrF (reaching, ffFixed, 4, 2) + «%»);

Log->Lines->Add ((AnsiString) «Середня кількість елементів даних в системі:» + FloatToStrF (SystemSize, ffFixed, 6, 3) + «елементів»);

Log->Lines->Add ((AnsiString) «Середній час, який елементи даних проводять в системі:» + FloatToStrF (MidAnswerT, ffFixed, 4, 3) + «c»);

Log->Lines->Add ((AnsiString) «Середній час, який елементи даних очікують обслуговування:» + FloatToStrF (MidProcWaitT, ffFixed, 4, 3) + «c»);

try

{

float temp = MidProcessWaitingTime (ServUtil + UtilEdit->Text. ToDouble () * 1e-2, MidProcTimeEdit->Text. ToDouble ());

Log->Lines->Add ((AnsiString) «Середній час, який елементи даних очікують обслуговування, при збільшенні утилізації:» + FloatToStrF (temp, ffFixed, 4, 3) + «c»);

}

catch (…)

{

Log->Lines->Add («Середній час, який елементи даних очікують обслуговування, при збільшенні утилізації: сервер перевантажено»);

}

Log->Lines->Add ((AnsiString) «Стандартне відхилення q:» + FloatToStrF (q, ffFixed, 4, 2));

Log->Lines->Add ((AnsiString) «Середній час обслуговування для елементів даних в черзі (не включаючи елементи, для яких час очікування дорівнює 0):» + FloatToStrF (Td, ffFixed, 4, 3) + «c»);

Log->Lines->Add ((AnsiString) «Стандартне відхилення Tq:» + FloatToStrF (Tq, ffFixed, 4, 3) + «c»);

}

}

// ;

4. Результати виконання програми

Рисунок 1 — результат виконання програми мережа програма ерланг пуасон

Рисунок 2 — результат виконання програми

Показати весь текст
Заповнити форму поточною роботою