25
Teoría de Colas De Rolando Titiosky Basados en Extracto de: •Ing Luís Zuloaga Rotta. Investigación de Operaciones, 2005. UNI FIIS, Peru. •Guido J. Pace (UNNE FCENA). Modelos y simulación,1993.

Clase 3. Unidad 3

Embed Size (px)

Citation preview

Page 1: Clase 3. Unidad 3

Teoría de Colas

De Rolando TitioskyBasados en Extracto de: •Ing Luís Zuloaga Rotta. Investigación de Operaciones, 2005. UNI FIIS, Peru. •Guido J. Pace (UNNE FCENA). Modelos y simulación,1993.

Page 2: Clase 3. Unidad 3

Modelizacion Con Colas• MODELO de COLAS

– Aspecto o fenómeno de la vida moderna que encontramos en nuestras actividades diarias.

• En la caja de un supermercado, • Accediendo a Internet, • En una planta de producción, etc.

• Emerge el Modelo: cuando unos recursos compartidos necesitan ser accedidos para dar servicio a un elevado número de trabajos o clientes.

Instalaciones de Servicio

Page 3: Clase 3. Unidad 3

Objetivos de la Modelizacion de ColasObjetivos de la Modelizacion de Colas

• Predecir la performance del sistema.

• Evaluar estrategias alternativas para elegir la mejor.

• Determinar cómo Dimensionar el sistemaControlar la entrada

para obtener la performance requerida, en términos de:Grado de servicio (GOS)Retardo

Instalaciones de Servicio

Page 4: Clase 3. Unidad 3

AplicacionesAplicaciones• Redes de comunicaciones:

– Dimensionamiento de vínculos entre centrales de conmutación.

– Dimensionamiento de recursos compartidos en centrales de conmutación y en procesadores.

– Métodos de acceso en redes (FDMA, TDMA, CDMA, Aloha y sus variantes, CSMA y sus variantes, etc.).

• Plantas de producción.

• Redes viales.

• Supermercados, bancos, “fast-food”,..

Instalaciones de Servicio

Page 5: Clase 3. Unidad 3

Características ComunesCaracterísticas Comunes

• Flujo de “clientes” a través del sistema:

– Comunicaciones telefónicas.– Paquetes de datos, celdas ATM, etc.– Automóviles.– Clientes.

• “Servidores” o recursos compartidos:

– Líneas troncales.– Canales de comunicación (frecuencias, intervalos de tiempo,

códigos, etc.)– Buffers, memorias.– Caminos, cajeros, vendedores, etc.

• Políticas de Trabajo:– Primero entrar Primero en Salir– El Trabajo Mas Corto Primero– RoundRobin– Etc… Instalaciones de Servicio

Page 6: Clase 3. Unidad 3

Tipos de ColasLos sistemas de colas se distingue por atributos:• Número de fases, canales y Servidores.• Política: como se tratan las llegadas para dar servicio (FIFO,

LIFO, Prioridades, etc.)

CanalSimple Múltiple

Fas

eM

últi

ple

Sim

ple

Page 7: Clase 3. Unidad 3

Conceptos• Políticas de Colas: el modo en que

los clientes llegan y interactúan con las instalaciones de servicio. – FIFO, LIFO, Round Robin, etc…

• Clientes: entidades cuya llegada ejerce demandas sobre alguna instalación.

• Patrón de llegadas: función de:– Tamaño del universo de clientes

posibles– Nivel de sus actividades del cliente.

Page 8: Clase 3. Unidad 3

Sistema de Cola Simple• Es un sistema Monofásico de canal

simple• Un servidor con una cola de clientes

esperando ser atendidos – Cualquier sistema de colas puede

descomponerse en una red de estos sistemas.• Se supone:

– Canal Simple: La instalación de servicio podrá acomodar sólo a un cliente a la vez

– Política: FIFO: Las llegadas se atienden de acuerdo con el orden de llegada.

– Incremento del Tiempo: Dt tan pequeño que• Es posible una llegada o una salida durante el intervalo Dt• Es imposible más de una llegada o una salida durante ese intervalo.

Page 9: Clase 3. Unidad 3

Colas Simples: AlgoritmoVariables: • 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: Número de elementos en el

