Моделирование работы библиографической системы

Автор: Пользователь скрыл имя, 01 Мая 2012 в 21:21, курсовая работа

Описание работы

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

Содержание

Введение ………………………………………………………………..……………….5
1. Постановка задачи………………………………………………………..………5
2. Выявление основных особенностей системы…………………………..……6
2.1 Структурная схема системы………………………….……....….…6
2.2 Q-схема системы ……………………….……………………………..…6
2.3 Состояния системы …………………….……………………….…...…7
2.4 Характер функционирования системы……………………..….…....7
2.5 Потоки поступления заявок в систему….……………………..….….7
2.6 Число требований, поступающих в один момент…………….……..7
2.7 Характер взаимодействия смежных требований в потоке….…...7
2.8 Характер поведения требований в системе…………………...……..7
2.9 Дисциплина обслуживания…………………….………….……….……..7
2.10 Время обслуживания требований…………………………..…...…..7
2.11 Число каналов обслуживания…………………………….........……...8
2.12 Число фаз обслуживания…………………….……………...........…...8
2.13 Однородность требований, поступающих на обслуживание....8
2.14 Связь выходных и входных потоков…………………….……….…...8
2.15 Время моделирования…………………….………………………….…...8
2.16 Выходной поток…………………….…………………….………….…....8
3. Алгоритм имитационной модели…………………………………………..…..….9
4. Программа на языке высокого уровня PHP…………………………….…….…10
5. Среда имитационного моделирования GPSS World…………………….…..….31
6. Планирование эксперимента…………………………………………………..…...33
6.1 Полный факторный эксперимент……………………………………....33
6.2 Обработка математической модели………………………….…………34
Заключение…………………………………………………………………..38
Список литературы………………………………………………………….39

Работа содержит 1 файл

