Paginación de memoria

format_list_bulleted Contenido keyboard_arrow_down
ImprimirCitar
Sistema de gestión de la memoria computarizada

En los sistemas operativos de computadora, paginación de memoria (o intercambio en algunos sistemas similares a Unix) es un esquema de administración de memoria mediante el cual una computadora almacena y recupera datos del almacenamiento secundario para usarlos en memoria principal. En este esquema, el sistema operativo recupera datos del almacenamiento secundario en bloques del mismo tamaño llamados páginas. La paginación es una parte importante de las implementaciones de memoria virtual en los sistemas operativos modernos, utilizando almacenamiento secundario para permitir que los programas excedan el tamaño de la memoria física disponible.

Para simplificar, la memoria principal se llama "RAM" (un acrónimo de memoria de acceso aleatorio) y el almacenamiento secundario se denomina "disco" (una forma abreviada de unidad de disco duro, memoria de tambor o unidad de estado sólido, etc.), pero como ocurre con muchos aspectos de la informática, los conceptos son independientes de la tecnología utilizada.

Dependiendo del modelo de memoria, la funcionalidad de memoria paginada generalmente está conectada a una CPU/MCU mediante una Unidad de administración de memoria (MMU) o una Unidad de protección de memoria (MPU) y se habilita por separado mediante un código de sistema privilegiado en el sistema operativo' núcleo s. En las CPU que implementan la arquitectura de conjunto de instrucciones (ISA) x86, por ejemplo, la paginación de memoria se habilita a través del registro de control CR0.

Historia

En la década de 1960, el intercambio fue una de las primeras técnicas de memoria virtual. Un programa completo o un segmento completo sería "intercambiado" (o "desplegado") de la RAM al disco o al tambor, y otro se intercambiado (o desplazado). Un programa intercambiado sería actual pero su ejecución se suspendería mientras otro programa estaba usando su RAM; un programa con un segmento intercambiado podría continuar ejecutándose hasta que necesitara ese segmento, momento en el que se suspendería hasta que se intercambiara el segmento.

Un programa puede incluir varias superposiciones que ocupan la misma memoria en momentos diferentes. Las superposiciones no son un método para paginar la RAM en el disco, sino simplemente para minimizar el uso de RAM del programa. Las arquitecturas posteriores utilizaron la segmentación de la memoria y los segmentos de programas individuales se convirtieron en las unidades intercambiadas entre el disco y la RAM. Un segmento era el segmento de código o segmento de datos completo del programa o, a veces, otras estructuras de datos grandes. Estos segmentos tenían que ser contiguos cuando residían en RAM, lo que requería cómputo y movimiento adicionales para remediar la fragmentación.

El Atlas de Ferranti y el Atlas Supervisor desarrollado en la Universidad de Manchester (1962) fue el primer sistema en implementar paginación de memoria. Las primeras máquinas posteriores y sus sistemas operativos que admiten paginación incluyen IBM M44 / 44X y su sistema operativo MOS (1964), SDS 940 y Berkeley Timesharing System (1966), un IBM System / 360 Modelo 40 modificado y el CP -40 (1967), IBM System/360 Model 67 y sistemas operativos como TSS/360 y CP/CMS (1967), RCA 70/46 y Time Sharing Operating System (1967), GE 645 y Multics (1969) y el PDP-10 con hardware de paginación diseñado por BBN y el sistema operativo TENEX (1969).

Esas máquinas, y las máquinas subsiguientes que admiten la paginación de memoria, utilizan un conjunto de registros de direcciones de página o tablas de páginas en memoria para permitir que el procesador funcione en páginas arbitrarias en cualquier lugar de la RAM como un espacio de direcciones lógicas aparentemente contiguas. Estas páginas se convirtieron en las unidades intercambiadas entre el disco y la RAM.

Fallos de página

Cuando un proceso intenta hacer referencia a una página que actualmente no está asignada a un marco de página en la RAM, el procesador trata esta referencia de memoria no válida como un error de página y transfiere el control del programa al sistema operativo. El sistema operativo debe:

  1. Determinar si un marco de página robado todavía contiene una copia no modificada de la página; si es así, utilice ese marco de página.
  2. De lo contrario, obtener un marco de página vacío en RAM para utilizar como contenedor para los datos, y:
    • Determinar si la página fue inicializada
    • Si es así, determinar la ubicación de los datos en el disco.
    • Cargue los datos necesarios en el marco de página disponible.
  3. Actualizar la tabla de página para referirse al nuevo marco de página.
  4. Regresar el control al programa, retratar transparentemente la instrucción que causó la falla de la página.

