Exemple #1
0
 /// <summary>
 /// El contructor del controlador.
 /// No inicializa ningún atributo para obligar al programador a llamar al método inicializar
 /// </summary>
 public Controlador()
 {
     this.barrier             = null;
     this.procesadores        = null;
     this.cachesDatos         = null;
     this.cacheInstrucciones  = null;
     this.memoriasPrincipales = null;
     this.ticksReloj          = -1;
 }
Exemple #2
0
        /// <summary>
        ///
        /// *IMPORTANTE*
        ///
        /// Este metodo debe ejecutarse antes de iniciar la simulacion!!
        ///
        /// Este metodo inicializa todos los atributos necesarios para la simulacion
        ///
        /// </summary>
        /// <param name="procesadores">Procesadores de la simulacion</param>
        /// <param name="cachesDatos">CachesDatos de Datos de la simulacion</param>
        /// <param name="cacheInstrucciones">Cache de instrucciones para todos los procesadores</param>
        /// <param name="memoriasPrincipales">MemoriasPrincipales Principales de todos los procesadores</param>
        public void Inicializar(Procesador[] procesadores, CacheDatos[] cachesDatos, CacheInstrucciones cacheInstrucciones, Directorio[] directorios, MemoriaPrincipal[] memoriasPrincipales)
        {
            int numeroProcesadores = procesadores.Length;

            Debug.WriteLine("Controlador: Creando una barrera para " + numeroProcesadores + " procesadores");
            this.barrier             = new Barrier(numeroProcesadores, entreCiclosDeReloj);
            this.procesadores        = procesadores;
            this.cachesDatos         = cachesDatos;
            this.cacheInstrucciones  = cacheInstrucciones;
            this.directorios         = directorios;
            this.memoriasPrincipales = memoriasPrincipales;
            this.ticksReloj          = 1;
            // Se asigna el programa inicial a cada procesador
            // Por defecto los procesadores deben empezar en finalizado = true para que
            // el siguiente metodo les asigne un programa
            AsignarProgramasAProcesadores();
            Debug.WriteLine("\nControlador: Nuevo Tick de Reloj " + ticksReloj + "\n");
        }