//-----------------------------------------------------------------// // Escreve na cache uma página de memória na posição indicada // por position. public void WritePage(MemoryAddressCache position, int page) { if (spaceCache[position.Row][position.Col] == 0) { nPages++; } spaceCache[position.Row][position.Col] = page; }
//-----------------------------------------------------------------// // Função para informar à Política de Substituição sobre as mudanças // que aconteceram na memória cache durante a última operação // de escritura. public override void FeedBack(MemoryAddressCache add) { throw new NotImplementedException("O algoritmo de substituição RANDOM não precisa fazer feedback de informação!!!"); }
//-----------------------------------------------------------------// // Função para informar à Política de Substituição sobre as mudanças // que aconteceram na memória cache durante a última operação // de escritura. public override void FeedBack(MemoryAddressCache add) { mru[add.Row][add.Col] = time++; }
//-----------------------------------------------------------------// // Função para informar à Política de Substituição sobre as mudanças // que aconteceram na memória cache durante a última operação // de escritura. public override void FeedBack(MemoryAddressCache add) { lfu[add.Row][add.Col]++; }
//-----------------------------------------------------------------// // Construtor da clase base. public ReplacementAlgorithm(int cache_size) { CacheSize = (tabularMemory) ? cache_size / 2 : cache_size; Address = new MemoryAddressCache(); }
public abstract void FeedBack(MemoryAddressCache add);
//-----------------------------------------------------------------// // Função para informar à Política de Substituição sobre as mudanças // que aconteceram na memória cache durante a última operação // de escritura. public override void FeedBack(MemoryAddressCache add) { fifo[add.Row][add.Col] = age++; }