Sunteți pe pagina 1din 12

ESCUELA POLITCNICA NACIONAL FACULTAD DE INGENIERA ELCTRICA Y ELECTRNICA

INGENIERA ELECTRNICA Y REDES DE INFORMACIN DISEO Y EVALUACION DE REDES

DISEO Y EVALUACIN DE REDES

DEBERES SEMANA 15

Temas del Deber:

1. Simulacin del Algoritmo de Teora de Colas Simples.


2. Simulacin del Algoritmo de CSMA/CD
Colaboradores:

Lenin Velastegu
Edgar Guamn
Diego Viamagua
Jos Briones
Carlos Santamara
Jonny Bonilla
Jenny Allaica
Santiago Garca
Vanessa Zrate
Edgar Guerra
Stefanie Len
Cristian Espinosa
Juan Bolaos
Alejandra Tello
Jaime Espinosa

Vernica Gabriela Maldonado Morales


21 de mayo del 2014
ESCUELA POLITCNICA NACIONAL FACULTAD DE INGENIERA ELCTRICA Y ELECTRNICA

INGENIERA ELECTRNICA Y REDES DE INFORMACIN DISEO Y EVALUACION DE REDES

Informe
Marco Terico

Sistema de Cola Simple

Es un sistema monofsico de canal simple, donde un servidor con una cola de clientes esperan
ser atendidos. Cualquier sistema de colas puede descomponerse en una red de estos sistemas:

Canal Simple: La instalacin de servicio podr acomodar slo a un cliente a la vez


Poltica: FIFO: Las llegadas se atienden de acuerdo con el orden de llegada.
Incremento del Tiempo: Dt tan pequeo que:

Es posible una llegada o una salida durante el intervalo Dt


Es imposible ms de una llegada o una salida durante ese intervalo.

Componentes del sistema:

Poblacin de clientes, cola, servidor


Estado del sistema: nmero de clientes en el sistema (esperando y siendo atendidos)
Eventos: llegadas, salidas (fin del servicio)

Diagrama lgico del sistema de colas


ESCUELA POLITCNICA NACIONAL FACULTAD DE INGENIERA ELCTRICA Y ELECTRNICA

INGENIERA ELECTRNICA Y REDES DE INFORMACIN DISEO Y EVALUACION DE REDES

A continuacin se muestra un algoritmo de Colas Simples:

Definicin de variables:

TLL: Tiempo de llegada de un elemento al sistema.


TS: Tiempo de servicio del sistema.
IA: Intervalo entre arribos de elementos (aleatorio).
T: Reloj del sistema (tiempo actual).
NC: Nmero de elementos en el sistema (longitud de la cola ms elemento que se est
atendiendo).
TAT: Tiempo de atencin a un elemento (aleatorio).
TF: Tiempo de finalizacin de la ejecucin

Proceso:

1.- Cada elemento que solicita el servicio debe esperar en cola hasta que el servidor se
desocupe y pueda atenderlo. Si es el 1ero en llegar no necesita esperar a que lo atiendan.

2.- (TLL TS): el elemento lleg antes de que el sistema termine de atender a los que estaban
en cola.
2.1. El Elemento debe esperar a que todos los que estuvieran delante sean atendidos. Esto
se expresa con la operacin
ESCUELA POLITCNICA NACIONAL FACULTAD DE INGENIERA ELCTRICA Y ELECTRNICA

INGENIERA ELECTRNICA Y REDES DE INFORMACIN DISEO Y EVALUACION DE REDES

2.1.1. (T = TLL) Adelantar el Reloj hasta su llegada,


2.1.2. (GENERAR IA) Generacin del IA para el prximo elemento:
2.1.3. (TLL=T+IA) Clculo de su tiempo de llegada
2.1.4. (NC=NC+1) El incremento de la longitud de cola.
2.2. (NC = 1) Se verifica si es el primer elemento de la cola.
2.2.1. Si lo es, se lo atiende inmediatamente para lo cual:
2.2.1.1.(GENERAR TAT) se genera el tiempo de atencin para ese Elemento
2.2.1.2.(TS=T+TAT) Se actualiza el tiempo de servicio (cuando terminara de atenderlo).
2.2.2. Si no es el primer elemento deber esperar para ser atendido

