stringtranslate.com

Caché de página

En informática, una caché de página , a veces también llamada caché de disco , [1] es una caché transparente para las páginas que se originan en un dispositivo de almacenamiento secundario , como una unidad de disco duro (HDD) o una unidad de estado sólido (SSD). El sistema operativo mantiene una memoria caché de páginas en partes de la memoria principal (RAM) que de otro modo no se utilizarían, lo que da como resultado un acceso más rápido al contenido de las páginas almacenadas en caché y mejoras generales en el rendimiento. Una caché de página se implementa en los núcleos con gestión de memoria de paginación y es en su mayor parte transparente para las aplicaciones.

Por lo general, el sistema operativo utiliza toda la memoria física que no está asignada directamente a las aplicaciones para el caché de la página. Dado que, de lo contrario, la memoria estaría inactiva y se recuperaría fácilmente cuando las aplicaciones la solicitaran, generalmente no hay ninguna penalización de rendimiento asociada y el sistema operativo podría incluso informar dicha memoria como "libre" o "disponible".

En comparación con la memoria principal, las lecturas/escrituras en la unidad de disco duro son lentas y los accesos aleatorios requieren búsquedas de disco costosas ; Como resultado, mayores cantidades de memoria principal aportan mejoras en el rendimiento, ya que se pueden almacenar más datos en la memoria caché. [2] El almacenamiento en caché de disco separado se proporciona en el lado del hardware, mediante chips RAM o NVRAM dedicados ubicados en el controlador de disco (en cuyo caso el caché está integrado en una unidad de disco duro y generalmente se denomina búfer de disco [3] ), o en un controlador de matriz de discos , dicha memoria no debe confundirse con la caché de páginas. El sistema operativo también puede utilizar parte de la memoria principal como búfer de escritura del sistema de archivos, puede denominarse búfer de página . [4]

Conservación de la memoria

Las páginas en el caché de páginas modificadas después de ser traídas se denominan páginas sucias. [5] Dado que las páginas no sucias en el caché de páginas tienen copias idénticas en el almacenamiento secundario (por ejemplo, unidad de disco duro o unidad de estado sólido), descartar y reutilizar su espacio es mucho más rápido que paginar la memoria de la aplicación y, a menudo, es preferible a vaciarlo. las páginas sucias en un almacenamiento secundario y reutilizando su espacio. También se suele acceder a los binarios ejecutables , como aplicaciones y bibliotecas, a través de la caché de páginas y se asignan a espacios de proceso individuales utilizando memoria virtual (esto se hace a través de la llamada al sistema mmap en sistemas operativos tipo Unix). Esto no sólo significa que los archivos binarios se comparten entre procesos separados, sino también que las partes no utilizadas de los binarios eventualmente se eliminarán de la memoria principal, lo que conducirá a la conservación de la memoria.

Dado que las páginas almacenadas en caché se pueden desalojar y reutilizar fácilmente, algunos sistemas operativos, especialmente Windows NT , incluso informan el uso de la caché de la página como memoria "disponible", mientras que la memoria en realidad se asigna a las páginas del disco. Esto ha generado cierta confusión sobre la utilización de la caché de páginas en Windows.

Escrituras en disco

La caché de página también ayuda a escribir en un disco. Las páginas de la memoria principal que se han modificado durante la escritura de datos en el disco se marcan como "sucias" y deben vaciarse en el disco antes de poder liberarlas. Cuando se produce una escritura en un archivo, se busca la página almacenada en caché para el bloque en particular. Si ya se encuentra en la memoria caché de la página, la escritura se realiza en esa página en la memoria principal. Si no se encuentra en el caché de la página, entonces, cuando la escritura cae perfectamente dentro de los límites del tamaño de la página , la página ni siquiera se lee del disco, sino que se asigna e inmediatamente se marca como sucia. De lo contrario, las páginas se recuperan del disco y se realizan las modificaciones solicitadas. Un archivo que se crea o se abre en la caché de la página, pero en el que no se escribe, puede resultar en un archivo de cero bytes en una lectura posterior.

Sin embargo, no se puede escribir en todas las páginas almacenadas en caché, ya que el código del programa a menudo se asigna como de solo lectura o de copia en escritura ; en el último caso, las modificaciones al código sólo serán visibles para el proceso en sí y no se escribirán en el disco.

Ataques de canal lateral

En 2019, los investigadores de seguridad demostraron ataques de canal lateral contra el caché de páginas: es posible evitar la separación de privilegios y filtrar datos sobre otros procesos al monitorear sistemáticamente si algunas páginas de archivos (por ejemplo, archivos ejecutables o de biblioteca ) están presentes en el caché o no. [6]

Ver también

Referencias

  1. ^ Robert Love (12 de enero de 2005). "Desarrollo del kernel de Linux (segunda edición), capítulo 15. La caché de página y la reescritura de página". makelinux.net . Editorial Sams . Consultado el 24 de julio de 2015 .
  2. ^ "Caché de disco". Webopedia . Septiembre de 1996.
  3. ^ Mark Kyrnin. "Qué buscar en un disco duro". acerca de.com . Archivado desde el original el 4 de abril de 2015 . Consultado el 20 de diciembre de 2014 . El búfer de una unidad es una cantidad de RAM en la unidad para almacenar datos a los que se accede con frecuencia desde la unidad.{{cite web}}: Mantenimiento CS1: URL no apta ( enlace )
  4. ^ "gratis (1) - procps - ratón de biblioteca de Debian - páginas de manual de Debian".
  5. ^ "Glosario - Biblioteca TechNet". Microsoft. 28 de enero de 2010.
  6. ^ Gruss, Daniel; Kraft, Erik; Tiwari, Trishita; Schwarz, Michael; Trachtenberg, Ari; Hennessey, Jason; Ionescu, Alex; Fogh, Anders (4 de enero de 2019). "Ataques de caché de página". arXiv : 1901.01161 [cs.CR].

Enlaces externos