Está en la página 1de 9

1

Ejemplo de cola M/M/1

Thomas R. Henderson, Sumit Roy, Collin Brady


University of Washington Seattle, WA

16 de junio de 2019

I. BACKGROUND

Cuando varios paquetes llegan a un servidor, los paquetes esperan en la cola según alguna disciplina -
típicamente por orden de llegada, primero en servir (FCFS) - para procesar las llegadas. Las
operaciones de cola se indican mediante la notación de Kendall que captura tres factores: a) el proceso de
entrada o llegada, b) el proceso de salida o servidor y c) el número de servidores. La cola más canónica
estudiada es la cola M/M/1/C, donde: "M" indica un proceso de llegada de Markovian, es decir, un
proceso de Poisson mediante el cual los tiempos de inter llegada de paquetes se exponenentitoriamente
1
Decir L (o Equiv. el Llegada Tasa En paquetes/seg Es λ). el Segundo "M" Indica Paquete Servicio Hora
(el
duración de principio a fin del servicio), que también se distribuye exponencialmente con el tiempomedio
deservicio; el tiempo de servicio es indep. del proceso de inter-llegada. El "1" indica que hay solamente un
servidor y "C" denota la capacidad del buffer (es decir,un máximo de paquetes C puede esperar en la cola
y cualquier otra llegada se niega la entrada/la pérdida). Una abstracción de la cola M/M/1/C se

muestra en el cuadro 1.

1. Ejemplo de cola M/M/1


2
Claramente, el tamaño de la cola (clientes que esperan el servicio) varía con el tiempo, en función del
proceso de llegada y servicio. Los intervalos de tiempo para los que la cola está vacía implican que
el servidor está (temporalmente)
inactivo, mientras que los períodos cuando la cola está llena (es decir, en la cola es igual a la capacidad C)
conducen a las caídas de paquetes para cualquier llegada subsiguiente. Ambos pueden ser indeseables en
un sistema de comunicaciones (uno quisiera minimizar la probabilidad de ambas ocurrencias) y, por lo
tanto, son objeto de directivas de administración de colas. Como veremos, intentar minimizar la
fracción de inactividad server afecta negativamente a la otra -
desatar una compensación. La distribución de la cola de estado estacionario para la cola M/M/1/C se
obtiene por consideración el análisis de M/M/1/∞ (es decir, cola de tamaño infinito, y por lo tanto no se
cae nada) primero y luego simplemente re-normalizando los resultados para la cola de) tamaño finita
(C ). Desde la distribución de colas, todas las estadísticas de interés -
tales como latencia media de paquetes, de paquetes en cola, probabilidad de bloqueo como función de
tamaño de cola finito (C), etc. se puede obtenerd.
M/M/1/- Cola
Denotan por R =µ λ , la relación entre la llegada (paquete) y la velocidad del servidor. Se puede afirmar
intuitivamente que Tal una cola es estable sólo si r <a) 1, es decir, si la tasa de llegada es inferior a la
tarifa de servicio, como se respaldará en los resultados. Dejar πk = P{X = n} denotar la p.m.f para la
distribución del tamaño de cola de estado estacionario X (es decir, si envía un gran número de paquetes a
través del sistema, recopile datos sobre tamaño de cola resultante en estado estacionario y computación
histograma), Entonces el Siguientes bien conocido Resultados enlatar Ser Encontrado En Cualquier Básica
Colas Teoría Mensaje de texto:

i. P- − 0 X á n} )á n á n (1 ) , n a 0, 1 , 2Por lo , tanto, la fracción de tiempo que el servidor está


inactivo .
y corr. ocupado es igual a - (de ahí la noción de 'utilización'). El valor esperado resultante del tamaño de
cola
Y[X]es . .
1−-

ii. La latencia media (W ) en el sistema experimentada por cualquier paquete (esta es la suma del
tiempo de espera
1
más el tiempo de servicio) es dado por E[W ] = =. Claramente• Como λ • ∞ µ, E[W ] implicando
la Potencial
•á á-

para tamaños de cola sin límites (y, por lo tanto, inestabilidad).


El resultado anterior se puede deducir de una ley mucho más amplia que es aplicable a una variedad
muy amplia de colas (más allá de sólo M/M/1) conocido como Little's Theorem, que se relaciona con
los promedios de los sistemas de cola:
El teorema de Little
Deje que N denote el número medio de clientes (paquetes) en el sistema (en nuestra notación, N -
E[X]+ 1,
es decir, los paquetes X en cola más el que se está sirviendo), y deje que T sea el tiempo medio en el
sistema por paquete ('tiempo en el sistema' es igual a la suma del tiempo de espera (W) y el tiem del
servicio), a continuación, por Little's Theorem N - T . Equivalentemente, si sólo nos centramos en
el número de paquetes en cola, entonces el foll. también sostiene: E[X] á E[W ].
Esto tiene una interpretación muy intuitiva que se puede verificar por simulación: el tamaño medio de la
cola (a largo plazo) es igual al producto de la velocidad de llegada y el tiempo medio de espera (E[W ])
para un paquete encola.

