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

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

Рубрика Программирование, компьютеры и кибернетика
Вид лабораторная работа
Язык русский
Дата добавления 27.06.2013
Размер файла 91,0 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

федеральное государственное автономное образовательное учреждение

высшего профессионального образования

Национальный исследовательский ядерный университет «МИФИ»

Факультет Кибернетики

Кафедра «Информатика и процессы управления» (№ 17)

ОТЧЕТ по лабораторным работам

по курсу "Математическое моделирование"

Выполнил студент группы К8-172 Кузин А.А.

Москва 2012

Задание

Узел коммутации сообщений (УКС) состоит из входного буфера, процессора и двух выходных линий с двумя буферами, по одному на входе каждой линии. В УКС через интервалы времени 15±7 мс поступают сообщения двух типов. Все сообщения сначала помещаются во входной буфер УКС, а затем поочередно обрабатываются процессором, независимо от их типа. Время обработки одного сообщения в процессоре равно 7 мс. После обработки процессором сообщения первого типа передаются по первой выходной линии, а сообщения второго типа - по второй выходной линии. Время передачи сообщения по любой выходной линии равно 15±5 мс. Поскольку по каждой выходной линии не может одновременно передаваться более одного сообщения, то сообщения первого типа предварительно поступают в буфер перед первой выходной линией, а второго типа - в буфер перед второй выходной линией. Применяемый метод контроля потоков сообщений требует одновременного присутствия в каждом буфере выходных линий не более трех сообщений. При полном заполнении буфера поступающее в УКС сообщение соответствующего типа получает отказ.

Смоделировать работу УКС в течение 10 секунд. Определить параметры загрузки устройств и вероятность отказа в обслуживании сообщений из-за возможности переполнения буферов выходных линий.

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

События:

P13 - новое сообщение

P1 - сгенерировано сообщение 1го типа

P2 - сгенерировано сообщение 2го типа

P3 - ожидание в буфере сообщений

P4 - обработка сообщений (CPU)

P5 - наличие места в буфере передачи 2

P6 - требование типа сообщения 2

P7 - наличие места в буфере передачи 1

P8 - требование типа сообщения 1

P9 - ожидание в буфере передачи 1

P10 - ожидание в буфере передачи 2

P11 - передано сообщения 1го типа

P12 - передано сообщения 2го типа

Переходы:

T10 - начало обработки сообщения

t1 - определение типа сообщения 1

t2 - определение типа сообщения 2

t3 - поступление на обработку в CPU

t4 - конец обработки и поступление в буфер передачи 1 сообщения 1

t5 - конец обработки и поступление в буфер передачи 2 сообщения 2

t6 - начало передачи сообщения 1

t7 - начало передачи сообщения 2

t8 - конец передачи сообщения 1

t9 - конец передачи сообщения 2

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

CDC = < D,X,{Sa},Y,{Ia},{Fa}, , >

Переменные

Входные переменные

X - тип сообщений, X ? {1, 2} ? {?};

Переменные состояния

g1 - состояние CPU, g1 ? {0, 1}, где 0 - не занят, 1 - занят

g2 - количество сообщений во входном буфере

g3i - количество сообщений в i-м буфере передачи

g4 - тип последнего сообщения, g4 ? {1, 2}

g5i - сумма времен ожидания сообщений i-го типа в i-й очереди на передачу

g6i - количество переданных сообщений по i-й линии

g7 - количество обработанных сообщений

g8 - количество поступивших сообщений

Выходные переменные

y1 - среднее время ожидания сообщений в очереди на обработку

y2i - среднее время ожидания сообщений i-го типа в очереди на передачу

y3 - количество поступивших сообщений

y4 - количество обработанных сообщений

y5 - вероятность отказа

y6 - загрузка всего оборудования

y7i - загрузка i-й линии

Процессы

P1 - генерация сообщений 1 и 2 типов

P2 - обработка сообщений

P3 - отправка сообщения 1го типа

P4 - отправка сообщения 2го типа

