Анализ производительности проекта программного обеспечения параллельной системы реального времени

Автор работы: Пользователь скрыл имя, 03 Июня 2013 в 19:33, лабораторная работа

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

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

Вложенные файлы: 1 файл

Otchet_SRV4.doc

— 1.43 Мб (Скачать файл)

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

 

Федеральное государственное  бюджетное образовательное учреждение высшего профессионального образования 

 

«Московский государственный  университет дизайна и технологии»

 

 

 

 

 

Лабораторная работа №4

“Анализ производительности проекта программного обеспечения параллельной системы реального времени ”

 

 

Вариант №4

 

 

 

 

 

Выполнил:

Бурдаков Н. К.

группа 40-10

 

Проверил:

Синеок А. Б.

 

 

 

 

 

 

 

 

 

 

 

 

Москва, 2013

 

 

Цель работы:

Ознакомление с методами приоритетного планирования параллельных задач с жёсткими временными ограничениями в системах реального времени.

 

Задание:

Составить программу анализа производительности проекта программного обеспечения параллельной СРВ.

 

Вариант №4

 

Tpi- массив времени начала предыдущего опроса датчика i;

∆ti-массив времени начала предыдущего опроса датчика i.

Период опроса датчиков:

  1. 6 секунд
  2. 3 секунды
  3. 4 секунды
  4. 2 секунды
  5. 12 секунд

 

Имеется пять задач у каждой из которых свой период Ti

 

  1. 6
  2. 3
  3. 4
  4. 2
  5. 12

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Блок-схема:

n -  число датчиков

x(в)[1..n], x(н)[1..n] – массивы верхних и нижних предельных значений датчиков

dx(a)[1..n] – массив значений аварийных отклонений контролируемых параметров от нормы

i – порядковый номер датчика

х – массив результатов измерений

XAV – массив переменных, вышедших за пределы аварийных значений

t – текущее время

Tk – общее время опроса датчиков

tp – время начала текущего опроса

 

 

Программный код:

 

var

  Form1: TForm1;

 

implementation

 

{$R *.dfm}

 

procedure TForm1.btnpuskClick(Sender: TObject);

var

  x:array [0..200,0..5] of extended;

  xav: array [0..200,0..5] of extended;

  xv: array [0..5]of extended;

  xn: array [0..5]of extended;

  xd: array [0..5]of extended;

  d1v, d1n, d1d:extended;

  d2v, d2n, d2d:extended;

  d3v, d3n, d3d:extended;

  d4v, d4n, d4d:extended;

  d5v, d5n, d5d:extended;

  i,j,k,t,dt,tk,o, tp,f:integer;

  v,n:extended;

Ti: array [0…200,0…5] of extended;

 

begin

 

xv[1]:=60;

  xv[2]:=30;

  xv[3]:=150;

  xv[4]:=5;

  xv[5]:=100;

 

  xn[1]:=30;

  xn[2]:=10;

  xn[3]:=50;

  xn[4]:=1;

  xn[5]:=20;

 

  xd[1]:=0.5;

  xd[2]:=0.5;

  xd[3]:=1;

  xd[4]:=0.05;

  xd[5]:=0.5;

 

 

 

 

Ti[1]=6;

Ti[2]=3;

Ti[3]=4;

Ti[4]=2;

Ti[5]=7;

 

  tk:=strtoint(edittk.Text);

  dt:=strtoint(editdt.Text);

  f:=1;

  t:=0;

  k:=0;

  tp:=t;

  for i:=0 to 20 do begin

    sgr.Cells[0,i+1]:=IntToStr(i);

    sgr.RowCount:=sgr.RowCount+1;

    for j:=1 to 5 do begin

      v:=xv[j]+xd[j];

      n:=xn[j]-xd[j];

 

      x[i,j]:=t;

      sgr.Cells[1,i+1]:=inttostr(t);

      randomize;

      x[i,j]:=random*v+n;

      Sgr.Cells[j+1,i+1]:=FloatToStrf(x[i,j],ffgeneral,5,2);

      if (x[i,j]<n) or (x[i,j]>v) then begin

        //showmessage('Момент  времени:    '+inttostr(t)+#13#13+'Номер  датчика:      '+inttostr(j) +#13#13+'Значение  датчика: '+FloatToStrf(x[i,j],ffgeneral,5,2) );

        sgrav.Cells[0,k+1]:=IntToStr(k);

        sgrav.RowCount:=sgr.RowCount+1;

        sgrav.Cells[1,f]:=inttostr(t);

        sgrav.Cells[2,f]:=inttostr(j);

        sgrav.Cells[3,f]:=FloatToStrf(x[i,j],ffgeneral,5,2);

        sgrav.Cells[4,f]:=floattostr(xv[j]);

        sgrav.Cells[5,f]:=floattostr(xn[j]);

        inc(f);

        inc(k);

      end;

      application.processmessages;

      sleep(200);

      Gauge1.Progress:=i+1;

       end;

      repeat

        t:=t+dt;

        if t<=Tk then break;

      until (t-tp)<>dt;

 

 

  end;

   showmessage('Процесс завершён');

 

end;

 

procedure TForm1.FormShow(Sender: TObject);

begin

  sgr.Cells[0,0]:='№';

  sgr.Cells[1,0]:='Время';

  sgr.Cells[2,0]:='Датчик 1';

  sgr.Cells[3,0]:='Датчик 2';

  sgr.Cells[4,0]:='Датчик 3';

  sgr.Cells[5,0]:='Датчик 4';

  sgr.Cells[6,0]:='Датчик 5';

 

  sgrav.Cells[0,0]:='№';

  sgrav.Cells[1,0]:='Время';

  sgrav.Cells[2,0]:='Датчик';

  sgrav.Cells[3,0]:='Значение';

  sgrav.Cells[4,0]:='MAX знач.';

  sgrav.Cells[5,0]:='MIN знач.';

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

close;

end;

 

end.

 

 

Экранная форма программы:

 

 


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