Consideraciones sobre el diseño
Se deben considerar varios factores que influyen directamente en el rendimiento de la memoria y por lo tanto en su objetivo de aumentar la velocidad de respuesta de la jerarquía de memoria. Estos factores son las políticas de ubicación, extracción, reemplazo, escritura y el tamaño de la caché y de sus bloques.
Política de ubicación
Decide dónde debe colocarse un bloque de memoria principal que entra en la memoria caché. Las más utilizadas son:
Directa: Al bloque n ésimo de memoria principal le corresponde la posición n módulo k donde k es el número de bloques de la memoria caché.
Asociativa: Cualquier bloque de memoria principal puede ir en cualquier lado del bloque de memoria caché.
Asociativa por conjuntos: La memoria caché se divide en n conjuntos de bloques, así al bloque i ésimo de memoria principal le corresponde el conjunto i módulo k n donde k es el número de
bloques de memoria caché. Dicho bloque de memoria podrá ubicarse en cualquier posición dentro del conjunto asociado de la memoria caché.
Política de extracción
Esta política determina cuándo y qué bloque de memoria principal hay que traer a memoria caché.
Por demanda: Un bloque sólo se trae a memoria caché cuando ha
sido referenciado y se produzca una falla.
Con prebúsqueda: Cuando se referencia el bloquei ésimo de
memoria principal, se trae además el bloque i 1 ésimo . Ésta
política se basa en la propiedad de localidad espacial de los programas.
Política de reemplazo
Esta política determina qué bloque de memoria caché debe abandonarla cuando no existe espacio disponible para un bloque entrante. Existen cuatro políticas:
– Aleatoria: El bloque es reemplazado de forma aleatoria.
– FIFO: Se usa un algoritmo First In First Out FIFO (PEPS, primero entrado primero salido en español) para determinar qué bloque debe abandonar la caché. Este algoritmo generalmente es poco eficiente.
– Menos recientemente usado (LRU): Se sustituye el bloque que hace más tiempo no se ha utilizado.
– Menos frecuentemente usado (LFU): Se reemplaza el bloque que se ha usado con menos frecuencia.
Siendo la aleatoria y la LRU las de mejor rendimiento.
Fuente: Apuntes de la materia Sistemas Operativos Multiusuario de la FCA – UNAM