close

Вход

Забыли?

вход по аккаунту

?

lab 4

код для вставкиСкачать
Министерство образования РФ
Ульяновский Государственный Технический Университет
Кафедра ВТ
Дисциплина "Моделирование"
Лабораторная работа №4
Моделирование работы канала.
Выполнил: Хайруллин Р. К.
ЭВМд-32
Проверил:Куцоконь Н.С.
Ульяновск 2002
Моделирование работы канала.
Цель работы: Изучение характеристик работы канала, моделирование его работы. Изучение влияния скорости передачи информации и загрузки канала на его пропускную способность. Теоретическая часть Схема работы канала На абонентские пункты А1...Аm поступают заявки N типов (номер типа заявки соответствует ее приоритету). В соответствии со своим типом (по приоритету 1>2>...>N) заявки от абонентов передаются каналу; если канал занят, то они образуют очередь. ЗАДАНИЕ 1 Для потока заявок, полученного в лабораторной работе 3, выполнить моделирование работы канала для нескольких вариантов его скорости передачи информации. Вычислить характеристики входного потока заявок (ti, li, L, pi, wi, ui), очереди заявок (li, W, U, L) работающего канала (mi, ri, hi, R, ui). Построить графики зависимости характеристик ui, ri, R, wi, ui, li, W, U, L от скорости работы канала. Считать дисциплину обслуживания потока заявок каналом бесприоритетной.
ЗАДАНИЕ 2 Выполнить моделирование работы канала и вычисление его характеристик для дисциплины обслуживания, определяемой матрицей приоритетов варианта задания.
Для V=4 симв/с
#тип заявкимомент появления в каналемомент начала обслужива-ниямомент конца обслуживаниявремя ожидания в очередивремя нахождения в канале04006061188250172152146938173163217942164394311096315511354114994146119252210140187122963245166168124073255167159426083270177101013719438627715111399103413296141214881115033771513157011858545215141591124606467151516871357035521616272414473858014171783150797633141818421568586861619485416586468910201865173879692142118761818906951422189019290769817231907200923707162419232099397141625193921895572116264955229961726627196124097972118281979249995730162919952601008735133011008270102473816311102427710407471632110402841054756143311054292107176217341107130010867711535110863061101780153611101315111778616371111732511327921538111323341145798133911145342115980314401115935011748091541111743601189814154211189371120581816431120537812238271844112233881240835174511240399125584115461125540512728501747112724151288857164811288422130486616491130442913198751550113194381334881155111334446134988815521134945513658941653113654601380905155411380467139591315551139547714109181556414104881418922857414184951423923558114235021439921165941439508144893196011448516146493216614146452614789381462114785331493945156311493541151095217641151055115269591665115265591541967156641541572155396912671155358015689731568115685911583977156911583598159998516701159960816139911471416136171626996137211626624164210021673216426301652101210741165263916681013167511668648168410201676116846541701103017771170166117171040167811717667173410501779117346761752105818804175268717621065108111762696177710661582117777051792107215831179271318071079158411807724182310831685118237331839109016861183974318531096148711853753186911001688418697621874110758911874772188911021590118897841904110515911190479119191113159211919801193511181693419358091947112612941194781819611129149511961825197811361796119788311993114715971199384320091150169812009854202611551799120268652041116115ui - среднее время обслуживания заявки i-го типа Di - дисперсия времени обслуживания Ơi - среднеквадратичное отклонение времени обслуживания mi = l/ui - интенсивность обслуживания
li - среднее число заявок, поступающих на обслуживание ri = li/mi - коэффициент загрузки оборудования заявками i-го типа
hi = 1 - ri - коэффициент простоя
Тип заявкиuiDiƠimilirihi115,535711,2155771,1025320,0643680,8713,51607-12,516127,50,50,7071070,1333330,10,750,2531421,4142140,0714290,11,4-0,448,758,5681822,9271460,1142860,110,96250,0375
Коэффициент загрузки:
R = = 4.16
Интенсивность поступления заявок:
L == 0.25
Поток заявок характеризуется следующими величинами: ti - средний промежуток времени между поступлением заявок i-го типа
li = 1/ti - интенсивность поступления заявок i-го типа
pi = li/L - вероятность поступления заявки i-го типа
wi - среднее время пребывания заявки i-го типа в очереди
ui - среднее время пребывания заявки в системе
li - средняя длина очереди заявок i-го типа li = wili
Тип заявкиtilipiwiUili110,153850,0984850,3939390,03260915,760870,00321120--014030--01504219,750,0045510,018203010,40
Среднее время пребывания заявки в очереди:
W ==0,003
Среднее время пребывания заявки в системе:
U = =1,6
Среднее число заявок в системе:
L = =0,5
Графики зависимости среднего времени обслуживания заявки i-го типа от скорости работы канала:
1-ый тип
2-ой тип
3-ий тип
4-ый тип
График зависимости коэффициента загрузки от скорости передачи:
Текст программы:
#include <stdio.h>
#include <math.h>
#include "MesStream.h"
struct CItem
{
CMessage *mes;
CItem *next;
CItem *prev;
};
class CQueue
{
public:
CQueue();
CItem *Head;//"голова" очереди
CItem *Tail;//"хвост" очереди
int count;
void push(CMessage *mes);
void pop();
void print();
};
CQueue::CQueue()
{
Head=0;
Tail=0;
count=0;
}
//поместить в очередь
void CQueue::push(CMessage *mes)
{
if (Tail==0)
{
Tail=new CItem;
Head=Tail;
Tail->mes=mes;
Tail->next=NULL;
Tail->prev=NULL;
}
else
{
CItem* p=Tail;
Tail=new CItem;
Tail->mes=mes;
Tail->next=p;
Tail->next->prev=Tail;
Tail->prev=NULL;
}
count++;
}
//извлечь из очереди
void CQueue::pop()
{
if (Head!=0)
{
if (Head->prev!=NULL)
{
CItem *p=Head;
Head=Head->prev;
Head->next=NULL;
delete p;
}
else {
delete Head;
Head=0;
Tail=0;
}
}
count--;
}
void CQueue::print()
{
CItem *p=Head;
while (p!=0)
{
printf("%d ",p->mes->type);
p=p->prev;
}
printf("\n");
}
void main()
{
//*
int V=4;
CQueue queue;
CMesStream stream(100);
stream.SortMessages();
stream.GenerateLength();
stream.GenerateInterval();
stream.CountTransferTime(V);
//stream.SaveArray("arr.txt");
//*/
//*
int rest=0;
int t_channel=0;
int t_prev;
int interv=0;
bool fBusy=false;
FILE *f=fopen("queue.txt","w");
fprintf(f,"| # | type | t_come | interv | len | t_trans| queue |\n");
int i=0;
while ((i<stream.Count)||(queue.count>0))
{
if (i>0)
{
interv=stream.aMes[i].time-stream.aMes[i-1].time;
if (queue.count==0) //очередь пуста
{
rest=t_prev-interv;
if (rest<=0)
{
fBusy=false;
rest=0;
}
else fBusy=true;
}
else {
int t=interv-rest;
while (t>=0)
{
queue.Head->mes->t_channel=stream.aMes[i].time-t;
t-=queue.Head->mes->t_trans;
queue.pop();
if (queue.Head==0) break;
}
if (t>=0)
{
fBusy=true;
rest=abs(t);
}
}
}
if (i<stream.Count)
{
if (fBusy)
{
queue.push(&(stream.aMes[i]));
}
else {
stream.aMes[i].t_channel=stream.aMes[i].time;
t_prev=stream.aMes[i].length/V;
}
}
//*
fprintf(f,"|%3d|%8d|%8d|%8d|%8d|%8d|%8d|",
i,
stream.aMes[i].type,
stream.aMes[i].time,
interv,
stream.aMes[i].length,
stream.aMes[i].length/V,
queue.count);
//*/
CItem *p=queue.Head;
while (p!=0)
{
fprintf(f,"%d ",p->mes->type);
p=p->prev;
}
fprintf(f,"\n");
i++;
}
fclose(f);
//
f=fopen("channel.txt","w");
fprintf(f,"| # | type | t_chan | t_beg | t_end | t_wait |t_trans |\n");
for (i=0;i<stream.Count;i++)
{
fprintf(f,"|%3d|%8d|%8d|%8d|%8d|%8d|%8d|\n",
i,
stream.aMes[i].type,
stream.aMes[i].t_channel,
stream.aMes[i].time,
stream.aMes[i].t_channel+stream.aMes[i].t_trans,
stream.aMes[i].t_channel-stream.aMes[i].time,
stream.aMes[i].t_trans);
}
fclose(f);
//*/
}
Вывод:
В данной работе была смоделирована работа канала и изучено влияние скорости передачи информации и загрузки канала на его пропускную способность.
Моделирование показало, что чем больше скорость передачи информации, тем меньше коэффициент загрузки канала.
Документ
Категория
Рефераты
Просмотров
25
Размер файла
464 Кб
Теги
lab
1/--страниц
Пожаловаться на содержимое документа