示例#1
0
        private void rutinaPartida()
        {
            if (this.Cola.esVacia())
            {
                //sacamos al cliente del servidor,
                cliente = Servidor.ClienteEnServicio;
                //calculamos estadisticos, y borramos al cliente del servidor
                Servidor.producirPartida(reloj);
                //asigno el evento partida al cliente que sale del servidor.
                cliente.partida = (Partida)eventoActual;
                //y finalmente, agregramos el cliente a nuestar lista final de clientes atendidos en sistema.
                this.clientesAtendidosEnSistema.Add(cliente);

                //vaciamos variables
                cliente      = null;
                eventoActual = null;

                //producimos partida tiempo de servicio infinito
                Partida partida = new Partida(reloj);
                partida.SetTiempoServicioInfinito();
                //agregamos la partida a nuestra lista de eventos
                this.catEventos.guardarEvento(partida);
            }
            else
            {
                //primero sacamos al cliente del servidor.
                cliente = Servidor.ClienteEnServicio;
                //asigno el evento partida al cliente que sale del servidor.
                cliente.partida = (Partida)eventoActual;
                //y finalmente, agregramos el cliente a nuestar lista final de clientes atendidos en sistema.
                this.clientesAtendidosEnSistema.Add(cliente);
                //vaciamos variables
                cliente      = null;
                eventoActual = null;

                /*ahora nos encargamos del cliente que sale de la cola e ingresa al servidor*/

                //calculamos el area de la cola antes de que se retire el cliente
                Cola.calcularArea(reloj, TUE);
                //sacamos al cliente de la cola
                this.cliente = Cola.ProducirPartida();
                //calculamos el tiempo que estuvo el cliente esperando a ser atendido por el servidor.
                acumuladorDemoras = acumuladorDemoras + (reloj - cliente.TiempoArriboServidorOcupado);
                //entregamos el cliente que salio de la cola , al servidor
                this.Servidor.servirCliente(cliente);

                //generamos una partida para el cliente que entra al servidor, guardandola en lev
                Partida partida = new Partida(reloj);
                this.catEventos.guardarEvento(partida);
            } //fin si
        }     //Fin rutina partida
示例#2
0
        }     //Fin rutina partida

        private void rutinaArribo()
        {
            //checkeamos que el servidor este desocupado.

            cliente        = new Cliente();
            cliente.arribo = (Arribo)this.eventoActual;

            if (this.Servidor.estaOcupado())
            {
                //al estar ocupado el servidor, se agrega el cliente a la cola.
                //establecemos el TA, para luego saber cuanto tarda el cliente en llegar+ser atendido
                this.cliente.setTiempoArriboPorServidorOcupado(reloj);
                Cola.calcularArea(reloj, TUE);
                Cola.AgregarCliente(cliente);
                cliente = null;
            }
            else
            /*el servidor desocupado implica un retraso de cero para el cliente.*/
            /*ahora  incrementamos el nro de clientes retrazados, y hacemos el server ocupado*/
            {
                servidor.TiempoInicioOcupacionServidor = reloj;
                Servidor.servirCliente(cliente);
                cliente = null;

                //ahora creamos evento partida, con un tiempode servicio.
                //el constructor ya setea el tiempo de servicio
                Partida partida = new Partida(reloj);
                this.catEventos.guardarEvento(partida);
            }


            //generamos un nuevo arribo
            //el constructor ya setea el tiempo de arribo
            Arribo proximoArribo = new Arribo(reloj);

            this.catEventos.guardarEvento(proximoArribo);
        }
