Está en la página 1de 2

MODELADO Y SIMULACION I A-2012 TAREA N1 (Prof.

Hoeger)
Modificaciones al simulador en Pascal
Fecha de Entrega (por e-mail): mircoles 30/05/12 antes de las 6:00 pm
Considere el simulador en Pascal visto en clase (versin Delphi 5) y hgale la modificacin que se describe a continuacin. OJO al usar mi cdigo, asegrense de que la opcin Generate console application este seleccionada en Project->Options->Linker que es necesaria para leer el nombre del archivo de entrada y especificar el archivo de salida por consola, antes de compilar en Delphi 5. Interrupcin del Servicio Modifique el cdigo para permitir la simulacin de interrupcin de servicio para emular el hecho de que, por ejemplo, un cajero que este atendiendo clientes eventualmente abandona la taquilla para hacer alguna actividad no relacionada con el servicio (ir al bao, tomar agua, etc.). Para esto debemos indicar, para cada nodo, el tiempo promedio entre interrupciones (tpei) y el tiempo promedio de la interrupcin (tpi) (tanto el tiempo entre interrupciones como el tiempo de interrupcin siguen una distribucin exponencial). Un ejemplo para un nodo en el archivo de definicin seria: ...
1 3.0 1.0 1 28.7 2.3 3 2 3 4 0.5 0.7 1.0 nodo 1 (con llegadas externas) promedio entre llegadas, promedio de servicio, capacidad promedio entre interrupciones, promedio de la interrupcion tres sucesores nodos sucesores: 2, 3 y 4 probabilidades acumuladas

... Esto implica que para cada nodo ahora hay eventos de interrupcin que se generan en forma similar a las llegadas. Durante la fase de inicializacin se genera la primera interrupcin para cada nodo (tal como se hace con las primeras llegadas externas) y cada vez que se procesa una interrupcin, se genera la siguiente. Al procesar una interrupcin hay que generar el tiempo que esta dura y este tiempo hay que agregarlo al tiempo de servicio de los clientes que estn siendo atendidos en ese nodo en el momento de la interrupcin (solo para los clientes en atencin en el nodo donde se da la interrupcin). Esto implica recorrer y modificar la Lista de Eventos Pendientes. Ntese que si no se quieren tener interrupciones se pude hacer el tiempo entre interrupciones muy grande (el mximo valor real posible) y/o que el tiempo de interrupcin sea cero. El otro aspecto que hay que considerar es que si en un nodo hay una interrupcin, los clientes que lleguen, as haya capacidad para atenderlos, deben permanecer en cola hasta que concluya la interrupcin. Esto se puede implementar mediante una bandera asociada al nodo que indique si esta o no bajo interrupcin. Noten que ahora un cliente puede ser atendido solo si la utilizacin es menor que la capacidad y el nodo no esta bajo interrupcin. Resumiendo, lo que deben considerar es lo siguiente: Generar los primeros eventos de interrupcin para cada nodo.

Cuando se da un evento de interrupcin en un nodo, hay que calcular el tiempo que dura la interrupcin (Exp(tpi)) y generar la siguiente interrupcin para ese nodo. Ojo, el tiempo entre interrupciones se considera como el lapso que transcurre entre el fin de una interrupcin y el comienzo de la siguiente, es decir, cuando comienza una interrupcin el tiempo para las siguiente se calcula como:

TiempoSiguienteInterrupcion TiempoActual Exp(tpi ) Exp(tpei ) Generar el respectivo evento de fin de interrupcin. Recorrer la lista de eventos pendientes, actualizar los tiempos de los eventos de salida del nodo donde ocurre la interrupcin y asegurarse de que la lista se mantenga ordenada por tiempo. Si un nodo esta interrumpido no puede procesar nuevas llegadas (as tenga capacidad disponible). Cuando hay un evento de fin de interrupcin hay que chequear si hay clientes en cola y si algunos pueden ser atendidos. adems hay que: Agregar variables para registrar el tiempo promedio entre interrupciones y el tiempo promedio de interrupcin para cada nodo. Modificar la lectura del archivo de entrada para que incorpore la captura del tiempo promedio entre interrupciones y el tiempo promedio de interrupcin para cada nodo. Modificar la salida del programa para que cuando se imprima la red simulada se muestre el tiempo promedio entre interrupciones y el tiempo promedio de interrupcin para cada nodo.

Se debe enviar el cdigo fuente (solo el archivo .dpr) a hhoeger@ula.ve. NOTA: no enviar ejecutables (.exe) ya que los servidores de la ULA no dejan pasar estos correos. Recuerde que:
o Cuando se reciba la tarea, se le devolver un correo indicando que la misma fue recibida. Esto lo hago manualmente as que un poco de paciencia. Mantenga este correo (no lo borre) ya que es el nico medio de probar que fue enviada. Sin el no hay posibilidad de reclamar que usted la envi y no fue corregida. o El cdigo debe cumplir con estilo de programacin (principalmente identacin) y ser modular o Estar debidamente identificado (autor(es) del mismo mximo tres (3) integrantes por grupo) y documentado.

También podría gustarte