P5 - обработка информации

События

C1 - поступление сообщения

C2 - начало обработки сообщения

C3i - окончание обработки сообщения i-го типа

C4i - начало передачи сообщения i-го типа

C5i - завершение передачи сообщения i-го типа

C6 - формирование результатов моделирования

Описание D и Sa

D = {P1, P2, P3, P4, P5 }

Sp1 = {x}

Sp2 = {g1, g2, g31, g32, g4, g7}

Sp3 = {g31, g51, g61}

Sp4 = {g32, g52, g62}

Sp5 = {g51, g52, g61, g62, g7, g8, y1, y21, y22, y3, y4, y5, y6, y71, y72}

Отчет о моделировании

Время моделирования - 10 секунд

Поступило: 669 сообщений

Обработано: 34 (5.08%)

Вероятность отказа: 94.8%

Среднее время ожидания во входном буфере: 0.00с

Среднее время ожидания в очереди на передачу 1: 38.86мс

Среднее время ожидания в очереди на передачу 2: 40.43мс

Загрузка CPU: 2.38%

Загрузка линии передачи 1: 1.07%

Загрузка линии передачи 1: 2.91%

Листинг

unit userdef;

interface

uses SysUtils;

// -----------------------Изменяемая часть-----------------------------------

procedure Message1;

procedure Obrab;

procedure Send1;

procedure Send2;

procedure UserInit;

procedure UserStat;

function UserCheck: boolean;

procedure start;

implementation

uses prog,main;

type MsgSpec =

record

Kind: integer;

inTime: integer;

end;

var

LBase: BaseQueue;

SQueue1, SQueue2: BaseQueue;

X: integer;

Msg: MsgSpec;

узел коммутация сообщение буфер

Tobrab,Obrabot, Otkaz, Vsego,Twait,Twork, TSend1, TSend2, TwaitSend1, TwaitSend2,TobrabSend1, TobrabSend2, TworkSend1, TworkSend2, ObrabotSend1, ObrabotSend2, inq1, inq2: integer;

{$F+}

procedure Message1;

begin

form1. RichEdit1. Lines. Clear;

X: =Random (2) +1;

form1. richedit1. Lines. add (' Поступило сообщение типа '+inttostr (x) +'. ');

Shedull (Time+RangeRnd (15,7),P1);

Msg. Kind: =X;

Msg. inTime: =Time;

AddQueue (LBase,@Msg);

Vsego: =Vsego+1;

form1. richedit1. Lines. add (' Длина очереди: '+inttostr (LBase. Length));

Shedull (Time,P2);

end;

procedure Obrab;

var

MsgPtr: ^MsgSpec;

t: integer;

begin

form1. RichEdit1. Lines. Clear;

form1. richedit1. Lines. add (' Длина очереди: '+inttostr (LBase. Length));

if Tobrab<=Time then { т. е свободен }

if LBase. Length>0 then { очередь не пуста }

begin

form1. richedit1. Lines. add ('CPU взял 1 сообщение и начал обработку. ');

MsgPtr: = OutQueue (LBase);

Twait: =Twait+Time-MsgPtr^. inTime;

t: =7; // RangeRnd (7,1);

if MsgPtr^. Kind=1 then

begin

if SQueue1. Length<3 then

begin

Tobrab: =Time+t;

Twork: =Twork+t;

MsgPtr^. inTime: = TObrab;

AddQueue (SQueue1,MsgPtr);

Shedull (Tobrab,P3);

form1. richedit1. Lines. add (' Сообщение 1 типа отправлено в буфер передачи. ');

Obrabot: =Obrabot+1;

end

else

begin

Shedull (Tobrab,P2);

form1. richedit1. Lines. add (' Сообщение 1 типа получило отказ. ');

inc (Otkaz);

end;

end

else

begin

if SQueue2. Length<3 then

begin

Tobrab: =Time+t;

Twork: =Twork+t;

MsgPtr^. inTime: = TObrab;

