Paginación de memoria

Ferranti Atlaseditar

El primer ordenador en soportar la paginación fue el superordenador Atlas, desarrollado conjuntamente por Ferranti, la Universidad de Manchester y Plessey en 1963. La máquina tenía una memoria asociativa (direccionable al contenido) con una entrada por cada página de 512 palabras. El Supervisor manejaba las interrupciones de no equivalencia y gestionaba la transferencia de páginas entre core y drum para proporcionar una tienda de un solo nivel a los programas.

Microsoft WindowsEdit

Windows 3.x y Windows 9xEdit

La paginación ha sido una característica de Microsoft Windows desde Windows 3.0 en 1990. Windows 3.x crea un archivo oculto llamado 386SPART.PAR o WIN386.SWP para usarlo como archivo de intercambio. Generalmente se encuentra en el directorio raíz, pero puede aparecer en otro lugar (normalmente en el directorio de WINDOWS). Su tamaño depende de la cantidad de espacio de intercambio que tenga el sistema (un ajuste seleccionado por el usuario en Panel de Control → Mejorado en “Memoria virtual”). Si el usuario mueve o elimina este archivo, aparecerá una pantalla azul la próxima vez que se inicie Windows, con el mensaje de error “El archivo de intercambio permanente está dañado”. Se le pedirá al usuario que elija si desea eliminar o no el archivo (si existe o no).

Windows 95, Windows 98 y Windows Me usan un archivo similar, y la configuración para él se encuentra en Panel de control → Sistema → Pestaña Rendimiento → Memoria virtual. Windows establece automáticamente el tamaño del archivo de página para que comience en 1,5× el tamaño de la memoria física y se amplíe hasta 3× memoria física si es necesario. Si un usuario ejecuta aplicaciones de uso intensivo de memoria en un sistema con poca memoria física, es preferible establecer manualmente estos tamaños en un valor mayor que el predeterminado.

Windows NTEdit

El archivo utilizado para la paginación en la familia Windows NT es pagefile.sys. La ubicación predeterminada del archivo de página está en el directorio raíz de la partición donde está instalado Windows. Windows se puede configurar para usar espacio libre en cualquier unidad disponible para archivos de página. Sin embargo, es necesario para la partición de arranque (p. ej., la unidad que contiene el directorio de Windows) para tener un archivo de página en él si el sistema está configurado para escribir volcados de núcleo o de memoria completa después de una pantalla Azul de Muerte. Windows utiliza el archivo de paginación como almacenamiento temporal para el volcado de memoria. Cuando se reinicia el sistema, Windows copia el volcado de memoria del archivo de página en un archivo separado y libera el espacio que se utilizó en el archivo de página.

Fragmentacióneditar

Esta sección debe actualizarse. Por favor, ayude a actualizar este artículo para reflejar eventos recientes o información disponible recientemente. (Julio 2014)

En la configuración predeterminada de Windows, se permite que el archivo de página se expanda más allá de su asignación inicial cuando sea necesario. Si esto sucede gradualmente, puede fragmentarse en gran medida, lo que puede causar problemas de rendimiento. El consejo común dado para evitar esto es establecer un solo tamaño de archivo de página “bloqueado” para que Windows no lo expanda. Sin embargo, el archivo de página solo se expande cuando se ha llenado, lo que, en su configuración predeterminada, es el 150% de la cantidad total de memoria física. Por lo tanto, la demanda total de memoria virtual respaldada por archivos de página debe exceder el 250% de la memoria física del equipo antes de que el archivo de página se expanda.

La fragmentación del archivo de página que se produce cuando se expande es temporal. Tan pronto como las regiones expandidas ya no están en uso (en el siguiente reinicio, si no antes), las asignaciones de espacio en disco adicionales se liberan y el archivo de página vuelve a su estado original.

