Моделирование вычислительной сети

Автор: Пользователь скрыл имя, 26 Июля 2011 в 11:31, курсовая работа

Краткое описание

Целью данного курсового проекта является построение имитационной модели вычислительной сети и определение её оптимальных критериев для минимизации убытков.

Оглавление

Введение 4
1 Описание моделируемой системы и задание на моделирование 6
2 Структурная схема модели системы 8
3 Результат работы модели 16
4 Эксперимент пользователя 17
5 Расчет статистических показателей 26
Заключение 30
Список использованной литературы 31
Приложение А 32
Приложение Б 38

Файлы: 1 файл

Моя записка.doc

— 360.50 Кб (Скачать)

          end; 

     end;

       Получим

     " Optimum.Summ -181924.  Capacity  5.  k time  35."

     Перепроверим  значение с помощью эксперимента go(5,35):

     "Summ -181924.    Capacity  5.  k time  35."

     Следовательно полученное значение верно для стандартной ёмкости накопителя. Запустим ещё несколько экспериментов с различными ёмкостями для сравнения. 
 

     Таблица 2 – Результаты эксперимента go с заданными параметрами

Ёмкость накопителя Время Tavr Суммарные затраты
5 34 -186409
6 30 -215189
7 28 -235239

      

     Отметим, что и при увеличении ёмкости  накопителя или уменьшении времени обработки сумма затрат не становится меньше полученной в ходе оптимизационного эксперимента.

     При Tavr=35 отсутствуют затраты на обработку сообщений в авральном режиме. Поскольку k=0, k*S2*X$AVRCOUNT=0. Например при k=1 в приведённом выше примере данное выражение=1*5*897=4485 единиц стоимости. Отсутствие затрат этого рода перевешивает убытки от потерянных сообщений.

     Также равны нулю и затраты на увеличение ёмкости входных накопителей 10#X$ALLENTERS#(Ncapacity-5).

     Фактически  k=0 означает, что авральный режим не изменяет времени обработки сообщений, поэтому было бы целесообразно вообще убрать его – в этом случае затраты S4*X$AVRTIME*N также стали бы равны 0. Однако это не предусмотрено условием задачи, поэтому остановимся на полученных показателях ёмкости и времени обработки.

     Отметим, что в остальных вариантах  наблюдается аналогичная ситуация (см. приложение Б).

 

      5 Расчет статистических  показателей 

     В результате выполнения 10 прогонов  были получены 10 матриц размерностью 1*20. Замеры производились каждые 500 микросекунд. Получили матрицу размерностью 1*20, которая была получена путем усреднения 10 исходных матриц. 

     

     Рисунок 8 – Динамика суммарных затрат 

       Чтобы выровнять высокочастотные колебания  в процессе (но сохранить нужные низкочастотные колебания или долговременную тенденцию), мы определяем скользящее среднее

       

       Данный  ряд необходимо сгладить с помощью  процедуры Велча. Данная процедура  была написана на языке Delphi:

       procedure TForm1.velch(w: integer);

       var m, S: integer;

        sum: real;

       begin

         for m:=1 to 20-w do

         begin

           Sum:=0;

           if m<=w then

            begin

             for S:=-(m-1) to (m-1) do

              Sum:=Sum+Res1[m+s];

             Res2[m]:=trunc(Sum/(2*m-1));

            end

           else

            begin

             for S:=-w to w do

              Sum:=Sum+Res1[m+s];

             Res2[m]:=trunc(Sum/(2*w+1));

            end;

         end;

       end; 

      Где w - это окно; w является положительным целым числом из условия, w £ [m/4];

      Res1[], Res2[] – массив исходных данных и результирующий массив соответственно. Для сравнения применим процедуру Велча для двух значений w.

     

     Рисунок 9 – Результат сглаживания с помощью процедуры Велча 

      Можно предположить, что система выходит  на установившийся режим после 1500 микросекунд работы. Отбросим первые 3 значения и рассчитаем параметры данной системы: 

     Рисунок 10 – Результат удаления начальных данных 

      Среднее значение находим по формуле средней  арифметической:

      

      и получаем, что средние суммарные затраты за 500 микросекунд равны 101535,9.

      Необходимо рассчитать дисперсию:

      

      Получаем, что дисперсия равна 210,638.

       Для расчета  доверительного интервала воспользуемся  формулой: 
 

      где t – коэффициент распределения Стьюдента. В данном случае он равен 2,306.

      В итоге получаем, что доверительный интервал:

     

 

      Заключение 

     В ходе выполнения данной курсовой работы были выполнены все поставленные перед ней задачи.

     Была  создана имитационная модель работы системы обработки информации. В  ходе проектирования модели была построена  концептуальная модель, представленная в виде Q-схемы, а также математическая модель.

     Над полученной моделью был проведен ряд экспериментов для определения  оптимальных экономических показателей  системы.

     Таким образом, поставленная во введении цель достигнута

 

