@Override
    public void run() {
        /**
         * Monitor para que se ejecute la funcion cada tick de reloj.
         */
        synchronized (this) {
            while (simulacion) {
                try {
                    wait();
                } catch (InterruptedException ex) {
                    System.out.println("ERROR DURMIENDO CPU");
                    return;
                }
                /**
                 * Se aumenta el tiempo de espera de los procesos no activos del
                 * CPU
                 */
                runqueue.aumentarTiempoEnEspera();
                /**
                 * Si aun no ha llegado a los 100 ticks, se van despertando los
                 * procesos paulatinamente
                 */
                if (planificador.getReloj().getNumTicks() <= 100) {
                    agregarProcesosNuevos();
                }

                /**
                 * Se actualiza el quantum del proceso actual, si lo hay
                 */
                if (procesoActual != null) {
                    planificador.actualizarQuantum(procesoActual);
                    /**
                     * Se aumenta el tiempo ocioso del CPU si no tiene proceso
                     * activo
                     */
                } else {
                    tiempoOcioso++;
                }
            }
        }
    }