3.- (TLL > TS) El tiempo de llegada es mayor que el tiempo de servicio: transcurrir un perodo
antes del prximo arribo al sistema, por lo tanto hay tiempo para atender un elemento de los
que estn esperando en la cola.
3.1.(T = TS) La atencin se inicia avanzando el reloj al tiempo de servicio,
3.2.(NC=NC1) se decrementa la longitud de la cola
3.3.Si (NC>0) an quedan elementos por atender.
3.3.1.(GENERAR TAT) Se toma uno de la cola y se genera un tiempo de Atencin
para hacer efectivo la Atencin.
3.3.2.(TS = T + TAT) se lo atiende actualizando el tiempo de servicio del sistema,
3.4.Si (NC=0) la cola qued vaca con el ltimo elemento q se extrajo para
atender.
3.4.1.(TS = TLL) Por lo tanto solo ser necesario avanzar el tiempo de
servicio al instante en que llegue el prximo elemento.

4.- Finalizacin del Proceso


4.1.(T<TF) El algoritmo sigue con la verificacin de la condicin de fin sin realizar otra
operacin. Consiste en comparar el reloj con un tiempo final que indica el momento
en que la simulacin finalizar
4.2.(NC>0) control sobre el tamao de la cola que debe ser cero. Aqu se atienden a
todos los Usuarios en Cola.
4.2.1. Cuando llegamos a este Punto, se asigna un valor grande al TLL para
evitar que nuevos elementos deseosos de ser atendidos se ubiquen en cola.

Ejemplo a simular:

La institucin cuenta con un solo cajero que atiende una sola cola. Si hay en promedio ms de
una hora extra por da se justifica la incorporacin del segundo cajero, tanto para reducir las
horas extras como para mejorar la atencin a sus clientes.
Para verificar la necesidad se deber simular el funcionamiento de dicha oficina durante un
ao, emitiendo diariamente los siguientes datos:

o Tiempo ocioso.
o Tamao mximo de la cola.
o Mximo tiempo de atencin.
ESCUELA POLITCNICA NACIONAL FACULTAD DE INGENIERA ELCTRICA Y ELECTRNICA

INGENIERA ELECTRNICA Y REDES DE INFORMACIN DISEO Y EVALUACION DE REDES

o Cantidad de personas atendidas.


o Cantidad de horas extras.

Por final se deber emitir:

o Promedio de horas extras.


o Nmero promedio personas atendidas.
o Nmero mximo de personas atendidas en un da.

Definicin de variables:

ACANT : Acumulador de cantidad de personas atendidas en un da.


ACEXT : Acumulador de tiempo extra.
ESCUELA POLITCNICA NACIONAL FACULTAD DE INGENIERA ELCTRICA Y ELECTRNICA

INGENIERA ELECTRNICA Y REDES DE INFORMACIN DISEO Y EVALUACION DE REDES

CANT : Cantidad de personas atendidas en un da.


DIAS : Contador de das de la simulacin (0 < DIAS < 261).
EXT : Tiempo extra.
IA : Intervalo entre arribos de personas al sistema.
MCANT : Mayor cantidad de personas atendidas en un da del ao.
MNC : Mayor longitud de la cola alcanzada en un da.
MTA : Mayor tiempo de atencin a una persona.
NC : Nmero de personas en la cola actualmente.
PROCAN: Promedio personas atendidas diariamente durante todo el ao.
PROEX : Promedio de horas extras.
T : Reloj. Tiempo actual.
TA : Tiempo de atencin a una persona.
TLL : Tiempo de llegada de una persona al sistema.
TOC : Tiempo ocioso en el sistema.
TS : Tiempo de servicio del sistema.

Algoritmos antes presentados estn orientados al ejemplo de un cajero y un banco los cuales
fueron modificados para que en nuestro caso sea la simulacin de router y paquetes.

