private void executarFilaExecucao(Processo proc) {

    Vector<Processo> fila = null;
    if (filaDePrioridades.containsKey(proc.getPrioridade())) {
      fila = filaDePrioridades.get(proc.getPrioridade());
    } else {
      fila = new Vector<Processo>();
      filaDePrioridades.put(proc.getPrioridade(), fila);
    }

    fila.add(proc);
  }
 public void run() {
   while (!finaliza) {
     relogio();
     if (!cpu.isProcessando()) {
       buscaPrioridade();
       if (filaDeExecucao != null && filaDeExecucao.size() > 0) {
         Processo processo = filaDeExecucao.get(0);
         if (processo.getEstado() == Processo.ESTADO_NOVO
             || processo.getEstado() == Processo.ESTADO_FIM_E_S
             || processo.getEstado() == Processo.ESTADO_ESPERANDO) {
           if (processo != null) {
             cpu.setProc(processo);
           }
         }
         filaDeExecucao.remove(0);
         if (processo.getEstado() != Processo.ESTADO_ENCERRADO) {
           filaDeExecucao.add(processo);
         }
       }
     }
     enviaFila();
   }
 }
 public void envia(Processo processo) {
   executarFilaExecucao(processo);
   pids.add(processo.getPid());
 }