//-----------------------------------------------------------------//
 // Construtor para um Controlador só com Política de Mapeamento
 // Direto.
 public MemoryController(MemoryCache cache, AP_Directo policy)
 {
     Cache      = cache;
     nCounter   = nHit = nMiss = 0;
     APolicy    = policy;
     RAlgorithm = null;
 }
        //-----------------------------------------------------------------//
        // Calcula o mapeamento para a Política: Por Conjuntos.
        public override MemoryAddressCache Calculate(int page)
        {
            MemoryAddressCache address;

            // A política de mapeamento ASSOCIATIVA POR CONJUNTOS usa as políticas anteriores
            // descrição: Usa mapeamento DIRETO para selecionar a linha, e
            //						CONSECUTIVO para selecionar a columna.
            AP_Directo directo = new AP_Directo(CacheSize);

            address.Row = directo.Calculate(page).Row;
            address.Col = colIndex[address.Row] % 2;
            colIndex[address.Row]++;

            return(address);
        }