You are on page 1of 3

Grupo LSIM-5 Álvarez Valcárcel, Pablo Martín Fernández, Alexandre

Práctica 3 de LSIM: Simulación de un sistema de espera con distintas disciplinas de gestión de cola
1 ESTRUCTURA DEL SISTEMA EN CLASES
Hemos creado una clase para cada disciplina de gestión de colas, es decir, 5 en total. Tres de ellas heredan propiedades de una clase genérica cola (en cola.cc). Para las disciplinas LJF y RR optamos por crear 2 clases distintas, que no heredaran de esta clase cola genérica. Cada una de estas clases contiene los algoritmos necesarios para la gestión de la cola según la disciplina correspondiente, utilizando en alguna de estas clases la sobrecarga de las funciones utilizadas en éstas para indicar desde el simulador distintas opciones de simulación, como el estar trabajando con un solo recurso o más o si estamos utilizando una disciplina con apropiación o no.

Clases utilizadas

tenemos demasiado código replicado en esta función principal. cada vez que entrara o saliera una tarea del sistema. Utilizaremos estos 2 relojes para ir calculando y promediando las muestras a medida que vayan entrando al sistema nuevas tareas. ya que replicamos gran parte para todas las disciplinas distintas. 3 PRUEBAS Y RESULTADOS Para nuestras pruebas. En muchos casos de prueba. Pablo Martín Fernández. Esta función además de ordenar las tareas en el sistema si fuera necesario. en el proceso de depuración del algoritmo. nos resultó muy útil el ir mostrando. ya que simplifica la implementación de las distintas disciplinas y permitirá simulaciones más rápidas para estos casos más simples (1 recurso). como el tiempo por servir o los tiempos de llegada. Todas nuestras disciplinas (cada una en una clase) cuentan con dos métodos (sobrecargados en función de las opciones de simulación) necesarios para su correcto funcionamiento. La simulación procede de la siguiente manera: En el programa principal (main) se instancian las clases correspondientes a cada disciplina utilizada. Este segundo método devuelve las muestras necesarias para el cómputo del promedio y de extraer (de una en una) las tareas finalizadas. uno que lleva la cuenta de los eventos producidos (CLK_GLOBAL). Estas dos funciones se encargan de: -Introducir en cola. de las que necesitaremos sus métodos de introducción en cola y obtención de muestras para realizar los cálculos necesarios.Grupo LSIM-5 Álvarez Valcárcel. además de valernos de los resultados teóricos introducidos en la asignatura de teoría TTS (casos M/M/1 y otros casos de los que disponemos de resultados teóricos). las tareas que estaban en el sistema con alguno de sus datos. Utilizamos dos relojes distintos. también nos hemos aprovechado de la comparación de nuestros resultados con los obtenidos por otros compañeros. para mejorar o corregir nuestros algoritmos de simulación en algún caso en los que no obteníamos resultados correctos o previsibles. Alexandre 2 COMENTARIO SOBRE EL CÓDIGO En el código hemos optado en todas las disciplinas por separar los casos para un recurso y los de múltiples recursos. Por la forma de implementar el programa principal de nuestro simulador. y otro que lleva la cuenta de los tiempos de llegada (CLK_LLEGADAS). Además. para proceder a realizar los cálculos a mano para detectar posibles fallos en el código. Algunas de estas . Hemos realizado una batería de pruebas en la que incluimos una serie de casos con los que hemos llegado a la conclusión de que nuestros resultados eran lógicos y por lo tanto correctos. actualiza el tiempo en que se producirá la siguiente salida. se encarga de la actualización de los tiempos necesarios utilizados en la simulación (como el tiempo de la siguiente salida). Optamos por esta opción. -Dar muestras.

pues no hemos podido corregirla a tiempo. Aunque creemos que nuestro algoritmo es correcto. creemos que podríamos tener algo mal pues los resultados obtenidos para el tiempo medio de espera en cola son algo superiores a los que obtienen otros compañeros que tienen resultados similares. siendo sobre todo presente en la función principal (main) del simulador. y los resultados obtenidos aparentemente previsibles. donde tenemos demasiado código replicado por no haber utilizado una mejor estructura de clases o facilidades proporcionadas por la herencia. De todas las disciplinas que teníamos que implementar. nos ha quedado un código bastante desorganizado. hemos notado que los nuestros eran algo diferentes a los de otros grupos. También está el código poco claro en cuanto a falta de comentarios o explicación de alguna función. 3. explicando además algún problema que hemos podido tener así como explicar las pruebas realizadas y los resultados obtenidos. 4 PROBLEMAS La disciplina LJF con apropiación y más de un recurso no está implementada. Alexandre pruebas se incluyen a continuación. .1 POSIBLES FALLOS No estamos completamente seguros del correcto funcionamiento de la disciplina LJF con apropiación. En este caso creemos que en el caso de utilizar sólo un recurso sí que funciona. ya que no hemos podido corregirla a tiempo. 4.1. al calcular el siguiente tiempo de salida o actualizar el tiempo cursado (y por servir) de las distintas tareas. ya que los puntos en los que creemos que podríamos estar fallando. Por el mismo motivo.1 LJF con apropiación y múltiples recursos Esta disciplina para múltiples recursos no hemos podido acabarla finalmente. 3. Algunas de las pruebas realizadas junto con sus resultados están incluidas en los ficheros dentro de la carpeta pruebas facilitada. creemos con un estudio de la evolución de la cola que su funcionamiento es correcto. por lo que no estamos realmente seguros de su correcto funcionamiento. creemos en el correcto funcionamiento de todas ellas a excepción de la disciplina LJF con apropiación. Sin embargo. aparentemente no creemos estar teniendo problemas. pero no la hemos acabado para múltiples recursos. al comparar nuestros resultados con los de otros compañeros. Pablo Martín Fernández. no hemos sido capaces de encontrar ningún posible fallo. por escasez de tiempo y falta de organización.1 LJF En los distintos casos que hemos probado para este caso.Grupo LSIM-5 Álvarez Valcárcel.