示例#3
0
        private void rutinaArribo()
        {
            //checkeamos que el servidor este desocupado.

            cliente = new Cliente();
            cliente.arribo = (Arribo)this.eventoActual;

            if(this.Servidor.estaOcupado() )
            {
                //al estar ocupado el servidor, se agrega el cliente a la cola.
                //establecemos el TA, para luego saber cuanto tarda el cliente en llegar+ser atendido
                this.cliente.setTiempoArriboPorServidorOcupado(reloj);
                Cola.calcularArea(reloj,TUE );
                Cola.AgregarCliente(cliente);
                cliente = null;

            }
            else
                /*el servidor desocupado implica un retraso de cero para el cliente.*/
                /*ahora  incrementamos el nro de clientes retrazados, y hacemos el server ocupado*/
            {
                servidor.TiempoInicioOcupacionServidor = reloj;
                Servidor.servirCliente(cliente);
                cliente = null;

              //ahora creamos evento partida, con un tiempode servicio.
              //el constructor ya setea el tiempo de servicio
              Partida partida = new Partida(reloj );
              this.catEventos.guardarEvento(partida);
            }

            //generamos un nuevo arribo
            //el constructor ya setea el tiempo de arribo
            Arribo proximoArribo = new Arribo(reloj);
            this.catEventos.guardarEvento(proximoArribo);
        }
示例#4
0
        private void rutinaPartida()
        {
            if (this.Cola.esVacia())
            {
                //sacamos al cliente del servidor,
                cliente = Servidor.ClienteEnServicio;
                //calculamos estadisticos, y borramos al cliente del servidor
                Servidor.producirPartida(reloj);
                //asigno el evento partida al cliente que sale del servidor.
                cliente.partida = (Partida)eventoActual;
                //y finalmente, agregramos el cliente a nuestar lista final de clientes atendidos en sistema.
                this.clientesAtendidosEnSistema.Add(cliente );

                //vaciamos variables
                cliente = null;
                eventoActual = null;

                //producimos partida tiempo de servicio infinito
                Partida partida = new Partida(reloj);
                partida.SetTiempoServicioInfinito();
                //agregamos la partida a nuestra lista de eventos
                this.catEventos.guardarEvento(partida);

            }
            else
            {
                //primero sacamos al cliente del servidor.
                cliente = Servidor.ClienteEnServicio;
                //asigno el evento partida al cliente que sale del servidor.
                cliente.partida = (Partida)eventoActual;
                //y finalmente, agregramos el cliente a nuestar lista final de clientes atendidos en sistema.
                this.clientesAtendidosEnSistema.Add(cliente);
                //vaciamos variables
                cliente = null;
                eventoActual = null;

                /*ahora nos encargamos del cliente que sale de la cola e ingresa al servidor*/

                //calculamos el area de la cola antes de que se retire el cliente
                Cola.calcularArea(reloj, TUE);
                //sacamos al cliente de la cola
                this.cliente =  Cola.ProducirPartida();
                //calculamos el tiempo que estuvo el cliente esperando a ser atendido por el servidor.
                acumuladorDemoras = acumuladorDemoras + (reloj - cliente.TiempoArriboServidorOcupado);
                //entregamos el cliente que salio de la cola , al servidor
                this.Servidor.servirCliente(cliente);

                //generamos una partida para el cliente que entra al servidor, guardandola en lev
                Partida partida = new Partida(reloj);
                this.catEventos.guardarEvento(partida);

            }//fin si
        }
示例#5
0
        private void inicializarSimulacion()
        {
            /*RELOJ DE LA SIMULACION*/
            _reloj = 0.0;

            /*VARIABLES DE ESTADO*/
            this.Servidor = new Servidor();
            this.Cola = new Cola();
            TUE = 0.0;
            this.clientesAtendidosEnSistema.Clear();
            this.catEventos.LEV.Clear();

            /*CONTADORES ESTADISTICOS*/
            this.acumuladorDemoras = 0;

            /*Generamos tiempo de arribo, y luego lo guardamos en la LEV*/
            Arribo  arribo = new Arribo(reloj);
            this.catEventos.LEV.Add(arribo);

            Partida partida = new Partida(reloj);
            partida.SetTiempoServicioInfinito();
            catEventos.LEV.Add(partida);
        }