Список использованной литературы 

     1. Савина, О.А. Имитационное моделирование  экономических систем и процессов:  Учебное пособие [Текст]/О.А.Савина. – Орел: ОрелГТУ, 2004. – 172 с.

     2. Савина, О.А. методические указания  к выполнению курсовых работ  по дисциплине “Моделирование экономических процессов” [Текст]/О.А.Савина. – Орел: ОрелГТУ, 1999. – 59 с.

     3. Боев, В.Д. Моделирование систем. Инструментальные средства GPSSWorld: учебное пособие [Текст]/В.Д.Боев. – БХВ-Петербург, 2004. – 368 с.

     4. Олькина, Е.В. Методические указания по оформлению пояснительных записок к дипломным, курсовым проектам (работам) и отчетов по практикам в соответствии с требованиями государственных стандартов [Текст]/Е.В.Олькина. – Орел: ОрелГТУ, 2007. – 54с.

     5. Моделирование в GPSSWorld [Электронный ресурс]. – Режим доступа:  http://www.intuit.ru/department/calculate/compmodel/6/2.html 

 

Приложение А

(обязательное)

Листинг программы (вариант 1) 

Ncapacity EQU 5   ;ёмкость накопителя

Tavr EQU 34       ;время обработки в авральном режиме

SUMM VARIABLE -(10#X$ALLENTERS#(Ncapacity-5)+(35-Tavr)#5#X$AVRCOUNT+100#X$LOOSE+2#X$AVRTIME#3)

GENERATE 11,5             ;буферизация

QUEUE BUFF

SEIZE MULTICHANNEL 

DEPART BUFF

ADVANCE 9,3

RELEASE MULTICHANNEL

SELECT MIN EVM,1,3,,Q             ;выбор минимальной очереди

TEST L Q*EVM,Ncapacity,GOOUT      ;сравнение с ёмкостью накопителя

SAVEVALUE ALLENTERS+,1            ;учёт всех обработанных сообщений

QUEUE P$EVM                       ;стандартная обработка

QUEUE MAINSTREAM

TEST L Q$MAINSTREAM,9,AVRALMODE  ;сравнение содержимого очереди и 3N

SEIZE P$EVM

DEPART MAINSTREAM

DEPART P$EVM

ADVANCE 35                        ;стандартная задержка

RELEASE P$EVM

TERMINATE 1

AVRALMODE SAVEVALUE AVRCOUNT+,1   ;обработка в авральном режиме

SEIZE P$EVM

DEPART MAINSTREAM

DEPART P$EVM

MARK AVRINT

ADVANCE Tavr                      ;уменьшенная задержка

RELEASE P$EVM

SAVEVALUE AVRTIME+,MP$AVRINT      ;учёт времени работы в авральном режиме

TERMINATE 1

GOOUT SAVEVALUE LOOSE+,1          ;учёт потерянных сообщений

TERMINATE

START 1000 

experiment go(Par1,Par2)                                                                                                                       

begin                                                                                                                                 

  temporary CurYield, ShowString, CommandString;

  Ncapacity=Par1;

  Tavr=Par2;

  CurYield=GetResult();

  ShowString= PolyCatenate("Summ ", String(CurYield), ".  ");

  ShowString=PolyCatenate(ShowString,"  Capacity  ",String(Ncapacity),".");

  ShowString=PolyCatenate(ShowString,"  k time  ",String(Tavr),".");

  DoCommand(PolyCatenate("SHOW """,ShowString,"""",""));                                                                                                      

END;  

procedure GetResult()

begin

temporary Sum, CurYield,Ind_i;

Ind_i=1;

Sum=0;

while (Ind_i<4)do

   begin

        CurYield=DoTheRun(Ind_i);

        Sum=Sum+ CurYield;

        Ind_i=Ind_i+1;

   end;

Return (Sum/(Ind_i-1));

end; 

procedure DoTheRun(Run_Number)

begin

DoCommand("Clear off");

temporary CommandString;

CommandString=Catenate("RMULT ",Run_Number#3);

DoCommand(CommandString);

DoCommand("Start 1");

Return (-(10#X$ALLENTERS#(Ncapacity-5)+(35-Tavr)#5#X$AVRCOUNT+100#X$LOOSE+2#X$AVRTIME#3));

end; 

experiment SeekOpt()                                                                                                                       

begin

  temporary ShowString, CommandString;

  temporary Prev1, Cur1, Flag1, Tprev;

   Ncapacity=4;

   Prev1=100000;

   Flag1=1;

   while (Flag1 'NE' 0) do

     begin

       Ncapacity=Ncapacity+1;

       Tavr=36;

       while (Tavr 'GE' 2) do

         begin   

           Tprev=Tavr;

           Tavr=Tavr-1;

           Cur1=GetResult();

           if(Cur1<Prev1) then

            begin

               if (Prev1<0) then

             begin

                   ShowString=PolyCatenate(" Optimum.Summ ", String(Prev1),".");

                   ShowString=PolyCatenate(ShowString,"  Capacity  ",String(Ncapacity),".");

                   ShowString=PolyCatenate(ShowString,"  k time  ",String(Tprev),".");

Информация о работе Моделирование вычислительной сети