Система обработки сообщений с ограниченным временем прохождения

Министерство  образования и  науки Российской Федерации

Федеральное агентство по образованию 
 

Кафедра автоматизированных систем

наименование  кафедры 

                      Допускаю  к защите

                                                       Руководитель ________

                      _____ Препод ____

должность, И.О. Фамилия

Система массового облуживания 

наименование  темы 

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

к курсовому проекту  по дисциплине 

Моделирования системы  
 
 
 
 
 

Выполнил  студент группы    ________   ________   ______________________

                    шифр      подпись   И.О. Фамилия 

Нормоконтролер                  _________     _______        ___ _____________ ____

                                 должность     подпись       И.О. Фамилия 
         
         
         
         
         
         
         
         

  Курсовой проект  защищен

            с оценкой ________ 
 
 
 
 
 
 

Город 2011 г

ИРКУТСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ 

ЗАДАНИЕ

НА КУРСОВОЕ ПРОЕКТИРОВАНИЕ (КУРСОВУЮ РАБОТУ) 

По курсу ______ Моделирование систем____________________

Студенту _______                        ____________  ______________

             (фамилия,  инициалы)

Тема  проекта  СИСТЕМА ОБРАБОТКИ СООБЩЕНИЙ С ОГРАНИЧЕННЫМ ВРЕМЕНЕМ ПРОХОЖДЕНИЯ

      В систему обработки  поступают  сообщения по одному через 3±1 с, накапливаясь, если необходимо, в буфере емкостью в два сообщения (при отсутствии места в буфере сообщение теряется). Обрабатывается одно сообщение в ЭВМ за 5±2 с, если оно ожидало в буфере не более 8 сек. (иначе оно также теряется).

     Разработать  концептуальную и программную модели системы. Экспериментально определить коэффициент потерь, загрузку буфера и ЭВМ, среднее значение и гистограмму  времени прохождения сообщений  через систему. Найти зависимость  этих показателей от емкости буфера. Оценить для исходной системы  минимальное модельное время, обеспечивающее достоверность результатов с  погрешностью не хуже ±5%. 

Рекомендуемая литература________________________________________

__________________________________________________________________________________________________________________________________________________________________________________________________________________ 

Графическая часть на _________ листах 

Дата  выдачи задания “______” __________________________2011 г. 

Дата  представления проекта руководителю “______” ___________2011 г. 

Руководитель  курсового проектирования ________________

 

Оглавление

1. Введение 5

2. Общие теоретические сведения 5

3.  Математическая модель решения поставленной задачи. 6

4.  Блок-схема алгоритма решения задачи 9

5. Руководство пользователя. 10

6. Анализ результатов и выводы 11

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

Приложение А 13

 

1. Введение

 

СИСТЕМА ОБРАБОТКИ СООБЩЕНИЙ С ОГРАНИЧЕННЫМ ВРЕМЕНЕМ ПРОХОЖДЕНИЯ 

    В систему обработки  поступают  сообщения по одному через 3±1с., накапливаясь, если необходимо, в буфере емкостью в два сообщения (при отсутствии места в буфере сообщение теряется). Обрабатывается одно сообщение в ЭВМ за 5±2с., если оно ожидало в буфере не более 8 сек. (иначе оно также теряется).

    Разработать  концептуальную и программную модели системы. Экспериментально определить коэффициент потерь, загрузку буфера и ЭВМ, среднее значение и гистограмму  времени прохождения сообщений  через систему. Найти зависимость  этих показателей от емкости буфера. Оценить для исходной системы  минимальное модельное время, обеспечивающее достоверность результатов с  погрешностью не хуже ±5%.

    В системах подобного рода буфер может способствовать снижению количества потерянных сообщений, но размер буфера не может быть бесконечным, поэтому в каждом конкретном случае требуется определение размера буфера, максимально соответствующего конкретной поставленной задаче.

2. Общие теоретические сведения

 

    Системы массового обслуживания представляют разновидность вероятностных математических моделей, разработанных для формализации процессов функционирования систем, которые по своей сути являются процессами обслуживания. Для этих процессов  характерна следующая общая структура: в совокупность пунктов (систему  обслуживания) поступают через некоторые  промежутки времени объекты (входящий поток), которые подвергаются там  соответствующим операциям (обслуживанию) и затем покидают систему (выходящий  поток), освобождая место для следующих  объектов (рис. 1).

    

Рис. 1. Структура СМО

    Промежутки  времени, через которые поступают  объекты, и время обслуживания, хотя и могут быть регулярными, но, как  правило, носят случайный характер. При массовом поступлении объектов в систему обслуживания могут  возникать очереди.

    Процессы  массового обслуживания типичны  для связи (телефон, телеграф, почта), транспорта, производственных процессов (ремонт и обслуживание   оборудования,   сборочные   линии),   преобразования информации в ЭВМ и т.п.

