Capítulo 1 Introducción y objetivos 1.1. Introducción Las colas son un aspecto de la vida que se encuentra continuamente en nuestras actividades diarias, en el banco, en el supermercado, accediendo al metro... El fenómeno de las colas surge cuando la demanda real de un servicio es superior a la capacidad que existe para dar dicho servicio. El estudio de las colas es importante porque proporciona tanto una base teórica del tipo de servicio que se puede esperar de un determinado recurso, como la forma en la cual dicho recurso puede ser diseñado para proporcionar un determinado grado de servicio a los clientes que lo solicitan. Dada la importancia de las colas, surge la necesidad de desarrollar una herramienta que sea capaz de dar una respuesta sobre las características que tiene un determinado modelo de colas. Esta herramienta es la teoría de colas. La teoría de colas es el estudio matemático del comportamiento de líneas de espera. Éstas surgen cuando los clientes llegan a un lugar demandando un servicio a un servidor, el cual tiene una cierta capacidad de atención. Si el servidor no está disponible inmediatamente y el cliente decide esperar, entonces se forma la línea de espera. Una cola es una línea de espera y la teoría de colas es una colección de mo- 3
CAPÍTULO 1. INTRODUCCIÓN Y OBJETIVOS 4 Figura 1.1: Ejemplo de un modelo de colas sencillo delos matemáticos que describen sistemas de línea de espera particulares o sistemas de colas. Los modelos matemáticos sirven para encontrar un buen compromiso entre el coste de proveer el servicio y el coste asociado a la espera por el servicio en caso de no estar éste disponible. Los sistemas de colas son modelos de sistemas que proporcionan un servicio. Como modelo, pueden representar cualquier sistema donde clientes llegan buscando un servicio de algún tipo y salen después de que dicho servicio haya sido atendido. Se pueden modelar los sistemas de este tipo tanto como colas sencillas o como un sistema de colas interconectadas formando una red de colas. Este modelo puede usarse para representar una situación típica en la cual los clientes llegan, esperan si los servidores están ocupados, son servidos por un servidor disponible y se marchan cuando se obtiene el servicio requerido. En la figura 1 se presenta un modelo de colas sencillo. El problema es determinar qué capacidad o tasa de servicio proporciona el balance correcto. Esto no es sencillo, ya que un cliente no llega en un instante conocido a priori, es decir, no se sabe con exactitud en que momento llegarán los clientes. Tampoco el tiempo de servicio se conoce a priori. 1.1.1. Teoría de colas El origen de la teoría de colas se sitúa en 1909 cuando Agner Kraup Erlang (Dinamarca, 1878-1929) centra su atención en el estudio de la congestión de
CAPÍTULO 1. INTRODUCCIÓN Y OBJETIVOS 5 tráfico telefónico con el objetivo de cumplir la demanda incierta de servicios en el sistema telefónico de Copenhague. Sus investigaciones acabaron en una nueva teoría denominada teoría de colas o de líneas de espera. Esta teoría es ahora una herramienta con un gran valor en los negocios debido a que un gran número de problemas pueden caracterizarse como problemas de congestión llegada-salida. Tal y como se ha comentado anteriormente la formación de colas o líneas de espera es un fenómeno muy común en la vida real, y más si cabe en el contexto de la informática, telecomunicaciones y nuevas tecnologías. Como ejemplos, los procesos que son enviados a un servidor para su posterior ejecución forman colas de espera mientras no son atendidos, la información solicitada, a través de Internet, a un servidor Web puede recibirse con retraso debido a congestión en la red o en el servidor propiamente dicho, podemos recibir la señal de línea ocupada si la central de la que depende nuestro teléfono móvil está colapsada en ese momento, etc. Será en estos últimos contextos en los que se centrará el presente proyecto. La teoría de colas incluye el estudio matemático de las colas o líneas de espera y provee un gran número de modelos matemáticos para describirlas. En una situación ideal se debería encontrar un equilibrio entre el coste de prestar un servicio y el coste asociado a la espera por el servicio en caso de no estar éste disponible. Cabe destacar que la teoría de colas no da una solución para encontrar el equilibrio anterior sino que proporciona información para la toma de decisiones. El administrador del sistema será el encargado de tomar estas decisiones en función de los parámetros del sistema que desee optimizar y del coste que esté dispuesto a asumir. Como principales objetivos de la teoría de colas destacan: Identificar el nivel óptimo de capacidad del sistema que minimiza el coste global del mismo. Evaluar el impacto que las posibles alternativas de modificación de la capacidad del sistema tendrían en el coste total del mismo. Establecer un balance equilibrado óptimo entre las consideraciones cuantitativas de costes y las cualitativas de servicio.
CAPÍTULO 1. INTRODUCCIÓN Y OBJETIVOS 6 Hay que prestar atención al tiempo de permanencia en el sistema o en la cola: la pacienciade los clientes depende del tipo de servicio específico considerado y eso puede hacer que un cliente abandone el sistema. 1.2. Entorno y motivación del proyecto El entorno en el que se desarrolla este proyecto es el análisis de las prestaciones de un sistema de colas mediante simulación. De esta forma los alumnos de redes de ordenadores pueden comprobar que los resultados teóricos obtenidos en clase coinciden con los obtenidos tras simulación así como la posibilidad de experimentar con problemas genéricos de teoría de colas y no solo de redes. En la actualidad existen muchos simuladores de teoría de colas orientados a aplicaciones específicas, como ejemplo de los más conocidos tenemos NS (Network Simulator) y OPNET. El principal inconveniente de estos simuladores es que necesitan conocimientos específicos y que además son complejos de utilizar por alumnos que no son de la especialidad de Telemática. Esta es la motivación por la que en el área de Ingeniería Telemática se ha creado un simulador de redes orientado a eventos llamado AITSIM. Dado que se dispone del código fuente de este simulador y que además no es excesivamente complicado, el objetivo del presente proyecto es adaptar el existente AITSIM a los objetivos que se describirán posteriormente y crear un nuevo simulador denominado QSIM de forma que cualquier alumno de redes de ordenadores pueda experimentar simulando problemas de teoría de colas con un alto grado de generalidad. 1.3. Objetivos del proyecto Como se ha comentado anteriormente, la principal motivación que hace necesario el desarrollo del simulador QSIM es que los existentes simuladores de redes de colas, (NS, OPNET...) son complejos de utilizar para alumnos que no son de la especialidad de Telemática. Esta motivación está estrechamente unida con el principal objetivo del presente proyecto y es hacer que el nuevo simulador AITSIM sea sencillo de forma que pueda ser utilizado por cualquier alumno de redes de ordenadores para simular gran variedad de problemas de teoría de colas.
CAPÍTULO 1. INTRODUCCIÓN Y OBJETIVOS 7 La mejor forma de abordar el objetivo principal es dividirlo en objetivos parciales, los cuales seguirán las siguientes fases: Análisis de los requisitos del nuevo simulador AITSIM. Adaptación del simulador AITSIM al QSIM. Verificar el funcionamiento (comparar los resultados teóricos con los obtenidos mediante simulación). Los objetivos parciales que se pretenden conseguir con la realización del presente proyecto son: Realización de un simulador orientado a eventos fiable que simule correctamente el comportamiento de un sistema de colas. Poder estudiar como influye la variación de los parámetros de un sistema sobre el sistema inicial para así, facilitar la toma de decisiones. Disponer de una herramienta dotada de una gran flexibilidad que permita resolver un gran número de distintas situaciones. Proporcionar a los usuarios, sobre todo a aquellos que no son de telemática, una herramienta de uso sencillo en la que no sean necesarios conocimientos específicos sobre la implementación concreta de la herramienta. Facilitar el estudio y aprendizaje de la teoría de colas usando el simulador como un complemento de las clases teóricas, ya que permite la verificación de los problemas realizados en clase así como la experimentación con múltiples escenarios posibles. Hasta ahora se disponía del simulador AITSIM para la resolución y simulación de distintos problemas de sistemas de colas. Sin embargo, varios son los motivos que impulsan la necesidad de un nuevo simulador: El simulador AITSIM es poco flexible y solo permite la resolución de un número muy determinado de situaciones.
CAPÍTULO 1. INTRODUCCIÓN Y OBJETIVOS 8 Esta resolución no concluye con la ejecución del simulador sino que requiere de un procesamiento posterior del fichero que se obtiene como salida. Dicho procesamiento es variable, depende de la información que sobre el sistema se desee obtener y es específico para cada implementación. Dada la estructura de la herramienta, es necesario un conocimiento de la implementación concreta para poder determinar y configurar el sistema. Esto limita bastante el ámbito de utilización del simulador a alumnos de la especialidad de telemática. Por estos motivos es necesaria la creación de un nuevo simulador que resuelva estas deficiencias y esté dotado de una gran generalidad. A continuación se citan brevemente las características del nuevo simulador QSIM que permiten resolver las limitaciones que posee el simulador AITSIM. El simulador QSIM, a diferencia del simulador AITSIM, incorpora un nuevo módulo que permite la resolución de problemas con fuentes finitas, además, gracias a cambios realizados en la estructura interna del simulador AITSIM, amplía con generosidad la variedad de problemas a realizar utilizando fuentes infinitas. Estas novedades dotan al nuevo simulador QSIM de una gran flexibilidad y permiten la resolución de una gran variedad de problemas de teoría de colas, con lo que se consigue la perseguida generalidad. A diferencia del simulador AITSIM, el simulador QSIM dispone de un fichero inicial de configuración en el que de una manera sencilla se especifica el sistema a estudiar. Además de la configuración del sistema, en este fichero de configuración se especifican los parámetros del sistema que se desean calcular, todo ello sin necesidad de conocer la implementación concreta ni la estructura interna del simulador lo que a amplía el ámbito de posibles usuarios a cualquier persona interesada en la resolución de problemas de teoría de colas. La posibilidad de calcular cualquier parámetro asociado a un sistema de colas se consigue gracias a la incorporación de un módulo de estadísticas que proporciona el valor medio y la varianza de las variables aleatorias implicadas en el sistema, parámetros de rendimiento, así como funciones de distribución de usuarios en el sistema y en cola.
CAPÍTULO 1. INTRODUCCIÓN Y OBJETIVOS 9 Todas estas nuevas características en colaboración con las ya existentes en el simulador AITSIM hacen de este nuevo simulador QSIM una potente herramienta para la resolución de una gran variedad de situaciones posibles. Todo ello con total transparencia para el usuario lo que permite que usuarios sin conocimientos específicos puedan utilizar el simulador sin ninguna limitación. Una característica de vital importancia para un simulador es su validación. Por este motivo, en los objetivos del proyecto citados anteriormente se sitúa en primer lugar la fiabilidad del simulador. Esta fiabilidad se contrasta mediante la realización de numerosas pruebas y comprobando exhaustivamente que los resultados obtenidos son los correctos. La metodología seguida durante la realización de este simulador ha tenido como máxima el conseguir un simulador con una fiabilidad cercana al 100%. Para lograr tal objetivo se han realizado numerosas pruebas a lo largo de todo el periodo que ha durado la realización del simulador y posteriormente se han examinado minuciosamente todos los ficheros de salida obtenidos, comprobando que todos los datos de salida fueran los correctos. Así mismo, una vez se comprobó que el simulador funcionaba correctamente, para validar el módulo de estadísticas, se han simulado los problemas de clase y se han contrastado los resultados obtenidos tras la simulación con la resolución teórica obtenida en clase obteniéndose resultados positivos. Más adelante en esta memoria se expondrán varios ejemplos en los que se compruebe como los resultados teóricos y los obtenidos tras simulación guardan una estrecha relación.