Bloquear el tamaño de un archivo de página puede ser problemático si una aplicación de Windows solicita más memoria que el tamaño total de la memoria física y el archivo de página, lo que lleva a solicitudes fallidas para asignar memoria que pueden provocar errores en las aplicaciones y los procesos del sistema. Además, el archivo de página rara vez se lee o escribe en orden secuencial, por lo que la ventaja de rendimiento de tener un archivo de página completamente secuencial es mínima. Sin embargo, un archivo de página grande generalmente permite el uso de aplicaciones con mucha memoria, sin penalizaciones además de usar más espacio en disco. Si bien un archivo de página fragmentado puede no ser un problema en sí mismo, la fragmentación de un archivo de página de tamaño variable creará con el tiempo varios bloques fragmentados en la unidad, lo que hará que otros archivos se fragmenten. Por esta razón, un archivo de página contigua de tamaño fijo es mejor, siempre que el tamaño asignado sea lo suficientemente grande para adaptarse a las necesidades de todas las aplicaciones.

El espacio en disco requerido se puede asignar fácilmente en sistemas con especificaciones más recientes (p. ej. un sistema con 3 GB de memoria con un archivo de página de tamaño fijo de 6 GB en una unidad de disco de 750 GB, o un sistema con 6 GB de memoria y un archivo de página de tamaño fijo de 16 GB y 2 TB de espacio en disco). En ambos ejemplos, el sistema utiliza aproximadamente el 0,8% del espacio en disco con el archivo de página pre-extendido a su máximo.

Desfragmentar el archivo de página también se recomienda ocasionalmente para mejorar el rendimiento cuando un sistema Windows utiliza de forma crónica mucha más memoria que su memoria física total. Esta vista ignora el hecho de que, aparte de los resultados temporales de la expansión, el archivo de página no se fragmenta con el tiempo. En general, los problemas de rendimiento relacionados con el acceso a archivos de página se resuelven de manera mucho más efectiva agregando más memoria física.

Sistemas Unix y similares a Unixedit

Los sistemas Unix, y otros sistemas operativos similares a Unix, usan el término “swap” para describir el acto de sustituir espacio en disco por RAM cuando la RAM física está llena. En algunos de esos sistemas, es común dedicar una partición completa de un disco duro al intercambio. Estas particiones se denominan particiones de intercambio. Muchos sistemas tienen un disco duro completo dedicado al intercambio, separado de la(s) unidad (es) de datos, que contiene solo una partición de intercambio. Un disco duro dedicado al intercambio se llama “unidad de intercambio” o “unidad de memoria virtual”o” disco de memoria virtual”. Algunos de esos sistemas solo admiten el intercambio a una partición de intercambio; otros también admiten el intercambio a archivos.

LinuxEdit

Véase también: Particiones de intercambio en SSD, zswap y zram

El núcleo Linux admite un número prácticamente ilimitado de backends de intercambio (dispositivos o archivos), y también admite la asignación de prioridades de backend. Cuando el núcleo intercambia páginas de memoria física, utiliza el motor de mayor prioridad con espacio libre disponible. Si se asignan múltiples backends de intercambio a la misma prioridad, se utilizan de forma round-robin (que es algo similar a los diseños de almacenamiento RAID 0), proporcionando un rendimiento mejorado siempre que se pueda acceder de manera eficiente a los dispositivos subyacentes en paralelo.

Intercambiar archivos y particioneseditar

Desde la perspectiva del usuario final, intercambiar archivos en la versión 2.6.x y posteriores del núcleo Linux son prácticamente tan rápidos como las particiones de intercambio; la limitación es que los archivos de intercambio deben asignarse de forma contigua en sus sistemas de archivos subyacentes. Para aumentar el rendimiento de los archivos de intercambio, el núcleo mantiene un mapa de dónde se colocan en los dispositivos subyacentes y accede a ellos directamente, evitando así la caché y la sobrecarga del sistema de archivos. De todos modos, Red Hat recomienda usar particiones de intercambio. Al residir en discos duros, que son dispositivos de medios magnéticos rotacionales, una ventaja de usar particiones de intercambio es la capacidad de colocarlas en áreas de disco duro contiguas que proporcionan un mayor rendimiento de datos o un tiempo de búsqueda más rápido. Sin embargo, la flexibilidad administrativa de los archivos swap puede superar ciertas ventajas de las particiones swap. Por ejemplo, un archivo de intercambio se puede colocar en cualquier sistema de archivos montado, se puede establecer en cualquier tamaño deseado y se puede agregar o cambiar según sea necesario. Las particiones de intercambio no son tan flexibles; no se pueden ampliar sin utilizar herramientas de administración de volúmenes o particiones, que introducen diversas complejidades y posibles tiempos de inactividad.

