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; } }
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++; }
public Elemento(Processo processo) { this.processo = processo; }
public abstract void Inserir(Processo processo);
private void ReduzirPriori(Processo processo) { fila[processo.getPrioridade() - 1].Retirar(); fila[processo.getPrioridade()].Inserir(processo); }