Cuando todos los marcos de página están en uso, el sistema operativo debe seleccionar un marco de página para reutilizarlo para la página que el programa necesita ahora. Si un programa asignó dinámicamente el marco de página desalojado para contener datos, o si un programa lo modificó desde que se leyó en la RAM (en otras palabras, si se ha vuelto "sucio"), debe escribirse al disco antes de ser liberado. Si un programa luego hace referencia a la página desalojada, se produce otra falla de página y la página debe volver a leerse en la RAM.

El método que usa el sistema operativo para seleccionar el marco de página para reutilizarlo, que es su algoritmo de reemplazo de página, es importante para la eficiencia. El sistema operativo predice el marco de página que es menos probable que se necesite pronto, a menudo mediante el algoritmo LRU (menos utilizado recientemente) o un algoritmo basado en el conjunto de trabajo del programa. Para aumentar aún más la capacidad de respuesta, los sistemas de paginación pueden predecir qué páginas se necesitarán pronto, cargándolas de manera preventiva en la RAM antes de que un programa las haga referencia, y pueden robar marcos de página de páginas que no han sido referenciadas durante mucho tiempo, haciéndolas disponibles. Algunos sistemas borran las páginas nuevas para evitar fugas de datos que comprometan la seguridad; algunos los establecen en valores aleatorios o definidos por la instalación para facilitar la depuración.

Técnicas de obtención de páginas

Demanda de pavimento
Cuando se utiliza la paging de la demanda pura, las páginas se cargan sólo cuando se hacen referencia. Un programa de un archivo mapeado de memoria comienza la ejecución con ninguna de sus páginas en RAM. A medida que el programa comete fallos de página, el sistema operativo copia las páginas necesarias de un archivo, por ejemplo, archivo de memoria, archivo de paging o una partición de swap que contiene los datos de la página en RAM.
Did you mean:

Paging anticipal
Algunos sistemas utilizan sólo la paging de la demanda, esperando hasta que se solicite una página antes de cargarla en RAM.
Otros sistemas intentan reducir la latencia adivinando qué páginas no en RAM son probablemente necesarias pronto, y pre-cargar tales páginas en RAM, antes de que se solicite esa página. (Esto es a menudo en combinación con la pre-limpiación, que adivina qué páginas actualmente en RAM no es probable que sean necesarias pronto, y pre-escribirlas a almacenamiento).
Cuando se produce una falla de página, los sistemas de paging anticipadores no sólo traerán en la página de referencia, sino también otras páginas que probablemente serán referenciadas pronto. Un simple algoritmo de paging anticipatorio traerá en las próximas páginas consecutivas aunque aún no sean necesarias (una predicción usando la localidad de referencia); esto es análogo a una cola de entrada prefetch en una CPU. El prefetching de Swap prefetch prefetch recientemente swapped-out páginas si hay suficientes páginas libres para ellos.
Si un programa termina, el sistema operativo puede retrasar la liberación de sus páginas, en caso de que el usuario ejecute el mismo programa de nuevo.

Técnicas de reemplazo de página

Búsqueda gratuita de página, robo y recuperación
La cola de página gratuita es una lista de marcos de página que están disponibles para la asignación. Evitar que esta cola esté vacía minimiza el cálculo necesario para servir una falla de página. Algunos sistemas operativos buscan periódicamente páginas que no han sido recientemente referenciadas y luego liberan el marco de página y lo agregan a la cola de página libre, un proceso conocido como "robación de páginas". Algunos sistemas operativos de apoyo página de recuperación; si un programa comete una falla de página haciendo referencia a una página que fue robada, el sistema operativo detecta esto y restaura el marco de página sin tener que leer el contenido de nuevo en RAM.
Limpieza previa
El sistema operativo puede periódicamente páginas sucias prelimpiadas: escriba páginas modificadas de nuevo al disco, aunque puedan ser modificadas. Esto minimiza la cantidad de limpieza necesaria para obtener nuevos marcos de página en el momento en que se inicia un nuevo programa o se abre un nuevo archivo de datos, y mejora la capacidad de respuesta. (Los sistemas operativos Unix utilizan periódicamente sincronización para pre-limpiar todas las páginas sucias; los sistemas operativos de Windows usan los hilos "escritor de página modificado".)