sistema (longitud de la cola más elemento que se está atendiendo).

• TAT: Tiempo de atención a un elemento (aleatorio).

• TF: Tiempo de finalización de la ejecución.

Condiciones Iniciales: TLL= Dar un valor InicialTAT=NC=TS=IA=T=0TF =Dar valor Inicial.

Page 10: Clase 3. Unidad 3

Colas Simples: Algoritmo/2

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: Número de elementos en el sistema (longitud de la

cola más elemento que se está atendiendo).• TAT: Tiempo de atención a un elemento (aleatorio).• TF: Tiempo de finalización de la ejecución.

Proceso:1. C/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.

Page 11: Clase 3. Unidad 3

Colas Simples: Algoritmo/3Proceso: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 operación

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

2.1.2. (GENERAR IA) Generación del IA para el próximo elemento:

2.1.3. (TLL=T+IA) Cálculo 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 atención 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

Page 12: Clase 3. Unidad 3

Colas Simples: Algoritmo/4Proceso:3. (TLL > TS) El tiempo de llegada

es mayor que el tiempo de servicio: transcurrirá un período antes del próximo arribo al sistema, por lo tanto hay tiempo para atender un elemento de los que están esperando en la cola.

3.1. (T = TS) La atención se inicia avanzando el reloj al tiempo de servicio,

3.2. (NC=NC–1) se decrementa la longitud de la cola

3.3. Si (NC>0) aún quedan elementos por atender.

3.3.1. (GENERAR TAT) Se toma uno de la cola y se genera un tiempo de Atención para hacer efectivo la Atención.

3.3.2. (TS = T + TAT) se lo atiende actualizando el tiempo de servicio del sistema,

3.4. Si (NC=0) la cola quedó vacía 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 próximo elemento.

Page 13: Clase 3. Unidad 3

Colas Simples: Algoritmo/5Proceso:4. Finalización del Proceso

4.1. (T<TF) El algoritmo sigue con la verificación de la condición de fin sin realizar otra operación. Consiste en comparar el reloj con un tiempo final que indica el momento en que la simulación finalizará

4.2. (NC>0) control sobre el tamaño 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.

Page 14: Clase 3. Unidad 3

Colas Simples: EjemploLa institución cuenta con un solo cajero que atiende una sola cola.

Si hay en promedio más de una hora extra por día se justifica la incorporación del segundo cajero, tanto para reducir las horas extras como para mejorar la atención a sus clientes.

Para verificar la necesidad se deberá simular el funcionamiento de dicha oficina durante un año, emitiendo diariamente los siguientes datos:

a- Tiempo ocioso. b- Tamaño máximo de la cola. c- Máximo tiempo de atención. d- Cantidad de personas atendidas. e- Cantidad de horas extras.  Por final se deberá emitir: f- Promedio de horas extras. g- Número promedio personas atendidas. h- Número máximo de personas atendidas en un día.

Page 15: Clase 3. Unidad 3

Colas Simples: Ejemplo

2

• ACANT : Acumulador de cantidad de personas atendidas en un día.

• ACEXT : Acumulador de tiempo extra.• CANT : Cantidad de personas

atendidas en un día.• DIAS : Contador de días de la

simulación (0 < DIAS < 261).• EXT : Tiempo extra.• IA : Intervalo entre arribos de

personas al sistema.• MCANT : Mayor cantidad de personas

atendidas en un día del año.• MNC : Mayor longitud de la cola

alcanzada en un día.• MTA : Mayor tiempo de atención a

una persona.• NC : Número de personas en la cola

actualmente.• PROCAN: Promedio personas

atendidas diariamente durante todo el año.

• PROEX : Promedio de horas extras.• T : Reloj. Tiempo actual.• TA : Tiempo de atención a una

persona.• TLL : Tiempo de llegada de una

persona al sistema.• TOC : Tiempo ocioso en el sistema.• TS : Tiempo de servicio del sistema.

Page 16: Clase 3. Unidad 3

Colas Simples: Ejemplo

2• ACANT : Acumulador de cantidad

de personas atendidas en un día.• ACEXT : Acumulador de tiempo

extra.• CANT : Cantidad de personas

atendidas en un día.• DIAS : Contador de días de la