В любом  случае составными элементами процесса массового обслуживания являются:

    • входящий поток;
    • очередь;
    • система пунктов обслуживания;
    • выходящий поток.

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

    Различают потоки однородных и неоднородных событий. Однородный поток событий характеризуется  только моментами наступления этих событий (вызывающими моментами) и  задается последовательностью , где tn — момент наступления п-го события — неотрицательное вещественное число. Однородный поток также может быть задан в виде последовательности {tn} промежутков времени между n-м и (n-1)-м событиями, которая однозначно связана с последовательностью вызывающих моментов { tn }, где т.е. .

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

    Структура очередей ^поступление из них требований на обслуживание определяются как свойствами и возможностями систем, так и  установленными правилами прохождения  требований через системы.

    Требования  могут выполняться

    • в порядке поступления (операции на конвейере);

    • с приоритетом;

    • в случайном порядке (отбор образцов для статистического анализа);

    • в порядке первого очередного поступления при освободившемся канале обслуживания (прием вызова телефонной станцией).

    Очереди могут ограничиваться по длине, т.е. по числу заявок в них, и по времени  ожидания. Основной характеристикой  очереди является время ожидания. Система пунктов обслуживания может  иметь различную организацию: с  последовательными, параллельными  и комбинированными каналами. В зависимости  от поступления требований и образования  очередей система может изменять свою организацию.

3. Математическая модель решения поставленной задачи.

 

    При анализе цифровых систем связи наиболее важными характеристиками являются средний объем использования буфера и среднее время пребывания пакета в системе. Конкретизируем данные понятия. Для этого рассмотрим цифровую систему, состоящую из буфера способного хранить очередь бесконечной длины, и сервера обрабатывающего поступающую на его вход информацию (рис. 2).

Рис. 2. Схема односерверной цифровой системы

    Входную нагрузку, т.е. число пакетов поступивших на вход такой системы за время t, обозначим через a(t), а число обслуженных пакетов через b(t). Тогда общий объем данных, находящихся в системе в момент времени  равен:

.

    Очевидно, что общее время, проведенное всеми заявками в системе за время t, можно вычислить как площадь под графиком функции N(t):

.

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

.

    Если же функцию γ(t) разделить на общее число поступивших пакетов за время t, то можно получить среднее время нахождения пакета в системе:

.

Из последних двух выражений следует, что:

,

где - интенсивность входного потока. Если в системе связи имеет место стационарный режим работы, то полученное выражение оказывается не зависимым от времени t и может быть записано в виде:

.

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

    Интересным является также тот факт, что если в цифровой системе рассматривать только буфер данных, то вид формулы Литтла сохраняется, меняется только смысл переменных: - средняя длина очереди; W - среднее время пребывания пакета в очереди:

.

    И наоборот, если рассматривать только сервер, то формула Литтла принимает следующий вид:

,

где - среднее число пакетов на сервере (или серверах); - среднее время обработки на сервере одного пакета. Причем общее среднее время нахождения пакета в системе равно:

. 
 

 

4. Блок-схема алгоритма решения задачи

 

 

     

5. Руководство пользователя.

    После запуска программы откроется  окно, представленное на рис. 3.

Рис. 3. Окно программы

     Установите  необходимую ёмкость буфера и  нажмите на кнопку START.

     После нажатия на кнопку начнется процесс моделирования системы, результат работы представлен на рис. 4.

Рис. 4. Результат работы программы

6. Анализ результатов и выводы

    По  результатам тестирования можно  сделать следующие выводы:

    1. Самым эффективным размером буфера для моделируемой системы является буфер размером в 2. При увеличении размера начинает резко расти количество пакетов, потерянных из-за простоя в буфере.
    2. Размер буфера более 4 нецелесообразен, так как при заданных временных параметрах минимальное время поступления пакетов – 2 секунды. Но учитывая, что пакет не может храниться более 8 секунд, в буфере не может храниться сообщений больше, чем 4.
    3. Минимальное модельное время, обеспечивающее необходимую достоверность результатов, экспериментально была определена и установлена на уровне 2000 секунд.
    4. Среднее время нахождения пакета в системе равно 9.1±0.35 секунд.
    5. Коэффициент потерь составляет ≈0.45 или 45%.
    6. Использование буфера в системах подобного рода дает максимальный эффект, когда среднее значение частоты поступления запросов значительно больше времени их обработки.
 
 

 

  1. Список  использованной литературы.
  1. Советов Б.Я., Яковлев С.А. Моделирование систем. Практикум: Учеб. пособие для вузов  по спец. "Автоматизир. системы обработки  информ. И упр.".-М.:Высш.шк., 1999.-224 с.
  2. http://www.sernam.ru/t_51.php - Характеристики цифровых сетей.
  3. Петров А.В. Моделирования систем. Учебное пособие. 2000 г.

 

Приложение  А

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

unit Unit1; 

interface 

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls, TeEngine, Series, ExtCtrls, TeeProcs, Chart, ComCtrls; 