A. Implementación de ns-3

Un programa ns-3 implementadog la cola M/M/1 como un proceso de cola independiente (es decir, no
integrado con un dispositivo de red, que acaba de existir de forma aislada con un proceso de llegada y
salida de paquetes) se puede encontrar en contrib/training-2019/examples/mm1-queue.cc.
Opciones del programa $ ./waf --run 'mm1-queue --PrintHelp':
--lambda: tasa de llegada (paquetes/seg) [1]
--mu: tasa de salida (paquetes/seg) [2]
--initialPackets: paquetes iniciales en la cola [0]
--numPackets: número de paquetes para poner en cola [0]
--queueLimit: tamaño de la cola (número de paquetes) [100]
--quiet: si se suprime toda la salida [false]

Tenga en cuenta que lambda y mu se pueden establecer mediante el argumento de línea de comandos, y
el número de paquetes (llegadas) que se enviarán a través del sistema debe establecerse en un valor
distinto de cero para que el program haga algo útil.
Vamos a ejecutarlo una vez enviando 10 paquetes:
Opciones de programa $ ./waf --run 'mm1-queue --numPackets-
10':
--lambda: tasa de llegada (paquetes/seg) [1]
--mu: tasa de salida (paquetes/seg) [2]
--initialPackets: paquetes iniciales en la cola [0]
--numPackets: número de paquetes para poner en cola [0]
--queueLimit: tamaño de la cola (número de paquetes) [100]
--quiet: si se suprime toda la salida [false]

Esto genera un archivo de datos mm1queue.dat. Este archivo tiene el siguiente content:
0.352958 + 1
0.712375 + 2
0.722229 - 1
1.188 2
65
1.298 3
59
1.343 2
04
1.725 1
18
1.971 2
62
2.640 1
96
3.060 0
24
3.850 1
77
3.925 0
56
5.848 1
33
5.85479 - 0
7.42087 + 1
7.42253 - 0
9.34972 + 1
9.37861 - 0
11.3829 + 1
11.6735 - 0

Cada operación '+' es una operación de cola. Cada operación '-' es una operación de dequeue. La primera
columna es la marca de tiempo en segundos. La última columna es la longitud de la cola al final de la
operación. La simulación finaliza cuando el último paquete que se envía se ha puesto en cola y se ha
quitado (o se ha descartado).
El tiempo que la cola está ocupada se puede deducir de este archivo: el tiempo total de la simulación
(11.6735 segundos) menos la suma de cualquier intervalo de tiempo para el cual una cola de cola conduce
a una cola de longitud cero (por ejemplo, del tiempo 7.42253 al tiempo 9.34972). Tiempo cero hasta la
primera cola también debe ser considerado. Para responder a las siguientes preguntas, querrá escribir algún
tipo de script para analizar este archivo, o bien modificar el programa de C++ para calcular los tiempos de
inactividad y los retrasos.
Intente volver a ejecutar el programa con una semilla n umber aleatoriadiferente; ¿los resultados cambian
mucho?
$ ./waf --run 'mm1-queue --numPackets-10 --RngRun-2'

Las gotas también se rastrean. Por ejemplo, establezcamos la longitud de la cola en un valor bajo
(irrazonablemente) de 1 paquete y repitamos.
$ ./waf --run 'mm1-queue --numPackets-10 --queueLimit-1'

0.352958 + 1
0.712375 d 1
0.722229 - 0
1.188 1
65
1.298 1
59
1.343 0
04
1.971 1
62
2.640 0
96
3.850 1
77
3.925 0
56
5.848 1
33
5.854 0
79
7.420 1
87
7.422 0
53
9.349 1
72
9.378 0
61
11.38 1
29
11.67 0
35
B. Preguntas

1) Para un sistema de cola M/M/1, simule con los valores de 10 y 1,3,5,7 y 9, y trace la proporción
de inactividad de la cola, la longitud media de la cola y el retardo medio del λ/µ paquete, todo ello en función de

la relación . Para cada prueba, envíe 100.000 paquetes a través del sistema. Establezca el límite de
cola en un valor grande para evitar caídas.
2) Experimente con el resultado del desbordamiento del buffer de una cola de 100 paquetes M/M/1
estableciendo el valor de 10 y
9,5, 9,7 y 9,9. A partir de una cola vacía, ejecute una serie de pruebas para medir cuánto tiempo it
tarda la cola en desbordarse. overflow. Proporcione su estimación del tiempo promedio hasta el
desbordamiento, la desviación estándar de la muestra y el número de ensayos realizados para each
lambda.
Dos maneras de lograr lo anterior son 1) escribir un script para ejecutarse repetidamente con la
configuración deseada pero con diferentes valores de número de RngRun, y para cada ejecución, encontrar
el tiempo de la primera caída, o 2) ejecutar el programa para un número muy largo de paquetes y utilizar
la entrada en una cola inactiva como la hora de inicio para medir hasta la siguiente caída.

También podría gustarte