simulación (0 < DIAS < 261).• EXT : Tiempo extra.• IA : Intervalo entre arribos de

personas al sistema.• MCANT : Mayor cantidad de

personas atendidas en un día del año.

• MNC : Mayor longitud de la cola alcanzada en un día.

• MTA : Mayor tiempo de atención a una persona.

• NC : Número de personas en la cola actualmente.

• PROCAN: Promedio personas atendidas diariamente durante todo el año.

• PROEX : Promedio de horas extras.• T : Reloj. Tiempo actual.• TA : Tiempo de atención a una

persona.• TLL : Tiempo de llegada de una

persona al sistema.• TOC : Tiempo ocioso en el

sistema.• TS : Tiempo de servicio del

sistema.

Page 17: Clase 3. Unidad 3

Cola Simple. Ejemplo. Salida• DÍA Nº ...: 254

– Tiempo ocioso........................................: 7 min.– Tamaño máximo de la cola................: 7– Máximo tiempo de atención.............: 9– Cantidad de personas atendidas..: 51– Cantidad de horas extras................: 5 min.

• DÍA Nº ...: 255– Tiempo ocioso........................................: 6 min.– Tamaño máximo de la cola................: 14– Máximo tiempo de atención.............: 8– Cantidad de personas atendidas..: 55– Cantidad de horas extras................: 4 min.

• DÍA Nº ...: 256– Tiempo ocioso........................................: 0 min.– Tamaño máximo de la cola................: 18– Máximo tiempo de atención.............: 10– Cantidad de personas atendidas..: 66– Cantidad de horas extras................: 8 min.

• DÍA Nº ...: 257– Tiempo ocioso........................................: 4 min.– Tamaño máximo de la cola................: 9– Máximo tiempo de atención.............: 7– Cantidad de personas atendidas..: 44– Cantidad de horas extras................: 5 min.

• DÍA Nº ...: 258– Tiempo ocioso........................................: 3 min.– Tamaño máximo de la cola................: 9– Máximo tiempo de atención.............: 9– Cantidad de personas atendidas..: 57– Cantidad de horas extras................: 6 min.

• DÍA Nº ...: 259– Tiempo ocioso........................................: 15 min.– Tamaño máximo de la cola................: 10– Máximo tiempo de atención.............: 9– Cantidad de personas atendidas..: 49– Cantidad de horas extras................: 9 min.

• DÍA Nº ...: 260– Tiempo ocioso........................................: 0 min.– Tamaño máximo de la cola................: 9– Máximo tiempo de atención.............: 8– Cantidad de personas atendidas..: 48– Cantidad de horas extras................: 1 min.

• PROMEDIOS– Promedio de horas extras.................: 5.68 min.– Promedio de personas atendidas...........: 53.66– Nº Máximo de personas atendidas en un día.: 67

(solo se listan los últimos días de simulación por cuestión de espacio)

Page 18: Clase 3. Unidad 3

Unidad 5Planificación de Trabajos

en las Colas

Rolando TitioskyExtracto de:•Guido J. Pace (UNNE FCENA). Modelos y simulación,1993.•Introducción a la Simulación de Eventos Discretos. Gabriel A. Wainer. Departamento de Computación – FCEN, UBA.•Ing Luis Zuloaga Rotta. Investigación de Operaciones, 2005. UNI FIIS, Peru.

Page 19: Clase 3. Unidad 3

Planificación• Repartir el tiempo disponible de atención de un

Recurso Servidor entre los Elementos que están en cola y esperan su Servicio. – Solo uno de ellos puede serlo (en c/Servidor).

• Existen 2 tipos de algoritmos de planificación,– Expropiativos: atienden el Elemento hasta terminar. – No expropiativos: Asignan un tiempo de Atención a

c/Elemento después del cual se lo saca y se atiende a otro Elemento y hasta que c/Elemento acabe su trabajo.

• A menudo, se realiza Simulación de un Sistema de Colas bajo diferentes políticas a fin de encontrar la que mejor se ajusta a la distribución de Servicio del Sistema.

Page 20: Clase 3. Unidad 3

CRITERIOS DE PERFORMANCE

• Utilización del Servidor: es cuanto tiempo ha pasado utilizado el Servidor: T.Utilizado/TiempoTotal

