Анализ процесса функционирования системы

Автор работы: Пользователь скрыл имя, 01 Декабря 2011 в 22:11, реферат

Описание

Абонентская ЭВМ, подключенная к узлу коммутации, производительностью h бит/с обрабатывает поступающую от концентраторов информацию. Вычислительные машины обслуживают по k терминалов каждая, передавая данные к ЭВМ со скоростью В бит/с. При перегрузке по вычислительной мощности абонентской ЭВМ подключается главная ЭВМ. Суммарная производительность этих 2-х машин H бит/с (предполагается, что процесс коммутации выполняются мгновенно). С помощью машинного моделирования необходимо оценить среднее время обработки информации в ЭВМ.

Содержание

1 Задание 2
2 Введение 3
3 Анализ процесса функционирования системы (ПФС) 6
4 Типовая математическая схема процесса функционирования 8
5 Разработка схемы моделирующего алгоритма 10
6 Разработка машинной модели (программы) 12
7 Заключение 17
8 Список используемой литературы. 18

Работа состоит из  1 файл

kurs.doc

— 200.50 Кб (Скачать документ)

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

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

 

 

 

 

 

6 Разработка машинной модели (программы)

      При разработке машинной модели ПФС абонентской и магистральной сетей ВС необходимо определится в выборе языка программирования. Так для простоты и удобства ввода начальных условий (значений) и вывода результатов моделирования, как в текстовом, так и в графическом виде, целесообразно использовать язык программирования Borland Delphi 7.0. Написание машинной

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

     Программа была протестирована на совместимом  компьютере Intel с процессором Intel Dual-Core CPU T4300, оперативной памятью 3 Gb и установленной операционной системой Windows XP.  

Текст программы процесса функционирования: 

Program Project1;

Uses

  Forms,

  Unit1 in 'Unit1.pas' {FrmM};

{$R *.RES}

Begin

  Application. Initialize;

  Application.CreateForm (TFrmM, FrmM);

  Application. Run;

end.

     Модуль Unit1.pas: 
unit Unit1;

Interface

Uses

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

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

Type

   TFrmM = class (TForm)

    PgC: TPageControl;

    TabSheet1: TTabSheet;

    Edit1: TEdit; Edit2: TEdit; Edit4: TEdit; Edit5: TEdit; Edit6: TEdit; Edit7: TEdit;

    Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel;

    Label6: TLabel; Label7: TLabel; Label8: TLabel; Label9: TLabel; Label10: TLabel;

    Label11: TLabel;

    Edit3: TEdit;

    Bevel1: TBevel; Bevel2: TBevel;

    MainMenu1: TMainMenu;

    N1: TMenuItem; N2: TMenuItem;

    TabSheet2: TTabSheet;

    SB: TStatusBar;

    N3: TMenuItem;

    OpenDialog1: TSaveDialog;

    N4: TMenuItem;

    TabSheet3: TTabSheet;

    Chart1: TChart;

    Series1: TBarSeries;

    ListO: TListBox;

    Procedure N2Click (Sender: TObject);

    Procedure N1Click (Sender: TObject);

    Procedure N3Click (Sender: TObject);

    Procedure N4Click (Sender: TObject);

  Private

    {Private declarations}

  Public

    {Public declarations}

  End;

Var

  FrmM: TFrmM;

  Т0 : Integer=0;  // среднее время обслуживания 1 сообщения;

Рот : Integer=0;  // вероятность отказа в обслуживании

Le: Integer=0; // суммарный поток сообщений (интенсивность выходного потока сообщений)

К: Integer=0;  //количество терминалов, обслуженных мультиплексным каналом;

N: Integer=0; //количество мультиплексных каналов;

q: Integer=0; // емкость сообщений (в битах);

L: Integer=0;  // интенсивность потока сообщений от 1 терминала;

H: Integer=0;  // производительность абонентской ЭВМ (К1);

H: Integer=0;  //производительность главной ЭВМ (К2);

В: Integer=0;  // пропускная способность каналов ЭВМ;

С: Integer=0;  // пропускная способность магистрального канала связи. 

Implementation

{$R *.DFM}

Procedure TFrmM.N2Click (Sender: TObject);

Begin

  Close;

End;

Function SetParametrs: INTEGER; //Установка начальных условий

Var I: Integer;

