Exemple #1
0
        public override void Inserir(Processo processo)
        {
            Elemento novo = new Elemento(processo);

            this.anterior.prox = novo;
            novo.prox          = this.atual;

            if (this.anterior == this.atual)
            {
                this.atual = novo;
            }
            else
            {
                this.anterior = novo;
            }
        }
Exemple #2
0
        public override void Executar()
        {
            while (!fila[cont].filaVazia())
            {
                Processo processo = fila[cont].Desenfileirar();

                processo.ativarStatusExec();

                Thread.Sleep(quantum);

                processo.setNCiclos(processo.getNCiclos() - 1);

                processo.InclementCicloExecut();


                if (processo.getNUmClicosExecutados() >= 4) ReduzirPriori(processo);
                else if (processo.getNCiclos() == 0) fila[cont].Retirar();
                else fila[cont].proximo();

            }
            cont++;
           
        }
Exemple #3
0
 public Elemento(Processo processo)
 {
     this.processo = processo;
 }
Exemple #4
0
 public abstract void Inserir(Processo processo);
Exemple #5
0
 private void ReduzirPriori(Processo processo)
 {
     fila[processo.getPrioridade() - 1].Retirar();
     fila[processo.getPrioridade()].Inserir(processo);
 }