• Rendimiento: Cantidad de Elementos Atendido• Tiempo de retorno: Intervalo desde el momento de

inicio de un trabajo hasta su final.• Tiempo de espera: Intervalo desde el momento de

encolamiento hasta ser atendido.• Tiempo de respuesta: Es el tiempo que el proceso

tarda en comenzar a responder, pero no el tiempo que tarda en emitir esa respuesta.

Maximizar utilización y rendimiento del servidor Minimizar tiempo de retorno, de espera y de

respuesta.

La Planificación de la Cola Afecta Sensiblemente la Performance

Page 21: Clase 3. Unidad 3

PLANIFICACIÓN DE COLASFirst-Come-First-Served: (FCFS) Primero en Llegar,

Primero en ser Servido. Cola FIFO. La performance del FCFS es a menudo muy pobre.

Elemento Tiempo de Ejecución

1 24

2 3

3 3

Elemento

1

Elem.

2

Elem.

3

0 24 27 30

El tiempo de retorno para elemento 1 es 24; para el 2 es 27 y para el 3 es 30. El tiem-

po de retorno promedio es (24+27+30)/3 = 27.

Si el orden de llegada es 2,3,1, tenemos:

Aquí el tiempo de retorno promedio es ahora muy inferior: (3+6+30)/3 = 13.

Elem.

2

Elem.

3

Elemento

1

0 3 6 30

Así vemos que el tiempo de retorno promedio para FCFS, generalmente, no es mínimo

y puede variar mucho.

Page 22: Clase 3. Unidad 3

PLANIFICACIÓN DE COLAS. Cont

Shortest Job First: (SJF) Trabajo más corto Primero. Si existen 2 elementos con el mismo tiempo de tratamiento se usa FCFS.

Elemento Tiempo de Ejecución

1 11 2 8 3 6 4 3

Veamos el Gantt de FCFS

Elemento 1 Elemento 2 Elemento 3 Elemento 4 0.. 11 19 25 28

Tr(FCFS)= (11+19+25+28)/4=20,75 Veamos el Gantt de SJF

Elemento 4 Elemento 3 Elemento 2 Elemento 1 0.. 3 9 17 24

Tr(SJF)= (6+9+17+24)/4=14

Page 23: Clase 3. Unidad 3

SJF

• Tiene el mínimo tiempo de espera promedio para un conjunto de elementos.

• Quedó demostrado que tratando a un elemento corto antes que uno largo, se disminuye el tiempo de espera del corto que el incremento de espera del largo. – Por lo tanto el promedio de tiempo de espera se achica.

• La Gran dificultad del SJF es conocer el tiempo de tratamiento de los elementos.

Page 24: Clase 3. Unidad 3

PLANIFICACIÓN DE COLAS. Cont

Prioridad: SJF es un caso especial del algoritmo de planificación por prioridades. Se asocia una prioridad a cada elemento y se otorga el servidor al trabajo con mayor prioridad.

Aquellos trabajos con igual prioridad, son planificados de acuerdo a FCFS.

SJF: la prioridad (p) es la inversa del tiempo de tratamiento(TT) , p=1/TT

Bloqueo indefinido o inanición. Solución: añejamiento: en forma gradual se aumenta

la prioridad de un elemento luego de pasado cierto tiempo en espera.

Page 25: Clase 3. Unidad 3

PLANIFICACIÓN DE COLAS. Cont

Round-Robin

Se define un quantum de tiempo. La cola es una cola circular. Se recorre la cola asignando el servidor a cada proceso por intervalos máximos de un quantum.

Veamos el mismo ejemplo usado en FCFS:

Elemento Tiempo de Ejecución

1 24

2 3

3 3

Uso un quantum = 4 unidades de tiempo

Elemento

1

Elem.

2

Elem.

3

Elemento

1

Elemento

1

Elemento

1

Elemento

1

Elemento

1

0 4 7 10 14 18 22 26 30

El tiempo de retorno promedio es: (30 + 7 + 10)/3 = 47/3 = 16 aproximadamente.

La performance depende fuertemente del quantum.

Si es muy grande: FCFS.

Si es muy pequeño, la conmutación de contexto entorpece el sistema.