Begin

  То: =StrToInt (FrmM.Edit1.Text);

  Рот: =Station (FrmM.Edit2.Text);

  Lе:= StrToInt(FrmM.Edit3.Text);

  К: =Station (FrmM.Edit4.Text);

  n: =StrToInt (FrmM.Edit5.Text);

  q: =StrToInt (FrmM.Edit6.Text);

  l: =StrToInt (FrmM.Edit7.Text);

  h: =StrToInt (FrmM.Edit8.Text);

  H: =StrToInt (FrmM.Edit9.Text);

  B: =StrToInt (FrmM.Edit10.Text);

  C: =StrToInt (FrmM.Edit11.Text);

 SetParametrs: =0;    //Проверка правильности ввода начальных условий

  If (K<1) or (n>1) then SetParametrs: =1;

  If (l<=0) or (q<=0) then SetParametrs: =2;

  If (h=0) or (H=0) then SetParametrs: =3;

  If Рот=False then SetParametrs: =4;

    Begin

     K:=5;

     n:=5;

     T0:=125;

  End;

End;   //Функция определения текущего значения потока

Function Potok (Var A: Array of integer; Var A1: Integer): Integer;

Var i: Integer;

Begin

   Min: =A1;

   For i: =0 to q do

     Le = Рот * n + h;

End; // Процедура проверки превышения ресурсов узла коммутации

Procedure Previshenie (Var H: Array of integer; Var NOZ: Integer);

Var i, Min, Ind: integer;

Begin

  Ind: =0; Min: =H[0];

  For i:=1 to q do  // Определение объема превышения ресурса

IMin: =H[i];     Ind: =i;  

If  Min>=Ln then NOZ: =NOZ+1

                       Min: =H[i];     Ind: =i; // Определение объема превышения ресурса

             Else H[Ind]:=H[Ind]+1; //Обработка входного потока сообщений

Min>=Ln  NOZ: =NOZ+1;

End; // Проверка оконч. моделирования

Procedure  Okonchanie (Var K: integer; Var TCurrent: Integer);

Begin

   If k>0 TFrmM.N1Click (Sender: TObject); then K: =K-Current;

TFrmM.N2 Click (Sender: TObject); then K: =K-Current2;   //Обработка результатов моделирования

FrmM.N1.Enabled:=false;  // Вывод результатов моделирования

FrmM.N3.Enabled:=false;

   Else Function SetParametrs: INTEGER;    //Установка начальных значений

TFrmM.N3Click (Sender: TObject);

N2 Click (Sender: TObject

End; //Функция определяющая закончили ли все операторы обслуживание

Function EndOper (Var A1, A2: array of integer): Boolean;

Var i, Sum: Integer;

Begin

   EndOper: =true;

   For i: =0 to Ko-1 do

      If (A1[i]>0) or (A2[i]>0) then EndOper: =false;

End;

Procedure TFrmM.N1Click (Sender: TObject);

               //Основная программа

Var i, Sum: integer; //Переменная цикла и подсчета обслуженных заявок

Begin //Запрет на сохранение отчета

   FrmM.N1.Enabled:=false;

   FrmM.N3.Enabled:=false;

   Case SetParametrs of          //Установка начальных значений

    1: MessageDlg   ('количество терминалов от 1 до '+ inttostr (MaxO) +'.', mtError, mbOkCancel, 0);

                        2:Messaged ('Значение полей с времен. интервалами >0.’ mtError, mbOkCancel, 0);

    3:MessageDlg ('Размер сообщения от 1 до '+inttostr (MaxO) +'.', mtError, mbOkCancel, 0);

    4: MessageDlg ('Сообщения >0.’ mtError, mbOkCancel, 0);

    0: Begin

      FrmM.SB.Panels [1].Text:=IntToStr (Kz);

      FrmM.SB.Panels [3].Text:=IntToStr (0);

      Randomize;

      TNext: =Generate (TpMin, TpMax);

      K[1]:=Generate(ToMin,ToMax);

      Kz:=Kz-1;

      NOKZ[1]:=NOKZ[1]+1;

      Repeat

                              If Kz>0 then TCurrent:=Minimums(K,TNext

                    Else TCurrent: =Minimums (K, ToMax);

        TNext: =TNext-TCurrent;

        If (TNext<=0) and (Kz>0) then Begin

                                        TNext: =Generate (TpMin, TpMax);

                                        Kz: =Kz-1;

                                        Commutator (H, NOZ);

                                      End;

        For i: =1 to Ko do

        Begin

          Work (K[i], TCurrent);

          If (K[i] <=0) and (H[i]>=1) then Begin

                                            H[i]:=H[i]-1;

                                            K[i]:=Generate (ToMin, ToMax);

                                            NOKZ[i]:=NOKZ[i] +1;

                                          End;

        End;

        FrmM.SB.Panels [3].Text:=IntToStr (Kz1-Kz);

        Application.ProcessMessages;

      Until (Kz<=0) and (EndOper (K, H) =true);  //определение окончания моделирования

    End. 

   

 

7 Заключение

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

Информация о работе Анализ процесса функционирования системы