AddQueue (SQueue2,MsgPtr);

Shedull (Tobrab,P4);

form1. richedit1. Lines. add (' Сообщение 2 типа отправлено в буфер передачи. ');

Obrabot: =Obrabot+1;

end

else

begin

Shedull (Tobrab,P2);

form1. richedit1. Lines. add (' Сообщение 2 типа получило отказ. ');

inc (Otkaz);

end;

end;

{FreeMem (MsgPtr,LBase. Size); }

{Shedull (Tobrab,P3); }

end

else form1. richedit1. Lines. add ('CPU простаивает. ')

else form1. richedit1. Lines. add ('CPU занят. ')

end;

procedure Send1;

var

MsgPtr: ^MsgSpec;

t: integer;

begin

form1. RichEdit1. Lines. Clear;

form1. richedit1. Lines. add (' Длина очереди передачи 1: '+inttostr (SQueue1. Length));

if TObrabSend1<=Time then

if SQueue1. Length>0 then { очередь не пуста }

begin

form1. richedit1. Lines. add ('Началась передача сообщения по линии 1. ');

MsgPtr: = OutQueue (SQueue1);

TwaitSend1: =TwaitSend1+Time-MsgPtr^. inTime;

t: =RangeRnd (15,5);

TworkSend1: =TworkSend1+t;

TobrabSend1: =Time+t;

FreeMem (MsgPtr,SQueue1. Size);

Shedull (TobrabSend1,P2);

inc (ObrabotSend1);

end;

end;

procedure Send2;

var

MsgPtr: ^MsgSpec;

t: integer;

begin

form1. RichEdit1. Lines. Clear;

form1. richedit1. Lines. add (' Длина очереди передачи 2: '+inttostr (SQueue2. Length));

if TObrabSend2<=Time then

if SQueue2. Length>0 then { очередь не пуста }

begin

form1. richedit1. Lines. add ('Началась передача сообщения по линии 2. ');

MsgPtr: = OutQueue (SQueue2);

TwaitSend2: =TwaitSend2+Time-MsgPtr^. inTime;

t: =RangeRnd (15,5);

TworkSend2: =TworkSend2+t;

TobrabSend2: =Time+t;

FreeMem (MsgPtr,SQueue2. Size);

Shedull (TobrabSend2,P2);

inc (ObrabotSend2);

end;

end;

procedure UserInit; { процедура инициализации переменных }

begin

Tobrab: =0;

TObrabSend1: = 0;

TObrabSend2: =0;

Twait: =0;

Obrabot: =0;

Otkaz: =0;

Vsego: =0;

Twork: =0;

Tworksend1: =0;

Tworksend2: =0;

TwaitSend1: =0;

TwaitSend2: =0;

ObrabotSend1: =0;

ObrabotSend2: =0;

X: =0;

InitQueue (LBase,Sizeof (MsgSpec)); { инициализация очереди }

InitQueue (SQueue1,Sizeof (MsgSpec));

InitQueue (SQueue2,Sizeof (MsgSpec));

Shedull (0,P1); { инициализация календаря }

end;

procedure UserStat; { процедура выдачи статистики }

begin

form1. RichEdit4. Lines. clear;

form1. richedit4. Lines. add ('Поступило: '+inttostr (Vsego) +' сообщений. ');

form1. richedit4. Lines. add ('Обработано: '+inttostr (Obrabot) +', т. е: '+floattostrf ( (Obrabot/Vsego) *100,ffGeneral,3,2) +'% сообщений. ');

form1. richedit4. Lines. add ('Вероятность отказа: '+floattostrf ( (Otkaz/Vsego) *100,ffGeneral,3,2) +'%. ');

form1. richedit4. Lines. add ('Среднее время ожидания в очереди: '+floattostrf ( (Twait/Vsego),ffFixed,8,5));

if obrabotSend1>0 then

form1. richedit4. Lines. add ('Среднее время ожидания в очереди на передачу 1: '+floattostrf ( (TwaitSend1/ObrabotSend1),ffFixed,8,5));