SwappinessEdit

Swappiness es un parámetro del núcleo Linux que controla el peso relativo dado al intercambio de memoria en tiempo de ejecución, en lugar de eliminar páginas de la caché de páginas del sistema, siempre que una solicitud de asignación de memoria no se pueda cumplir desde la memoria libre. El intercambio se puede establecer en valores entre 0 y 200 (inclusive). Un valor bajo hace que el núcleo prefiera desalojar páginas de la caché de páginas, mientras que un valor más alto hace que el núcleo prefiera intercambiar páginas de memoria “frías”. El valor predeterminado es 60; configurarlo más alto puede causar una alta latencia si las páginas frías necesitan ser intercambiadas de nuevo (al interactuar con un programa que había estado inactivo, por ejemplo), mientras que configurarlo más bajo (incluso 0) puede causar una alta latencia cuando los archivos que habían sido desalojados de la caché necesitan ser leídos de nuevo, pero hará que los programas interactivos sean más receptivos, ya que será menos probable que necesiten volver a intercambiar páginas frías. El intercambio también puede ralentizar aún más los discos duros porque implica muchas escrituras aleatorias, mientras que los SSD no tienen este problema. Ciertamente, los valores predeterminados funcionan bien en la mayoría de las cargas de trabajo, pero los escritorios y los sistemas interactivos para cualquier tarea esperada pueden querer reducir la configuración, mientras que el procesamiento por lotes y los sistemas menos interactivos pueden querer aumentarla.

Swap deathEdit

Cuando la memoria del sistema es muy insuficiente para las tareas actuales y una gran parte de la actividad de la memoria pasa por un intercambio lento, el sistema puede ser prácticamente incapaz de ejecutar cualquier tarea, incluso si la CPU está inactiva. Cuando cada proceso está a la espera del intercambio, se considera que el sistema está en muerte de intercambio.

La muerte de intercambio puede ocurrir debido a un sobrecompromiso de memoria configurado incorrectamente.

La descripción original del problema de” intercambio a muerte ” se refiere al servidor X. Si el código o los datos utilizados por el servidor X para responder a una pulsación de tecla no están en la memoria principal, entonces si el usuario introduce una pulsación de tecla, el servidor tomará uno o más errores de página, lo que requerirá que esas páginas lean de swap antes de que se pueda procesar la pulsación de tecla, lo que ralentizará la respuesta. Si esas páginas no permanecen en la memoria, tendrán que volver a tener fallas para manejar la siguiente pulsación de tecla, haciendo que el sistema prácticamente no responda, incluso si en realidad está ejecutando otras tareas normalmente.

macOSEdit

macOS utiliza varios archivos de intercambio. La instalación predeterminada (y recomendada por Apple) los coloca en la partición raíz, aunque es posible colocarlos en una partición o dispositivo separados.

AmigaOS 4Edit

AmigaOS 4.0 introdujo un nuevo sistema para asignar RAM y desfragmentar la memoria física. Sigue utilizando un espacio de direcciones compartido plano que no se puede desfragmentar. Se basa en el método de asignación de losas y la memoria de paginación que permite el intercambio. La paginación se implementó en AmigaOS 4.1, pero puede bloquear el sistema si se agota toda la memoria física. La memoria de intercambio se puede activar y desactivar en cualquier momento, lo que permite al usuario elegir usar solo RAM física.

Leave a Reply