コード例 #1
0
        private void buttonSimular_Click(object sender, EventArgs e)
        {
            for (int i = 1; i < 200; i++)
            {
                int random = numeroRandom.Next(1, 100);
                if (random <= 25)
                {
                    int randomN = numeroRandom.Next(4, 15);
                    nuevo = new Procesos(randomN);
                    Fifo.Enqueue(nuevo);
                }
                if (Fifo.peek() != null)
                {
                    Fifo.restar();

                    if (Fifo.peek().proceso == 0)
                    {
                        Fifo.Denqueue(Fifo.peek());
                        contAtendido++;
                    }
                }

                else
                {
                    contVacio++;
                }
            }
            textBoxAtendidos.Text = "Total de procesos atendidos: " + contAtendido + "\n Ciclos Vacios: " + contVacio + "\n Total de procesos en espera:" + Fifo.contadorEspera();
            //textBoxEspera.Text = Fifo.ToString();
            //label1.Text = "Total de procesos atendidos: " + contAtendido + " Ciclos Vacios: " + contVacio + " Total de procesos en espera" + Fifo.enEspera();
        }
コード例 #2
0
        public Procesos Denqueue(Procesos nuevo)
        {
            Procesos temporal = primerProceso;

            if (primerProceso.siguiente == primerProceso)
            {
                primerProceso = null;
            }
            else
            {
                primerProceso = primerProceso.siguiente;
            }
            return(temporal);
        }
コード例 #3
0
        //public int enEspera()
        //{
        //    return contEspera;
        //}

        public int contadorEspera()
        {
            string str = " ";

            Procesos t = primerProceso;

            while (t.siguiente != primerProceso)
            {
                contEspera++;
                str += t.ToString();
                t    = t.siguiente;
            }
            return(contEspera);;
        }
コード例 #4
0
        public Procesos restar()
        {
            if (primerProceso.siguiente == primerProceso)
            {
                temporal = primerProceso;
            }
            else
            {
                temporal = temporal.siguiente;
                if (temporal.proceso != 0)
                {
                    temporal.proceso--;
                }
            }

            return(temporal);
        }
コード例 #5
0
        public void Enqueue(Procesos nuevo)
        {
            if (primerProceso == null)
            {
                primerProceso   = nuevo;
                nuevo.siguiente = primerProceso;
            }
            else
            {
                Procesos temporal = primerProceso;


                while (temporal.siguiente != primerProceso)
                {
                    temporal = temporal.siguiente;
                }

                temporal.siguiente = nuevo;
                nuevo.siguiente    = primerProceso;
            }
        }
コード例 #6
0
        //if (primerProceso == null)
        //{
        //    primerProceso = nuevo;
        //    ultimo = nuevo;
        //}
        //else
        //{
        //    ultimo.siguiente = nuevo;
        //    nuevo.anterior = ultimo;
        //    ultimo = nuevo;

        //}
        public Procesos PrimeroFantasma()
        {
            Procesos Pfantasma = primerProceso;

            return(Pfantasma);
        }
コード例 #7
0
 public CircularesFifo()
 {
     primerProceso = null;
     ultimo        = null;
 }