50341

Постройка графа состояний P-схемы

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

Информатика, кибернетика и программирование

Для СМО из задания 1 построить имитационную модель и исследовать ее (разработать алгоритм и написать имитирующую программу, предусматривающую сбор и статистическую обработку данных для получения оценок заданных характеристик СМО). Распределение интервалов времени между заявками во входном потоке и интервалов времени обслуживания – геометрическое с соответствующим параметром (ρ, π1, π2).

Русский

2014-01-21

166 KB

19 чел.

Белорусский государственный университет

информатики и радиоэлектроники

Кафедра ПОИТ

Отчет

по выполнению лабораторной работы №3

Выполнила: ст. гр. 950503                                                                           Проверил:

Трутнёва А. А.                                                                 Мельник Н.И.

Минск

2012 г.

Задание

Задание 1. Построить граф состояний P-схемы .

 Смысл кодировки состояний раскрыть (время до выдачи заявки, число заявок в накопителе и т.д.).

На схеме условно обозначены:

По графу построить аналитическую модель и, решив ее, определить вероятности состояний. Рассчитать теоретическое значение показателя эффективности, заданного целью исследования задания 2.

13.

Задание 2. Для СМО из задания 1 построить имитационную модель и исследовать ее (разработать алгоритм и написать имитирующую программу, предусматривающую сбор и статистическую обработку данных для получения оценок заданных характеристик СМО). Распределение интервалов времени между заявками во входном потоке и интервалов времени обслуживания – геометрическое с соответствующим параметром (ρ, π1, π2). Если ρ не задано, то входной поток – регулярный.

13

-

0,55

0,5

Рбл, А

Граф СМО


Расчёт параметров:


Вероятность блокировки  =  0.071

Абсолютная пропускная способность = 0.297

Имитация работы СМО:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Collections;

namespace Modeling3

{

   class SMO

   {

       public int tics = 0;    //количество повторений

       int s1 = 0;             //источник

       int j1=0;               //очередь

       int t1=0;               //1 канал

       int t2=0;               //2 канал

       int maxJ=0;             //максимальное кол-во заявок в очереди

       public int deny = 0;    //блокировка

       int p=0;           //через сколько тактов источник дает заявку

       double p1=0;

       double p2=0;

       public int c2000 = 0;

       public int c1000 = 0;

       public int c2010 = 0;

       public int c1010 = 0;

       public int c1001 = 0;

       public int c2110 = 0;

       public int c2011 = 0;

       public int c1110 = 0;

       public int c0110 = 0;

       public int c1011 = 0;

       public int c2111 = 0;

       public int c1111 = 0;

       public int c0111 = 0;

       

       Random rnd1;

       Random rnd2;

       public int orders;          //кол-во поступивших заявок

       public int accepted;        //кол-во принятых заявок (заявки, которые прошли систему полностью)

      

       public SMO(int p, double p1, double p2, int maxJ)

       {

           this.p = p;

           this.p1 = p1;

           this.p2 = p2;

           this.maxJ = maxJ;

           orders = 0;

           accepted = 0;

           rnd1 = new Random(2);

           rnd2 = new Random(3);

       }

       public void tick(int counter)

