public Processo obterProximoProcessoRoundR() { if (listaProcesso.Count > 0) { Processo temp = listaProcesso.Find(x => x != null); //encontre o primeiro não nulo => encontre o primeiro elemento listaProcesso.Remove(temp); if (temp != null) { return(temp); } } throw new InvalidOperationException("Nova rodada!"); }
public bool executar(Escalonador esc) { if (this.executando != esc.Executando) { this.executando = esc.Executando; inicio = esc.Tempo; this.executando.executar(1); } else { } return((esc.Tempo - this.inicio) == this.quantum); }
public void GraficoSemPreempcao() { this.processo = script_main.escalonador.Executando; if (!script_main.escalonador.SemProcesso) { AtivaBarra(SaberLinha(), index); } else if (script_main.escalonador.ProcessosAEntrar == 0) { CancelInvoke("GraficoSemPreempcao"); } script_main.escalonador.update(); index++; }
public void updatePreemptivo() { tempo++; carregaProcesso(tempo); try { //if (algoritmo.executar (this)) { bool exec = algoritmo.executar(this); this.tempoPreempcaoIni = this.tempo; this.preempcao = true; Debug.Log("Executou"); //} if (this.preempcao) { if ((this.tempo - this.tempoPreempcaoIni) == this.tempoPreempcao) { Processo temp; temp = this.executando; Debug.Log("Preempcao"); this.executando = algoritmo.obterProximoProcesso(this); this.preempcao = false; if (!temp.Terminado) { this.listaProcesso.Add(temp); } } } } catch (InvalidOperationException) { if (this.executando.Terminado) { semProcesso = true; } } }
public Processo obterProximoProcessoEDF() { IEnumerator <Processo> procEnum = listaProcesso.GetEnumerator(); procEnum.MoveNext(); Processo temp = procEnum.Current; if (listaProcesso.Count == 0) { } else { if (listaProcesso.Count == 1) { temp = listaProcesso[0]; listaProcesso.Remove(temp); //remover return(temp); } else if (listaProcesso.Count > 1) { while (procEnum.MoveNext()) { if (temp.deadline >= procEnum.Current.deadline) { temp = procEnum.Current; } } listaProcesso.Remove(temp); //remover } } if (temp != null) { return(temp); } throw new InvalidOperationException("Não existem processos na fila de espera!"); }
// int ind = 0; public void GraficoPreemptivo() { this.processo = script_main.escalonador.Executando; //pega o processo que ta executando na classe escalonador if (!script_main.escalonador.SemProcesso) { AtivaBarra(SaberLinha(), index); index++; } script_main.escalonador.updatePreemptivo(); if ((this.processo.tempoExecucao - this.processo.tempoExecutado) >= 1) //tempo de preempção { AtivaBarra(SaberLinha(), index); index++; } //script_main.escalonador.update(); if (script_main.escalonador.ProcessosAEntrar == 0 && script_main.escalonador.listaProcesso.Count > 0) //if(script_main.escalonador.prioridades == null) { CancelInvoke("GraficoPreemptivo"); } //ind++; }
public void inicializa() { carregaProcesso(0); this.executando = algoritmo.obterProximoProcesso(this); }
public void adicionaProcesso(Processo processo) { toBeLoaded.Add(processo); }
// Update is called once per frame void Update() { this.processo = script_main.escalonador.executando; }