Golpeando

Después de completar la inicialización, la mayoría de los programas funcionan con una pequeña cantidad de páginas de código y datos en comparación con la memoria total que requiere el programa. Las páginas a las que se accede con más frecuencia se denominan conjunto de trabajo.

Cuando el conjunto de trabajo es un pequeño porcentaje del número total de páginas del sistema, los sistemas de memoria virtual funcionan de manera más eficiente y se dedica una cantidad insignificante de computación a resolver errores de página. A medida que crece el conjunto de trabajo, la resolución de fallas de página sigue siendo manejable hasta que el crecimiento alcanza un punto crítico. Luego, las fallas aumentan drásticamente y el tiempo dedicado a resolverlas supera el tiempo dedicado a la computación para la que se escribió el programa. Esta condición se conoce como paliza. Thrashing ocurre en un programa que trabaja con enormes estructuras de datos, ya que su gran conjunto de trabajo provoca fallas de página continuas que ralentizan drásticamente el sistema. Satisfacer las fallas de página puede requerir liberar páginas que pronto tendrán que volver a leerse desde el disco. "Golpeando" también se usa en contextos distintos de los sistemas de memoria virtual; por ejemplo, para describir problemas de caché en informática o síndrome de ventana tonta en redes.

El peor de los casos podría ocurrir en los procesadores VAX. Un solo MOVL que cruce un límite de página podría tener un operando de origen que use un modo de direccionamiento diferido por desplazamiento, donde la palabra larga que contiene la dirección del operando cruce un límite de página, y un operando de destino que use un modo de direccionamiento diferido por desplazamiento, donde la palabra larga que contenga la dirección del operando cruce un límite de página, y tanto el origen como el destino podrían cruzar los límites de la página. Esta única instrucción hace referencia a diez páginas; si no todos están en la RAM, cada uno provocará un error de página. A medida que ocurre cada falla, el sistema operativo necesita pasar por extensas rutinas de administración de memoria, lo que quizás cause múltiples E/S, lo que podría incluir escribir otras páginas de proceso en el disco y leer páginas del proceso activo desde el disco. Si el sistema operativo no pudiera asignar diez páginas a este programa, entonces remediar la falla de la página descartaría otra página que necesita la instrucción, y cualquier reinicio de la instrucción fallaría nuevamente.

Para disminuir la paginación excesiva y resolver problemas de hiperpaginación, un usuario puede aumentar la cantidad de páginas disponibles por programa, ya sea ejecutando menos programas al mismo tiempo o aumentando la cantidad de RAM en la computadora.

Compartir

En la programación múltiple o en un entorno multiusuario, muchos usuarios pueden ejecutar el mismo programa, escrito de modo que su código y datos estén en páginas separadas. Para minimizar el uso de RAM, todos los usuarios comparten una sola copia del programa. La tabla de páginas de cada proceso está configurada de modo que las páginas que abordan el código apunten a la única copia compartida, mientras que las páginas que abordan los datos apunten a diferentes páginas físicas para cada proceso.

Diferentes programas también pueden usar las mismas bibliotecas. Para ahorrar espacio, solo se carga una copia de la biblioteca compartida en la memoria física. Los programas que usan la misma biblioteca tienen direcciones virtuales que se asignan a las mismas páginas (que contienen el código y los datos de la biblioteca). Cuando los programas quieren modificar el código de la biblioteca, utilizan la copia en escritura, por lo que la memoria solo se asigna cuando es necesario.

La memoria compartida es un medio eficaz de comunicación entre programas. Los programas pueden compartir páginas en la memoria y luego escribir y leer para intercambiar datos.

Implementaciones

Atlas Ferranti

La primera computadora que admitió la paginación fue la supercomputadora Atlas, desarrollada conjuntamente por Ferranti, la Universidad de Manchester y Plessey en 1963. La máquina tenía una memoria asociativa (direccionable por contenido) con una entrada para cada página de 512 palabras. El supervisor manejó las interrupciones de no equivalencia y administró la transferencia de páginas entre el núcleo y el tambor para proporcionar un almacenamiento de un nivel a los programas.

Microsoft Windows