       {

           s1=p;     //считает сколько тактов осталось до выдачи заявки

           bool pw=false;      //сработал источник

           bool p1w=false;     //сработал первый канал

           bool p2w=false;     //сработал второй канал

           bool locked = false; //заявка блокирована

           double tmp=0;       // буфер для записи результата рандома

           c2000 = 1;          // сработал источник

           string currentState = "";

           for (tics = 0; tics < counter; tics++)

           {

               pw=false;

               p1w=false;

               p2w=false;

               if (s1 != 0) s1--;

               if (s1 == 0) pw = true;

               if (t1 == 1)

               {

                   tmp = rnd1.NextDouble();

                   if (tmp > p1) p1w = true;

               }

               if (t2 == 1)

               {

                   tmp = rnd2.NextDouble();

                   if (tmp > p2) p2w = true;

               }

               

               if (p2w)

               {

                   t2 = 0;

                   accepted++;

                   

               }

               if (p1w)

               {

                   t1 = 0;

                   if (t2 == 0) t2 = 1;

                   if (j1 > 0)

                   {

                       j1--;

                       t1 = 1;

                   }

               }

               if (pw)

               {

                   orders++;

                   if ((j1 == 0) && (t1 == 0))

                   {

                       t1 = 1;

                       s1 = p;

                       locked = false;

                   }

                   else if (j1 < maxJ)

                   {

                       j1++;

                       s1 = p;

                       locked = false;

                   }

                   else

                   {

                       if(!locked) deny++;

                       locked = true;

                       s1 = 0;

                       orders--;

                   }

               }

               currentState = s1.ToString() + j1.ToString() + t1.ToString() + t2.ToString();

               switch(currentState)

               {

                   case "2000":

                       {

                           c2000++;

                           break;

                       }

                   case "1000":

                       {

                           c1000++;

                           break;

                       }

                   case "2010":

                       {

                           c2010++;

                           break;

                       }

                   case "1010":

                       {

                           c1010++;

                           break;

                       }

                   case "1001":

                       {

                           c1001++;

                           break;

                       }

                   case "2110":

                       {

                           c2110++;

                           break;

                       }

                   case "2011":

                       {

                           c2011++;

                           break;

                       }

                   case "1110":

                       {

                           c1110++;

                           break;

                       }

                   case "0110":

                       {

                           c0110++;

                           break;

                       }

                   case "1011":

                       {

                           c1011++;

                           break;

                       }

                   case "2111":

                       {

                           c2111++;

                           break;

                       }

                   case "1111":

                       {

                           c1111++;

                           break;

                       }

                   case "0111":

                       {

                           c0111++;

                           break;

                       }

                   default:

                       {

                           break;

                       }

               }

           }

       }  }}


 

А также другие работы, которые могут Вас заинтересовать

11023. Основные термины и понятия Сетей и Телекоммуникаций 40 KB
  Основные термины и понятия Сетей и Телекоммуникаций. Пакет данных frame. В большинстве сетей используется принцип разделяемой среды передачи – передавать в каждый момент времени может только один узел. Таким образом если передавать файл монолитным блоко...
11024. Использование хабов и свитчей 74 KB
  Использование хабов и свитчей Хабыконцентраторы – устройства физического уровня Свитч коммутатор– устройство канального уровня. И те и другие используются для построения топологии Звезда в сетях на витой паре и оптоволокне. Хабы: Хаб не способен каклибо о...
11025. Сетевые топологии 90.5 KB
  Сетевые топологии Топология – схема соединения узлов сети. Существуют 3 простейшие топологии на базе которых строится множество смешанных. В каждом сегменте сети в данный момент может существовать только одна топология. Общая шина – все узлы подключаются
11026. Сетевые платы 25 KB
  Сетевые платы Сетевая плата – устройство канального уровня. Каждая плата соединяет компьютер с отдельной сетью или с различными сегментами одной сети. По стандарту Ethernet в компьютер можно поставить до 4 сетевых плат включая встроенные. Сетевая плата может быть и дескрет
11027. Модели построения компьютерных сетей 90 KB
  Модели построения компьютерных сетей. Открытыми называются системы построенные из компонентов различных производителей по принципу конструктора. В таких системах стандартизируются правила взаимодействия блоков и соединения между ними. Конкретное устройство отд...
11028. Модемы. Примеры технологий в которых используются модемы 100 KB
  Модемы. Модем –устройство канального уровня соединяющее компьютеры с линией связи которая изначально не предназначалась для передачи данных. Примеры технологий в которых используются модемы: Подключение через городские телефонные линии Dial – Up По те...
11029. Функции отдельных уровней модели OSI 26.5 KB
  Функции отдельных уровней модели OSI. Программный уровень Прикладной отвечает за пользовательский интерфейс в виде графической оболочки или командной строки. Пример Сетевое окружения окна ввода паролей и.т.д. Представительский отвечает за пре...
11030. Методы доступа. Примеры методов доступа 28 KB
  Методы доступа В большинстве сетевых технологий используется метод разделяемой среды передачи при котором множество узлов сети по очереди используют одну и ту же линию связи. Передавать данные при этом необходимо по очереди иначе пакеты от разных узлов смешаются и
11031. Управление ресурсами одноранговой сети 156.5 KB
  Практическая работа Управление ресурсами одноранговой сети Для работы необходимо наличие 2х виртуальных компьютеров под управлением Windows98 Windows2000 или Windows XP. Также необходимо присутствие дистрибутива Windows98. Целью работы является создание одноранговой сети ...