Sistemas operativos modernos
(partición, bloque), el administrador de caché no habría podido determinar cuál bloque (archi vo, desplazamiento) corresponde a cuál bloque (partición, bloque) porque los sistemas de ar chivos son los que mantienen esas correspondencias. Veamos ahora cómo funciona el administrador de caché. Cuando se hace referencia a un archivo, el administrador de caché hace corresponder (mapea) un trozo de 256 KB del espacio de direcciones virtual del kemel con el archivo. Si el archivo ocupa más de 256 KB, sólo una porción del archivo se hace corresponder. La cantidad total de espacio de direcciones virtual que el administrador de caché puede utilizar se determina durante el arranque y depende de la cantidad de RAM presente. Si el administrador de caché se queda sin trozos de espacio de di recciones virtuales de 256 KB, deberá eliminar la correspondencia de un archivo antiguo antes de hacer que uno nuevo corresponda. Una vez que un archivo tiene correspondencia, el administrador de caché puede satisfacer las solicitudes de bloques de ese archivo copiando los bloques del espacio de direcciones virtual del kemel al búfer del usuario. Si el bloque copiado no está en la memoria física, habrá un fallo de página y el administrador de memoria lo resolverá de la forma acostumbrada. El administrador de caché ni siquiera se entera si el bloque estaba en el caché o no. El copiado siempre se logra. En la figura 11-45 se muestra el funcionamiento del administrador de caché para el caso de un sistema de archivos NTFS en un disco SCSI y un sistema de archivos FAT-32 en un disco IDE. Cuando un proceso efectúa una operación de lectura con un archivo, la solicitud se dirige al admi nistrador de caché. Si el bloque requerido está en el caché, se copia en el espacio de usuario de inmediato; si no está, el administrador de caché genera un fallo de página cuando trata de copiarlo. Al terminar el manejo del fallo de página, el bloque se copia en el espacio del proceso invocador. U n proceso de usuario lee de un archivo 1 Kernel32.dll | La llam ada se m aneja en la biblioteca com partida ♦ 1 nidll.dll 1 1Adm inistrador de caché j El adm inistrador de caché atrapa la llamada 1 Adm inistrador de E/S | Si el bloque no está presente, fallo de página 1 N T F S 11FAT-32| Llam ada al sistem a de archivos para obtener el bloque 1 S C S I I ID E 1 Llam ada al controlador de disco para leer el bloque ------------------ ^ ------------- Disco Disco Figura 11*45. Camino que se sigue a través del caché para llegar al hardware. Como consecuencia de este diseño, el administrador de caché no sabe cuántas de sus pá ginas con correspondencia están en la memoria física, o siquiera qué tan grande es el caché. Sólo el administrador de memoria lo sabe con certeza. Este enfoque permite al administrador
RkJQdWJsaXNoZXIy MjI4NDcx