Cdigo de la simulacin:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace TeoriaDeColas
{
public partial class frmTeoriadeColas : Form
{
public frmTeoriadeColas()
{
InitializeComponent();
}

//Tiempo de llegada de un paquete al sistema


private int TLL = 0;
//Tiempo de servicio del sistema
private int TS = 0;
//Contador de das de la simulacin
private int Horas = 0;
//Cantidad de paquetes atendidos en un da
private int CANT = 0;
//Numero de paquetes en la cola actualmente
ESCUELA POLITCNICA NACIONAL FACULTAD DE INGENIERA ELCTRICA Y ELECTRNICA

INGENIERA ELECTRNICA Y REDES DE INFORMACIN DISEO Y EVALUACION DE REDES

private int NC = 0;
//Mayor tiempo de atencin a un paquete
private int MTA = 0;
//Mayor longitud de la cola alcanzada un da
private int MNC = 0;
//Acumulador de cantidad de paquetes atendidos en un da
private int ACANT = 0;
//Acumulador de tiempo extra
private int ACEX = 0;
//Tiempo extra
private int EXT = 0;
//Tiempo de atencin a un paquete
private int TA;
//Tiempo ocioso en el sistema
private int TOC;
//Mayor cantidad de paquetes atendidos en da del ao
private int MCANT = 0;
//Promedio de segundos extras
private decimal PROEX;
//Promedio de paquetes atendidos diariamente durante todo el ao
private decimal PROCAN;
//Intervalo entre arribos de paquetes al sistema
private int IA = 0;
// T es el intervalo o reloj del sistema en
private int T = 0;
// Generamos valores aleatorios para los arribos de los paquetes mediante un randomico
private Random num = new Random();

private void Form1_Load(object sender, EventArgs e)


{

}
// Evento Click del botn iniciar para llamar al mtodo proceso
private void btnIniciar_Click(object sender, EventArgs e)
{
Proceso();
}
// Mtodo Atender para la atencin de paquetes
private void Atender()
{
// Tiempo aleatorio de atencin a un cliente va a estar entre 0-30 useg
TA = num.Next(0,250);
// Seteamos el tiempo del servicio del sistema
TS = T + TA;
if (TA <= MTA)
{
}
else if (TA > MTA)
{
// El mayor tiempo de atencin al cliente es el tiempo de atencin al paquete
MTA = TA;
}
}
// Funcin para cuando se requiere un tiempo extra en atender al paquete ya
que no fue suficiente con el mayor tiempo de atencin a un cliente
private void Extra()
ESCUELA POLITCNICA NACIONAL FACULTAD DE INGENIERA ELCTRICA Y ELECTRNICA

INGENIERA ELECTRNICA Y REDES DE INFORMACIN DISEO Y EVALUACION DE REDES

{
//El valor del nmero de paquetes en la cola actualmente se setea con el valor
que tenga menos 1 ya que el 1 significa el paquete que sali
NC = NC - 1;
Atender();
//Seteamos el tiempo extra
EXT = EXT + TA;
}

// Mtodo que me permitir encerar todos los parmetros


private void Encerar()
{
// Seteo el tiempo de llegada del paquete en 0
TLL = 0;
// Seteo el tiempo de servicio del sistema en 0
TS = 0;
// Sete la cantidad de paquetes atendidas en un da en 0
CANT = 0;
// El nmero de paquetes en la cola actualmente se setea en 0
NC = 0;
// Seteo el mayor tiempo de atencin al paquete en 0
MTA = 0;
// Seteo el Mayor longitud de la cola alcanzada en un da en 0
MNC = 0;
// Seteo el valor del tiempo en 0
EXT = 0;
// Seteo el tiempo ocioso del sistema en 0
TOC = 0;
}
//Mtodo para ver sacar los paquetes analizados por da de los 365 das del ao
private void FinDiario()
{
//Aadir al ListBox los valores del TOC, de la MNC, el MTA y la CANT
lsbDatos.Items.Add("TOC= " + TOC + "\t\t\t MNC= " + MNC + "\t\t\t MTA= " + MTA +
"\t\t\t CANT= " + CANT + "\t\t\t EXT= " + EXT);
// Seteamos el acumulador de tiempo extra
ACEX = ACEX + EXT;
// Seteamos el Acumulador de paquetes en un da
ACANT = ACANT + CANT;
if (CANT <= MCANT)
{
}
else if (CANT > MCANT)
// La mayor cantidad de paquetes del da se setea con la cantidad de paquetes
MCANT = CANT;
}

// Mtodo para la funcin final


private void Final()
{
// Promedio de useg extras que se necesitaron durante todo el ao
PROEX = ACEX / 365;
// Promedio de paquetes atendidos durante todo el ao
PROCAN = ACANT / 365;
//Imprimo los valores antes mencionados del resumen de los extras
ESCUELA POLITCNICA NACIONAL FACULTAD DE INGENIERA ELCTRICA Y ELECTRNICA

INGENIERA ELECTRNICA Y REDES DE INFORMACIN DISEO Y EVALUACION DE REDES

lsbDatos.Items.Add("\n" + "PROEX=" + PROEX + "\n" + "t\t\t MCANT=" + MCANT + "\n" +


"\t\t\t PROCAN=" + PROCAN);
// Si el tiempo promedio extra es mayor a 1
if (PROEX > 1)
// Muestro en un MessageBox que se aadido un tiempo extra
MessageBox.Show("Aada tiempo extra");
//Caso contrario si el tiempo promedio extra es menor o igual a 1
else if (PROEX <= 1)
// Imprimo el messagebox que no se agrega el tiempo extra
MessageBox.Show("No agregar tiempo extra");
}
// Funcin del proceso que va a realizar toda la simulacin de las colas del paquete
private void Proceso()
{
// El tiempo del reloj del sistema se setea inicialmente en 0
T = 0;
do
{
// Los horas se aaden en 1 para poder analizar los paquetes da por da
Horas = Horas + 1;
// Lazo do while
do
{
if (TLL > TS)
{
// El tiempo del reloj del sistema es igual al tiempo del servicio
T = TS;
// El nmero de paquetes en la cola se setea con el valor del nmero
de paquetes actualmente en la cola menos 1
NC = NC - 1;
if (NC == 0)
{
// Seteamos el tiempo ocioso del sistema de los paquetes
TOC = TOC + TLL - TS;
TS = TLL;
}
else if (NC > 0)
//Llamo al mtodo atender que me permitir atender a c/u de los
paquetes
Atender();
}
// Tiempo de arribo de los paquetes al sistema es menor o igual al tiempo
de servicio de los paquetes
else if (TLL <= TS)
{
// Seteamos el tiempo de reloj del sistema
T = TLL;
//Tiempo aleatorio de arribo entre paquetes definido de 0 a 100 useg
IA = num.Next(0,150);
// Seteamos el tiempo de arribo de los paquetes al sistema
TLL = T + IA;
//Aadimos 1 al nmero actual de paquetes
NC = NC + 1;
//Aadimos 1 a la cantidad de paquetes actualmente atendidos en 1 da
CANT = CANT + 1;
if (NC > MNC)
ESCUELA POLITCNICA NACIONAL FACULTAD DE INGENIERA ELCTRICA Y ELECTRNICA

INGENIERA ELECTRNICA Y REDES DE INFORMACIN DISEO Y EVALUACION DE REDES

// Seteamos la mayor longitud de la cola alcanzada un da


MNC = NC;
if (NC == 1)
// Llamo al mtodo Atender para la atencin a los paquetes
Atender();
}
// Mientras el reloj del sistema sea menor a 240useg
} while (T < 240);
// Mientras el nmero de paquetes en la cola actualmente es mayor a 0
while (NC > 0)
{
//Llamo al mtodo extra
Extra();
}
// Si el nmero de paquetes actualmente es 0
if (NC == 0)
{
//Llamo al mtodo FinDiario de los paquetes en un da
FinDiario();
// Si las horas es menor a 260
if (Horas < 260)
// Llamo al mtodo Acerar que me encerar todos los parmetros
Encerar();
}
// Imprimo en el label el nmero de das analizados
lblDias.Text = Horas.ToString();
// Mientras los das sean menor a 365 (1 da)
} while (Horas < 365);
// Llamo al mtodo Final
Final();
}

private void btnCancelar_Click(object sender, EventArgs e)


{
Close();
}
}
}
ESCUELA POLITCNICA NACIONAL FACULTAD DE INGENIERA ELCTRICA Y ELECTRNICA

INGENIERA ELECTRNICA Y REDES DE INFORMACIN DISEO Y EVALUACION DE REDES

Funcionamiento del Programa


Se presenta el formulario en el cual se mostrar el nmero de das analizados, se desplegar una serie
de valores indicando el tiempo ocioso del servicio (TOC), el botn Iniciar para empezar con el
proceso y botn de Cancelar para abortar el proceso.

Una vez que presionemos el botn Iniciar se desplegar un cierto nmero de valores correspondientes
al tiempo ocioso de servicio (TOC), as como tambin se indicar el nmero de das analizados
ESCUELA POLITCNICA NACIONAL FACULTAD DE INGENIERA ELCTRICA Y ELECTRNICA

INGENIERA ELECTRNICA Y REDES DE INFORMACIN DISEO Y EVALUACION DE REDES

Conjuntamente aparecer un mensaje de notificacin indicando:

Y se podr observar tambin el nmero de segundos extras

S-ar putea să vă placă și