Курсовой пхп моделирование.docx

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

                      $ver=rand(1,10); // вероятность обращения  к 1 или 2 ЭВМ

                      if ($ver<8) // обращение к 1-му  ЭВМ

                            {

                            $ochered2[]=$time1;

                            $komp1[1]=$komp1[1]+$arr2;

                            } // добавить новый  элемент массива    

                      else //вторая  ЭВМ   

                            {

                            $ochered2[]=$time2;

                            $komp2[2]=$komp2[2]+$arr2;

                            } // добавить новый элемент массива 
     

                      while(($arr2>=0)and(isset($ochered2[$c])))

                      {

                            $arr2=$arr2-$ochered2[$c]; // вычитать из arr сначала  первый элемент  очереди затем  второй и т д  пока не выйдет из массива

                            $vstalvochered2++;

                            if ($arr2>=0)

                                  $c++;

                      } 
     

                      for ($i=0;$i<10;$i++)

                            {

                            if (isset($ochered2[$i]))

                                  echo "<td>".$ochered2[$i]."</td>";

                            else

                                  echo "<td >-</td>";

                            } 

                      // Считаем среднее  число в очереди

                      $cc=count($ochered2);

                      if ($cc==11) $cc=10;

                      $sr_ochered2[]=$cc;

                       

                      while($c>0)

                            {

                                  array_shift($ochered2); // удалить с первого из очереди кол-во элементов равное $c

                                  $c--;

                            } 

                      if ($arr2<0)

                            {

                            $ochered2[0]=abs($arr2);

                            } 
     

                if (count($ochered2)>10) //проверка  сколько людей  в очереди

                {

                      array_pop($ochered2); // удалить последнего  в массиве

                      $ushel2++;

                }

                      }

                else

                      {

                      unset($ochered2);

                      for ($i=0;$i<10;$i++)

                            {

                            if (isset($ochered2[$i]))

                                  echo "<td>".$ochered2[$i]."</td>";

                            else

                                  echo "<td >-</td>";

                            }

                      } 

                echo "<td>$end_model_time2</td><td>$ushel2</td></tr>";

                }

          }

    }

    $sr_dlina2=array_sum($sr_ochered2)/count($sr_ochered2); // средняя длина очерели

    $sr_koef_okrugl=round($srednee/$end_model_time2*100); // средний коэфициент очереди округленный

    $sr_koef=$srednee/$end_model_time2*100; // средний коэфициент очереди

    $koef_pk12=$komp1[1]/$end_model_time2*100; // средний коэфициент ПК1

    $koef_pk22=$komp2[2]/$end_model_time2*100; // средний коэфициент ПК2

    rsort($sr_ochered2);

    $max_element2=$sr_ochered2[0]; // Максимальное число людей в очереди

    ?>

    </tr>

    </table >

    <table>

    <tr>

    <td> Средняя длина очереди</td><td><?=round($sr_dlina2,3) ?></td>

    </tr>

    <tr>

    <td> Максимальная длина  очереди</td><td><?=$max_element2 ?></td>

    </tr>

    <tr>

    <td> Коэфицент загрузки  ПК1</td><td><?=round($koef_pk12,3) ?></td>

    </tr>

    <tr>

    <td> Коэфицент загрузки  ПК2</td><td><?=round($koef_pk22,3) ?></td>

    </tr>

    </table>

    </div>

    </body> 

    Style.css – файл:

    body {

          color:black;

          width:960px;

          padding:10px;

    } 

    table,tr,td { 

          padding:1px;

          border:1px solid black;

          text-align:center;

          border-color:blue;

    } 

    td {

    width:20px;

    }

    div#asd{

    width:270px;

    float:right;

    margin-top:530px;

    margin-right:-280px;

    }

    div#zadanie{

    float:right;

    width:100%;

    padding:1px;

    size:11px;

    margin-top:550px; 

    }

    html body div table.rigth {

    float:rigth;

    }

    .main

          {

          color:red;

          font-weight:bold;

          } 

    input,select{

         padding:3px;

         color:#333333;

          border:1px solid #96A6C5;

         margin-top:2px;

         width:30px;

         font-size:11px;

          }

    select{

          width:auto;

          padding:2px;

          }

           

    label{

          font-size:15px;

          text-align:right;

          }

           

    .input-container{

          padding:1px;

          } 

    .greenButton{

          width:auto;

          margin:10px 0 0 2px;

          padding:3px 4px 3px 4px;

          color:black;

          outline:none;

          border:1px solid black;

          font-weight:bold;

            cursor:pointer;

            opacity:0.6;

            text-decoration:none;

            border:none;

          } 

            .Button{

          width:auto;

          margin:10px 0 0 2px;

          padding:3px 4px 3px 4px;

          color:black;

          outline:none;

          border:1px solid black;

          font-weight:bold;

            cursor:pointer;

            opacity:0.6;

            text-decoration:none;

            border:none;

            float:right;

          } 

              .Button1{

          width:100%;

          color:black;

          outline:none;

          border:1px solid black;

          font-weight:bold;

            text-decoration:none;

            border:none;

            float:right;

          }

    .greenButton:HOVER{

    opacity:1;

    }

    form {

          font-size:20px;

          font-family:Tahoma,Verdana,Arial,sans-serif;

          font-size:20px;

          font-weight:bold;

    }

    html body table tbody tr td{

    background:#30d1d5;

    } 

    html body div span{

    size:12px;

    float:right;

    border:0;

    }

    div#header  div#logo1 {

          float:right;

          margin-top:5px;

          border:0;

    }

    div#header  div#logo2 {

          float:right;

          margin-top:5px;

          border:0;

    } 

    div#header  div#uslovie {

          float:left:;

          margin-top:5px;

    } 

              Результат программы:

     

     …………………………………………………..

     

     

  1. Среда имитационного моделирования  GPSS World.
 

     Так как программа, которая выбранная  для моделирования процесса обслуживания судов, GPSS, то и детальная схема модулирующего алгоритма является ни чем иным как блок диаграмма, составленная в соответствии с требованиями к построению блок диаграмм. На рисунке представлена блок диаграмма для программы в среде GPSS. 

     Листинг программы

GENERATE 5,2  ;время обращения к системе

      TEST L Q$OCHER,10,OTKAZ ;если очередь меньше 10, иначе на отказ

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