if obrabotSend2>0 then

form1. richedit4. Lines. add ('Среднее время ожидания в очереди на передачу 2: '+floattostrf ( (TwaitSend2/ObrabotSend2),ffFixed,8,5));

form1. richedit4. Lines. add ('Загрузка оборудования: '+floattostrf ( (Twork/Time) *100,ffFixed,3,2) +' % ');

form1. richedit4. Lines. add ('Загрузка линии передачи 1: '+floattostrf ( (TworkSend1/Time) *100,ffFixed,3,2) +'% ');

form1. richedit4. Lines. add ('Загрузка линии передачи 2: '+floattostrf ( (TworkSend2/Time) *100,ffFixed,3,2) +'% ');

end;

function UserCheck: boolean; {Функция проверки окончания моделирования}

begin

UserCheck: =false;

if Time>10000 then UserCheck: =true; { Время работы 10 секунд }

end;

procedure start;

{F-}

begin { программа }

ActMatr [P1]. ActPtr: =@Message1; { настройка адресов блоков }

ActMatr [P2]. ActPtr: =@Obrab;

ActMatr [P3]. ActPtr: =@Send1;

ActMatr [P4]. ActPtr: =@Send2;

ActMatr [P1]. Name: ='Сообщ1';

ActMatr [P2]. Name: ='Обработ. ';

ActMatr [P3]. Name: ='Перед1';

ActMatr [P4]. Name: ='Перед2';

UInitPtr: =@UserInit; { настройка адреса процедуры инициализации}

UStatPtr: =@UserStat; { настройка адреса процедуры статистики }

UCheckEnd: =UserCheck; { задание имени функции проверки условия }

SIMULATE; { вызов имитатора }

end;

end.

Размещено на Allbest.ru


Подобные документы

  • Моделирование узла коммутации сообщений, который состоит из входного буфера, процессора, двух выходных буферов и двух выходных линий. Разработка структурной схемы имитационной модели, описание ее функционирования. Выбор программных средств моделирования.

    курсовая работа [197,1 K], добавлен 20.02.2012

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

    курсовая работа [207,5 K], добавлен 15.02.2012

  • Моделирование работы компьютерного зала в течении 60 ч. Определение загрузки устройства подготовки данных (УПД), ЭВМ и вероятности отказа в обслуживании вследствие переполнения очереди. Определение соотношения желающих работать на ЭВМ и на УПД в очереди.

    контрольная работа [275,7 K], добавлен 05.07.2014

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

    курсовая работа [59,7 K], добавлен 29.06.2011

  • Разработка концептуальной модели системы обработки информации для узла коммутации сообщений. Построение структурной и функциональной блок-схем системы. Программирование модели на языке GPSS/PC. Анализ экономической эффективности результатов моделирования.

    курсовая работа [802,8 K], добавлен 04.03.2015

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

    реферат [20,7 K], добавлен 26.11.2012

  • Определение и отличительные признаки локальной сети. Методы коммутации каналов, сообщений, пакетов и ячеек. Особенности, различия и достоинства топологий сетей: "общая шина", "звезда", "кольцо", "дерево", "полносвязная", "многосвязная", "смешанная".

    курсовая работа [440,8 K], добавлен 16.05.2012

  • Особенности посылки сообщений в Windows и в Win32 API. Обработка состояний простоя. Маршрутизация сообщений в Windows 3.x. Основные циклы обработки сообщений. Применение многопотоковых приложений. Основные возможности редакторов WinWord 97 и Notepad.

    лекция [35,9 K], добавлен 24.06.2009

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

    реферат [41,4 K], добавлен 08.08.2009

  • Входная информация, формы представления. Наименование выходных сообщений, периодичность и сроки поступления, условные обозначения, описание реквизитов. Сводка о выполнении плана производства (выпуска) продукции в ЗАО "Плазмофильтр" за январь 2005 г.

    отчет по практике [578,8 K], добавлен 22.01.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.