type

  TForm1 = class(TForm)

    Button1: TButton;

    Label1: TLabel;

    Chart1: TChart;

    Series1: TLineSeries;

    Label2: TLabel;

    Label3: TLabel;

    Label4: TLabel;

    Chart2: TChart;

    Series2: TBarSeries;

    TrackBar1: TTrackBar;

    Label5: TLabel;

    Label6: TLabel;

    Label7: TLabel;

    Label8: TLabel;

    Label9: TLabel;

    Label10: TLabel;

    Label11: TLabel;

    Label12: TLabel;

    procedure Button1Click(Sender: TObject);

    procedure TrackBar1Change(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end; 

var

  Form1: TForm1;

  buffer, raspred:array[1..16] of integer;

  count_out1, all_time, max_buf, count_out2, count_work, count_in, buf_capacity,time:integer; 

implementation 

{$R *.dfm} 

function getBufCount:integer;

var ii:integer;

cnt:integer;

begin

  cnt:=0;

  for ii:=1 to 16 do

     begin

        if buffer[ii]<>0 then inc(cnt);

     end;

  result:=cnt;

end; 

procedure working(t:integer);

var y:boolean;

i:integer;

begin

   y:=false;

   i:=buf_capacity;

   while y=false do

      begin

         dec(i);

         if buffer[i]<>0 then

            begin

               Form1.Series1.AddXY(time,buffer[i]+t);

               y:=true;

               inc(raspred[buffer[i]+t]);

               all_time:=all_time+buffer[i]+t;

               buffer[i]:=0;

            end;

         if i<=buf_capacity then

            begin

               y:=true;

            end;

      end;

end; 

procedure addtobuf;

var

y:boolean;

i:integer;

begin

   y:=false;

   i:=0;

   while y=false do

      begin

         inc(i);

         if buffer[i]=0 then

            begin

               buffer[i]:=1;

               y:=true;

            end;

         if i>=buf_capacity then

            begin

               if y<>true then

                  begin

                     y:=true;

                     inc(count_out1); //Ïîòåðÿííûé ïàêåò

                     Form1.Label1.Caption:=inttostr(count_out1);

                  end;

            end;

      end;

end; 

procedure TForm1.Button1Click(Sender: TObject);

var

i, time_get, time_do, time_work:integer;

flag:boolean;

begin

   Label1.Caption:='0';

   Label4.Caption:='0';

   Label8.Caption:='0';

   Label10.Caption:='0';

   Label12.Caption:='0';

   Series1.Clear;

   Series2.Clear;

   randomize;

   time:=0;

   all_time:=0;

   count_out1:=0;

   count_out2:=0;

   count_work:=0;

   count_in:=0;

   max_buf:=0;

   i:=0;

   time_work:=0;

   for i:=1 to 16 do

            begin

               buffer[i]:=0;

               raspred[i]:=0;

            end;

   flag:=true;

   buf_capacity:=TrackBar1.Position;

   time_do:=1;

   time_get:=1;

   while time<2000 do

      begin

         randomize;

         inc(time);

         //Èçìåíåíèå âðåìåíè íàõîæäåíèÿ  â áóôåðå çàïðîñîâ

         for i:=1 to buf_capacity do

            begin

              if buffer[i]<>0 then buffer[i]:=buffer[i]+1;

            end;

         //Äîáàâëåíèå íîâîãî çàïðîñà, åñëè  òðåáóåòñÿ

         if time=time_get then

            begin

              addtobuf;

              time_get:=time_get+2+random(3);

              inc(count_in);

              Label10.Caption:=inttostr(count_in);

            end;

         //Óäàëåíèå çàïðîñîâ > 8 ñåêóíä

         for i:=1 to buf_capacity do

            begin

               if buffer[i]>8 then

                  begin

                     buffer[i]:=0;

                     inc(count_out2);//Óâåëè÷èâàåì êîë-âî ïîòåðÿííûõ  ïàêåòîâ

                     Label4.Caption:=inttostr(count_out2);

                  end;

            end;

         //Îáðàáîòêà çàïðîñîâ

         if time=time_do then

            begin

              time_work:=3+random(5);

              time_do:=time_do+time_work;

              working(time_work);

              inc(count_work);

              Label8.Caption:=inttostr(count_work);

            end;

      if (max_buf<getBufCount) then max_buf:=getBufCount;

      end;

    for i:=4 to 14 do

      begin

        if raspred[i]<>0 then Series2.Add(raspred[i], inttostr(i), clRed);

      end;

    Label12.caption:=floattostr(all_time/count_work);

    //showmessage('Ìàêñèìàëüíàÿ  çàïîëíåííîñòü áóôåðà: '+inttostr(max_buf));

end; 

procedure TForm1.TrackBar1Change(Sender: TObject);

begin

Label6.Caption:= inttostr(Trackbar1.Position);

end; 

end.