Documentos de Académico
Documentos de Profesional
Documentos de Cultura
=4
Figura 6 Relaci6n de los indices en una cola circular.
? La taduccién serfa “arreglo” entendido conforme a Ia idea de tabla, aunque también se puede emplear el
termino “matric”. Se ha decidido mantener el nombre original, por que en la mayoria de literaturas
especializada en programacién utiliza la palabra “array”.
ELECTRONICA UNMSM. N° 8, Marzo 200219
Se podré ver que para cualquier valor del indice del array siempre habré un elemento correspondiente en el
array circular, por ejemplo: Si el indice es igual a n=389 y el array circular tiene una longitud de 16, el
‘elemento que le corresponde a ese {ndice ser4 el elemento dado por el array [5]; se hace uso del operador
médulo “ % “* para determinar la posici6n correspondiente, esto es:
Array [389]=array|389%16}=array[5} (2.8)
3.2. Representacién de las colas a través de un array circular
‘Se denota por:
h: Indice del array donde est4 almacenado, el primer elemento de la cola, es decir, el que puede salir.
1: Indice del array donde esté almacenado, el ultimo elemento de cola, es decir, el dltimo que fue
ingresado a la cola.
N: Longitud total del array.
La operaci6n de eliminar implicard actualizar el valor de h, es decir, cada vez que se extraiga un elemento de la
cola el indice h debe tomar un nuevo valor, existen 2 posibilidades la primera es que el valor actual del indice
sea menor que la longitud del array por lo que la actualizaci6n de h se daré.incrementando su valor en uno; la
segunda opcién se presentard cuando el valor de ft sea mayor que la longitud del array actualizéndose el valor de
ha través del operador médulo (Ver figura 7).
a] =
=
4
pe
h=h+] eG D%N
htatencion)
estado_servidor=1;
if((estado_servidor==1)&((estado_cola==1))lestado_cola==2))&(cola_cliente.longitud>0))
‘equitar un elemento de la cola
cola_cliente = salir_cola_cliente(cola_cliente,t);
actualizar las estadisticas
servidor=AtenderCliente_servidor(servidor,t);
estado_servidor=0;
end
ELECTRONICA UNMSM N° 8, Marzo 200232
‘*****se calcula el tiempo de atencion del proximo paquete***
mu=VarExponencial(mu_medio, 1,0);
tatencion=t_ultima_atencion+mu;
Lultima_atencion=tatencion;
end
end
V. CONCLUCIONES
De las gréficas obtenidas para el tiempo medio de la cola, el tiempo medio de espera, clientes atendidos
clientes perdidos, se puede observar que la simulacién presenta el comportamiento esperado de una cola M/M/I,
siendo una relacién de importancia p= 1, dado que, para valores mayores a 1 la cola pierde estabilidad. El
tiempo medio de atencién presenta un grado de distorsién respecto a la curva esperada, por que la variable
tiempo_total_atencién no solo utiliza la variable aleatoria que define el tiempo entre paquetes atendido, sino que
también incluye una variable aleatoria con un comportamiento lineal que simula el efecto del retardo propio de la
atencién del servidor (ver figura 12).
Un inconveniente al realizar la simulacién con Matlab es el tiempo que demora todo un proceso de simulacién,
para nuestro caso una Pentium 1, de 133Mhz, el tiempo de simulacién fue de 3 horas 28 minutos. Una
alternativa a este inconveniente es llevar el c6digo ya optimizado en Matlab, a un lenguaje de bajo nivel como
C++, Para mas detalles ver [Gregory,1998].
EI vincular el tiempo de muestreo de la simulacién con los tiempos promedios de legada y atencién de un
paquete asegura la obtencién de una data estadfstica confiable, puesto que, todos los eventos generados
aleatoriamente han sido considerados, reflejéndose en las carencias de valores negativos en las variables
cencargadas de recoger la estadistica de la cola.
VI. BIBLIOGRAFiA.
Luis Joyanes Aguilar, Programacién Orientada a Objetos, Osborne Mc Graw-Hill,1998.
© Gregory L.Heilman, Estructura de datos, algoritmos y programacién orientada a objetos,
Mc Graw-Hill, 1998.
+ Matlab edicién de estudiante, Prentice Hall, 1996.
* Thomas L. Saaty, Elementos de la Teoria de Colas, Mc Graw-Hill,1967.
* Mischa Schwartz, Redes de telecomunicaciones, Me Graw-Hill,1994,
ELECTRONICA UNMSM. N° 8, Marzo 2002