Моделирование цифровой передачи информации

Введение

 

Математика - язык, на котором сегодня  говорит любая точная наука. Современная  физика, химия, астрономия не мыслимы  без математики. В наши дни математика прочно вошла и в такие науки, как биология, психология, в науку о языке. Не отстает и экономика.

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

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

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

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

Целью данной контрольной работы является написание программы, которая моделирует работу ЭВМ.

 

 

Постановка задачи

 

В системе передачи цифровой информации передается речь в цифровом виде. Речевые  пакеты передаются через два транзитных канала, буферируясь в накопителях  перед каждым каналом. Время передачи пакета по каналу составляет 5 мс. Пакеты поступают через 6+3мс. Пакеты, передававшиеся более 10 мс, на выходе системы уничтожаются, так как их появление в декодере значительно снизит качество передаваемой речи. Уничтожение более 30% пакетов недопустимо. При достижении такого уровня система за счет ресурсов ускоряет передачу до 4 мс на канал. При снижении уровня до приемлемого происходит отключение ресурсов.

Смоделировать 10с работы системы. Определить частоту уничтожения  пакетов и частоту подключения  ресурса.

 

Методы решения поставленной задачи

Принцип ∆t

Чтобы смоделировать систему по этому принципу необходимо, чтобы  объекты системы имели описание в виде:

Zi(t) = F(Zi(t - 1), xj(t)),

где Zi – выходной сигнал; xj – входной сигнал.

Перед началом работы необходимо задать начальные значения: Zi(0), , tкон..

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

Принцип дельта T применяется для моделирования детерминированных систем.

Принцип особых состояний

Различают два типа состояния системы:

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

Особые состояния – это отдельные изолированные моменты времени, которые совпадают с моментом прихода какого-либо сигнала. В эти моменты характеристики объекта изменяются скачком.

Принцип последовательной проводки заявок

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

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

В результате анализа методов решения задачи, наиболее подходящим является метод  особых состояний.

 

 

Решение задачи

Структурная схема

На основании задания построим структурную схему:

Функционирование всей системы  осуществляется следующим образом:

Речевые пакеты передаются через два транзитных канала, буферируясь в накопителях  перед каждым каналом. Время передачи пакета по каналу составляет 5 мс. Пакеты поступают через 6+3мс. Пакеты, передававшиеся более 10 мс, на выходе системы уничтожаются, так как их появление в декодере значительно снизит качество передаваемой речи. Уничтожение более 30% пакетов недопустимо. При достижении такого уровня система за счет ресурсов ускоряет передачу до 4 мс на канал. При снижении уровня до приемлемого происходит отключение ресурсов.

Особые состояния, в которых может находиться система

В процессе работы ЭВМ возможны следующие ситуации:

  1. приход пакета в систему
  2. приход пакета в первый канал
  3. окончание передачи пакета по первому каналу
  4. приход пакета во второй канал
  5. окончание передачи пакета по второму каналу

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

 

Алгоритм решения задачи


Среда разработки

 

Алгоритм программы можно реализовать  с помощью разных языков программирования, например, С++, Паскаль, Delphi и т.д.

Средой  разработки для решения данной задачи я выбрала язык программирования высокого уровня С++.

Язык программирования С++ – это универсальный язык с  богатым набором операторов и  компактным способом записи выражений.

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

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

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

 

Переменные, используемые для написания  контрольной работы

 

M[1] – время прихода заявки на обслуживание первым каналом

M[2] – время окончания обслуживания заявки на первом канале

M[3] – время окончания обслуживания заявки на втором канале

i – особое состояние системы

priwlo – количество пришедших заявок

speed – скорость передачи пакетов

ocher – очередь

obsl – количество обслуженных заявок без использования ресурса

obslR – количество обслуженных заявок с использованием ресурса

 

Текст программы

#include <iostream.h>

#include <conio.h>

#include <string.h>

#include <stdio.h>

#include <stdlib.h>

#include <math.h>

void main()

