public Proceso(int pid, boolean esTiempoReal, int prioridadEstatica, ArrayList<Integer> tiempoCPU, ArrayList<Integer> tiempoIO, int tiempoEntrada) {
        this.pid = pid;
        this.esTiempoReal = esTiempoReal;
        this.prioridadEstatica = prioridadEstatica;
        this.tiemposCPU = tiempoCPU;
        this.tiemposIO = tiempoIO;
        
        /*Nos aseguramos que el ultimo tiempo del CPU y/o IO sea 0, evita problemas
         con valores extranos al final de las listas*/
        if (this.tiemposCPU != null) {
            this.tiemposCPU.add(0);
        }
        if (this.tiemposIO != null) {
            this.tiemposIO.add(0);
        }
        
        this.tiempoEntrada = tiempoEntrada;
        this.estado = Constantes.TASK_RUNNING;
       
        /* Si el proceso es Tiempo Real */
        if (esTiempoReal) {
            this.prioridadDinamica = 100;
        } else {
            this.prioridadDinamica = prioridadEstatica;
        }
        this.tiempoDurmiendo = 0;
        this.esPrimerQuantum = true;

        /*Calculo del cuantum*/
        this.quantum = (140 - prioridadEstatica) * (prioridadEstatica < 120 ? 20 : 5);
        this.quantum = java.lang.Math.min(this.quantum, tiempoCPU.get(0));
        
        tiempoTotalDurmiendo = 0;
    }