Windows 3.x y Windows 9x

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 usar como un archivo de intercambio. Generalmente se encuentra en el directorio raíz, pero puede aparecer en otro lugar (normalmente en el directorio WINDOWS). Su tamaño depende de cuánto espacio de intercambio tenga el sistema (una configuración seleccionada 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 inicie Windows, con el mensaje de error "El archivo de intercambio permanente está dañado". Se le pedirá al usuario que elija si eliminar o no el archivo (incluso si no existe).

Windows 95, Windows 98 y Windows Me utilizan un archivo similar y su configuración se encuentra en Panel de control → Sistema → pestaña Rendimiento → Memoria virtual. Windows configura automáticamente el tamaño del archivo de la página para comenzar en 1,5 veces el tamaño de la memoria física y expandir hasta 3 veces la memoria física si es necesario. Si un usuario ejecuta aplicaciones que hacen un uso intensivo de la memoria en un sistema con poca memoria física, es preferible establecer manualmente estos tamaños en un valor superior al predeterminado.

Windows NT

El archivo utilizado para la paginación en la familia de Windows NT es pagefile.sys. La ubicación predeterminada del archivo de página es 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, se requiere que la partición de arranque (es decir, la unidad que contiene el directorio de Windows) tenga un archivo de página si el sistema está configurado para escribir volcados de kernel o de memoria completa después de una pantalla azul de la muerte. Windows usa 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 a un archivo separado y libera el espacio que se usó en el archivo de página.

Fragmentación

En la configuración predeterminada de Windows, el archivo de la página puede expandirse más allá de su asignación inicial cuando sea necesario. Si esto sucede gradualmente, puede fragmentarse mucho, lo que puede causar problemas de rendimiento. El consejo común que se da para evitar esto es establecer un solo "bloqueado" tamaño del archivo de página para que Windows no lo expanda. Sin embargo, el archivo de la 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 superar el 250% de la memoria física de la computadora antes de que se expanda el archivo de página.

La fragmentación del archivo de la página que ocurre 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 la página, lo que genera solicitudes fallidas para asignar memoria que pueden causar fallas 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 con el tiempo creará varios bloques fragmentados en la unidad, lo que hará que otros archivos se fragmenten. Por este motivo, es mejor un archivo de páginas contiguas de tamaño fijo, 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 (es decir, un sistema con 3 GB de memoria que tiene 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 la página preextendido al máximo.

En ocasiones, también se recomienda desfragmentar el archivo de la página 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, además de los resultados temporales de la expansión, el archivo de la página no se fragmenta con el tiempo. En general, los problemas de rendimiento relacionados con el acceso a los archivos de página se resuelven de manera mucho más eficaz agregando más memoria física.

Unix y sistemas similares a Unix

Los sistemas Unix y otros sistemas operativos similares a Unix utilizan el término "intercambiar" 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 las unidades de datos, que contiene solo una partición de intercambio. Un disco duro dedicado al intercambio se denomina "unidad de intercambio" o una "unidad de memoria virtual" o un "disco de memoria virtual". Algunos de esos sistemas solo admiten el intercambio a una partición de intercambio; otros también admiten el intercambio de archivos.

Linux

El kernel de Linux admite una cantidad prácticamente ilimitada de backends de intercambio (dispositivos o archivos) y también admite la asignación de prioridades de backend. Cuando el kernel intercambia páginas fuera de la memoria física, utiliza el backend de mayor prioridad con espacio libre disponible. Si se asigna la misma prioridad a varios backends de intercambio, se utilizan de forma rotatoria (que es algo similar a los diseños de almacenamiento RAID 0), lo que proporciona un rendimiento mejorado siempre que se pueda acceder de manera eficiente a los dispositivos subyacentes en paralelo.

Intercambiar archivos y particiones

Desde la perspectiva del usuario final, los archivos de intercambio en las versiones 2.6.xy posteriores del kernel de 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, sin pasar por el caché y evitando la sobrecarga del sistema de archivos. Cuando residen en HDD, que son dispositivos de medios magnéticos rotativos, una de las ventajas de usar particiones de intercambio es la capacidad de colocarlas en áreas de HDD 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 de intercambio puede superar ciertas ventajas de las particiones de intercambio. Por ejemplo, un archivo de intercambio se puede colocar en cualquier sistema de archivos montado, se puede configurar 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 gestión de volumen o partición, que introducen diversas complejidades y posibles tiempos de inactividad.

Intercambio

Swappiness es un parámetro del kernel de Linux que controla el peso relativo otorgado al intercambio de memoria en tiempo de ejecución, en lugar de eliminar páginas del caché de páginas del sistema, siempre que no se pueda cumplir con una solicitud de asignación de memoria de forma gratuita. memoria. La capacidad de intercambio se puede establecer en un valor de 0 a 200. Un valor bajo hace que el kernel prefiera desalojar páginas del caché de páginas, mientras que un valor más alto hace que el kernel prefiera intercambiar "frío" páginas de memoria. El valor predeterminado es 60; configurarlo más alto puede causar una latencia alta si las páginas inactivas deben volver a intercambiarse (al interactuar con un programa que había estado inactivo, por ejemplo), mientras que configurarlo más bajo (incluso 0) puede causar una latencia alta cuando los archivos que habían sido desalojados del el caché debe leerse nuevamente, pero hará que los programas interactivos respondan mejor, ya que será menos probable que necesiten 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.

Intercambio de muerte

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 volverse prácticamente incapaz de ejecutar ninguna tarea, incluso si la CPU está inactiva. Cuando todos los procesos están esperando el intercambio, se considera que el sistema está en muerte de intercambio.

La muerte del intercambio puede ocurrir debido a una sobreasignación de memoria configurada incorrectamente.

La descripción original del "intercambio de muerte" el problema se relaciona con el 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 pulsa una tecla, el servidor tomará una o más fallas de página, lo que requerirá que esas páginas se lean desde el intercambio antes de que se pueda ejecutar la pulsación de tecla. procesada, ralentizando la respuesta a la misma. Si esas páginas no permanecen en la memoria, tendrán que volver a activarse para manejar la siguiente pulsación de tecla, lo que hará que el sistema prácticamente no responda, incluso si en realidad está ejecutando otras tareas con normalidad.

MacOS

macOS usa 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 separado.

Amiga OS 4

AmigaOS 4.0 introdujo un nuevo sistema para asignar RAM y desfragmentar la memoria física. Todavía usa un espacio de direcciones compartido plano que no se puede desfragmentar. Se basa en el método de asignación de losa 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.

Rendimiento

El almacenamiento de respaldo para un sistema operativo de memoria virtual suele ser muchos órdenes de magnitud más lento que la RAM. Además, el uso de dispositivos de almacenamiento mecánico introduce un retraso de varios milisegundos para un disco duro. Por lo tanto, es deseable reducir o eliminar el intercambio, cuando sea práctico. Algunos sistemas operativos ofrecen configuraciones para influir en las decisiones del kernel.

  • Linux ofrece /proc/sys/vm/swappiness parámetro, que cambia el equilibrio entre cambiar la memoria de tiempo de ejecución fuera, en lugar de dejar páginas del caché de página del sistema.
  • Windows 2000, XP y Vista ofrecen DisablePagingExecutive configuración de registro, que controla si el código y los datos del kernel pueden ser elegibles para paging out.
  • Las computadoras de mainframe utilizan con frecuencia unidades de disco de cabeza por pista o tambores para el almacenamiento de página y swap para eliminar el tiempo de búsqueda, y varias tecnologías para tener múltiples solicitudes simultáneas al mismo dispositivo con el fin de reducir la latencia rotacional.
  • La memoria flash tiene un número finito de ciclos de borrado (ver limitaciones de la memoria flash), y la cantidad más pequeña de datos que se pueden borrar a la vez podría ser muy grande (128 KiB para una SSD Intel X25-M), rara vez coincidiendo con el tamaño de páginas. Por lo tanto, la memoria flash puede agotar rápidamente si se utiliza como espacio de intercambio bajo condiciones de memoria ajustadas. En el lado atractivo, la memoria flash es prácticamente sin demora en comparación con los discos duros, y no volátil como los chips de RAM. Los esquemas como ReadyBoost e Intel Turbo Memory están hechos para explotar estas características.

Muchos sistemas operativos similares a Unix (por ejemplo, AIX, Linux y Solaris) permiten usar varios dispositivos de almacenamiento para el espacio de intercambio en paralelo, a fin de aumentar el rendimiento.

Intercambiar tamaño de espacio

En algunos sistemas operativos de memoria virtual más antiguos, el espacio en el almacén de respaldo de intercambio se reserva cuando los programas asignan memoria para datos de tiempo de ejecución. Los proveedores de sistemas operativos normalmente emiten pautas sobre cuánto espacio de intercambio debe asignarse.

Abordar los límites en hardware de 32 bits

La paginación es una forma de permitir que el tamaño de las direcciones utilizadas por un proceso, que es el "espacio de direcciones virtuales&#34 del proceso; o "espacio de direcciones lógicas", para ser diferente de la cantidad de memoria principal realmente instalada en una computadora en particular, que es el espacio de direcciones físico.

Memoria principal más pequeña que la memoria virtual

Did you mean:

In most systems, the size of a process 's virtual address space is much larger than the available main memory. For example:

  • El bus de dirección que conecta la CPU a la memoria principal puede ser limitado. Las direcciones internas de 32 bits del i386SX CPU pueden dirigirse a 4 GB, pero sólo tiene 24 pines conectados al bus de dirección, limitando la memoria física instalada a 16 MB. Puede haber otras restricciones de hardware sobre la cantidad máxima de RAM que se puede instalar.
  • La memoria máxima puede no ser instalada debido al costo, porque la configuración estándar del modelo lo omite, o porque el comprador no creía que sería ventajoso.
  • A veces no todas las direcciones internas se pueden utilizar para la memoria de todos modos, porque la arquitectura del hardware puede reservar grandes regiones para I/O u otras características.

Memoria principal del mismo tamaño que la memoria virtual

Una computadora con direccionamiento verdadero de n bits puede tener 2n unidades direccionables de RAM instaladas. Un ejemplo es un procesador x86 de 32 bits con 4 GB y sin extensión de dirección física (PAE). En este caso, el procesador puede direccionar toda la memoria RAM instalada y nada más.

Sin embargo, incluso en este caso, la paginación se puede utilizar para crear una memoria virtual de más de 4 GB. Por ejemplo, muchos programas pueden estar ejecutándose simultáneamente. Juntos, pueden requerir más de 4 GB, pero no todo tendrá que estar en la RAM a la vez. Un sistema de paginación toma decisiones eficientes sobre qué memoria relegar al almacenamiento secundario, lo que lleva al mejor uso de la RAM instalada.

Aunque el procesador de este ejemplo no puede gestionar una memoria RAM superior a 4 GB, el sistema operativo puede proporcionar servicios a programas que prevén una memoria más grande, como archivos que pueden crecer más allá del límite de la memoria RAM instalada. El sistema operativo permite que un programa manipule datos en el archivo de manera arbitraria, utilizando la paginación para llevar partes del archivo a la RAM cuando sea necesario.

Memoria principal más grande que el espacio de direcciones virtuales

Algunas computadoras tienen una memoria principal más grande que el espacio de direcciones virtuales de un proceso, como Magic-1, algunas máquinas PDP-11 y algunos sistemas que usan procesadores x86 de 32 bits con extensión de dirección física. Esto anula una ventaja significativa de la paginación, ya que un solo proceso no puede usar más memoria principal que la cantidad de su espacio de direcciones virtuales. Dichos sistemas suelen utilizar técnicas de paginación para obtener beneficios secundarios:

  • El "recuerdo extra" se puede utilizar en el caché de página a los archivos y metadatos usados con frecuencia, como información del directorio, desde el almacenamiento secundario.
  • Si el procesador y el sistema operativo soportan múltiples espacios de dirección virtual, el "recuerdo extra" se puede utilizar para ejecutar más procesos. Paging permite que el total acumulativo de espacios de dirección virtual supere la memoria principal física.
  • Un proceso puede almacenar datos en archivos de memoria en sistemas de archivos respaldados por memoria, como el sistema de archivos tmpfs o sistemas de archivos en una unidad RAM, y mapear archivos dentro y fuera del espacio de la dirección según sea necesario.
  • Un conjunto de procesos todavía puede depender de las características de seguridad mejoradas del aislamiento basado en la página puede traer a un entorno multitarea.

El tamaño del total acumulado de espacios de direcciones virtuales todavía está limitado por la cantidad de almacenamiento secundario disponible.

Contenido relacionado

Telecomunicaciones en Fiyi

Las telecomunicaciones en Fiji incluyen radio, televisión, telefonía fija y móvil e...

Bomba de difusión

Bombas de difusión utilizan un chorro de vapor de alta velocidad para dirigir las moléculas de gas en la garganta de la bomba hacia el fondo de la bomba y...

Análisis de tendencias

El análisis de tendencias es la práctica generalizada de recopilar información e intentar detectar un patrón. En algunos campos de estudio, el término...
Más resultados...
Tamaño del texto:
undoredo
format_boldformat_italicformat_underlinedstrikethrough_ssuperscriptsubscriptlink
save