{

clrscr();

randomize();

//============================

float m[4],t=0,tk=1000,ocher[4][100],pered[100],r,fdel=0,fob=0,fobr=0,rez=0;

int speed=5,priwlo=0,obsl=0,obslr=0,del=0,i,k,l[4];

//============================

m[1]=0;

m[2]=m[1]+5;

m[3]=m[2]+5;

for(k=0;k<5;l[k++]=0);

//============================

_1: if(t<tk){

//============================

i=1;

t=m[1];

for(int j=2;j<=3;j++){

    if (m[j]<t){

         t=m[j];

         i=j;

       };

   };

//============================

if(i==1){

  priwlo++;

  l[1]++;

  ocher[1][l[1]]=m[1];

  l[3]++;

  pered[l[3]]=m[1];

    r=rand()%1000;

    r=r/1000;

    m[1]+=6+3*(2*r-1);

  goto _1;

  }else{

//============================

  fdel=del;

  fob=obsl;

  fobr=obslr;

  if((fob!=0)||(fobr!=0)){rez=(fdel/(fob+fobr))*100;}else{rez=0;};

  if(rez<=30){speed=5;}else{speed=4;};

  if(i==2){

      if(l[1]!=0){

        m[2]+=speed;

        l[2]++;

        ocher[2][l[2]]=m[2];

        l[1]--;

        for(k=1;k<l[1];ocher[1][k]=ocher[1][k+1],k++);

        }else{m[2]=m[1];};

      goto _1;

    }else{

      if(l[2]!=0){

        //=======================================

          m[3]+=speed;

          l[2]--;

          for(k=1;k<l[2];ocher[2][k]=ocher[2][k+1],k++);

          if((m[3]-pered[1])>10){

              del++;

             }else{

               if(speed==5){obsl++;}

  else{obslr++;};

             };

         l[3]--;

         for(k=1;k<l[3];pered[k]=pered[k+1],k++);

         goto _1;

        //=======================================

        }else{m[3]=m[2];};

      goto _1;

    };

};

//============================

};

  fdel=del;

  fob=obsl;

  fobr=obslr;

//============================

cout<<"VREMYA RABOTI SISTEMI................"<<t<<endl;

cout<<"VSE ZAYAVKI......................... "<<priwlo<<endl;

cout<<"UNIZTOCHENO......................... "<<del<<endl;

cout<<"PEREDANO BEZ REZERVA................ "<<obsl<<endl;

cout<<"PEREDANO S REZERVOM................. "<<obslr<<endl;

cout<<"CHASTOTA UNIZTOCHENIYA PACETOV.."<<fdel/(fob+fobr)<<endl;

cout<<"CHASTOTA PODKLUCHENIA RESURSA..."<<fobr/(fob+fobr)<<endl;

//============================

getche();


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

 

Анализ работы программы

 

Как видно из результатов моделирования, количество поступивших заявок в  систему равно 171, количество переданных без подключения ресурсов пакетов  равно 151, а переданных с подключением ресурсов 13. Количество уничтоженных пакетов составляет 6.

 

В результате моделирования работы ЭВМ были получены следующие результаты:

При первом запуске программы:

- Время работы  системы: 1000.248108

- всего заявок: 165

- количество уничтоженных заявок: 5

- количество переданных пакетов без использования ресурса: 143

- количество переданных пакетов с использованием ресурса: 16

- частота уничтожения пакетов: 0,031447

- частота подключения ресурса: 0,100629


 

 

 

 

При втором  запуске  программы:

- Время работы  системы: 1003.95178

- всего заявок: 164

- количество уничтоженных заявок: 9

- количество переданных пакетов без использования ресурса: 136

- количество переданных пакетов с использованием ресурса: 19

- частота уничтожения пакетов: 0,058065

- частота подключения ресурса: 0,122581


 

 

Аналитический расчет

 

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

Находим по формуле:

 

Результаты аналитического расчета  и результаты при моделировании  системы приближенно равны.

 

 Заключение

 

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

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

При выполнении контрольной работы были выполнены основные этапы разработки модели, имитирующей работу ЭВМ:

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

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




Моделирование цифровой передачи информации