Разработка алгоритмической модели




 

На основании структурной схемы построим алгоритмическую модель вычислительной системы, она показана на рисунке 2 Рисунок.

 

Рисунок 2


Работа программы

После запуска программы производится генерация массивов значений, которые будут использованы далее в программе. После заполнения массивов, пользователь может запустить процесс моделирования, по завершении которого будут выведены результаты, в том же окне программы. В ходе моделирования будут созданы два файла, для оценки ГСЧ 1 и ГСЧ 2. Программой будут сгенерированы файлы логов, по которым можно будет наблюдать процесс работы всей системы, а также результаты моделирования запишутся в файл «*.csv», по которому можно будет построить гистограмму или график.

После завершения процесса моделирования в окне отобразятся статистические параметры работы модели: количество поступивших сообщений, количество обработанных системой сообщений и коэффициент загрузки ЭВМ после смоделированного времени работы. Коэффициент загрузки ЭВМ определяется по следующей формуле:

 

.

 

Временная диаграмма работы системы показана на рисунке 3.

 

Рисунок 3


Исследование эффективности разработанной модели

Расчет показателя эффективности осуществляется путем нахождения отношения количества обработанных сообщений к общему числу сообщений (берутся средние значения):

 

.

 

Программа считает количество поступивших сообщений и количество сообщений, покинувших систему, поэтому:

Расчёт эффективности (загрузки ЭВМ) производится нахождением среднего значения коэффициента загрузки ЭВМ по выданным программой значениям:

Кз = ((299/304) + (293/310) + (298/305) + (291/312) + (285/318) + (295/308) + (290/313) + (296/307) + (284/300) + (280/303)) / 10 = (0.947982 + 0.94848 + 948314 + 0.95141 + 0.953455 + 0.974264 + 0.95141 + 0.94953 + 0.948646 + 0.951133) / 10 = 0,9524624

 


Заключение

 

В ходе выполнения данной курсовой работы была разработана система массового обслуживания, которая представляет собой два генератора псевдослучайных величин и ЭВМ, обрабатывающая поступающие заявки. Проверено качество их работы по гистограмме распределения и по критерию Пирсона. Оба генератора показали хорошие результаты. Погрешность распределения для первого генератора оказалась равной 0,553%, критерий Пирсона χ2 для второго генератора равен 6,0245, при табличном значении (для выбранного числа интервалов разбиения) 14,6837.

Разработана структурная схема моделируемой системы. После чего с использованием генераторов была построена алгоритмическая модель системы. На основе алгоритмической модели разработана программа, позволяющая имитировать работу системы. С помощью данной программы были получены статистические параметры работы модели. Коэффициент загрузки ЭВМ равен 0,9524, что означает что ресурсы ЭВМ используются не полностью.


Приложение

 

Исходный код программы.

 

// console.cpp: определяет точку входа для консольного приложения.

//

#include "stdafx.h"

#include "object.h"

#include <fstream>

#include <math.h>

#include <ctime>

#include <stdlib.h>

#include <iostream>

#include <locale.h>namespace std;mtime = 30;speed = 10;term_time = 30;nleft=250, nright=350;model_time=3600*5;ExpGen(int sredn)

{-sredn*log((static_cast<double>(rand()) / RAND_MAX) *1);

}GaussGen(double x, double y)

{(double)rand() / (RAND_MAX + x) * (y - x) + x;

}gist(const char name[11], const char name_2[11], const double *mass, int num_elements, bool inf_show);main_buf=0;evm;term1=true, term2=true, term3=true;_tmain(int argc, _TCHAR* argv[])

{(LC_ALL, "rus");sec_count=0;(time(0));WorkTime=0;tbuf1=0, tbuf2=0, tbuf3=0;lbuf1=0, lbuf2=0, lbuf3=0;{(sec_count>=tbuf1)

{=floor(ExpGen(mtime));=floor(GaussGen(nleft, nright));=false;

}(sec_count>=tbuf2)

{=floor(ExpGen(mtime));=GaussGen(nleft,nright);=false;

}(sec_count>=tbuf3)

{=floor(ExpGen(mtime));=GaussGen(nleft,nright);=false;

}(term1==false)

{_buf=evm.SetWtime(lbuf1, speed, term_time);(main_buf!=0)

{.modifyline(main_buf);

}_count=sec_count+term_time;=true;

}

{_buf=evm.GetFromLine(speed);(main_buf!=0)

{_count=sec_count+floor(main_buf);

}

}(term2==false)

{_buf=evm.SetWtime(lbuf2, speed, term_time);(main_buf!=0)

{.modifyline(main_buf);

}_count=sec_count+term_time;=true;

}

{_buf=evm.GetFromLine(speed);(main_buf!=0)

{_count=sec_count+floor(main_buf);

}

}(term3==false)

{_buf=evm.SetWtime(lbuf3, speed, term_time);(main_buf!=0)

{.modifyline(main_buf);

}_count=sec_count+term_time;=true;

}

{_buf=evm.GetFromLine(speed);(main_buf!=0)

{_count=sec_count+floor(main_buf);

}

}

}while(sec_count<=model_time);



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2020-03-31 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: