¿Cómo funciona una computadora si alcanza el límite de RAM?

Los sistemas modernos de memoria de computadora son bastante complicados. Sin embargo, a los fines de su pregunta, es importante saber acerca de tres cosas:

  • Memoria física
  • Memoria virtual
  • Almacén de respaldo

La memoria física es probablemente la más fácil de entender. Hay chips físicos reales que implementan la memoria física. Conceptualmente, la memoria física es bastante simple. La memoria se divide en un montón de pequeñas piezas, cada una de las cuales puede contener una pequeña cantidad de datos, generalmente 8 bits, es decir, un byte. Cada ubicación tiene una dirección . La dirección es simplemente un número. Finalmente, tiene una entrada para decirle si leer o escribir datos. Para que la memoria funcione, le das una dirección y luego un comando de lectura o escritura. Si le da un comando de lectura, se emiten los datos en esa dirección; si le da un comando de escritura, los datos que le da se escriben en la memoria en esa dirección. Cuando dice que su computadora tiene 8 gigabytes de RAM, esta es la memoria de la que está hablando.

En los primeros sistemas informáticos, esto era casi todo con lo que tenía que trabajar. Si deseaba ejecutar varios programas u otro software, como controladores de hardware, los cargaba en diferentes partes de la memoria y esperaba que no se escribieran en la memoria del otro. No hace falta decir que esto podría ser muy poco confiable.

Ingrese memoria virtual . Hay un viejo dicho que dice: “Cualquier problema en la programación de computadoras (ciencia) puede resolverse con otro nivel de indirección”. La memoria virtual es exactamente eso. El subsistema de memoria virtual de una computadora se ubica (conceptualmente) entre la CPU y la memoria física. Consiste en algunos bits de hardware y algún software en el sistema operativo para administrar el hardware. El propósito principal de esta combinación de hardware / software es mapear las direcciones (virtuales) que el programa usa con las direcciones (físicas) utilizadas por la memoria física. En este esquema, cada proceso que se ejecuta en el sistema tiene un espacio de direcciones virtual con direcciones que comienzan en un número bajo y que suben al rango de gigabytes. Cada proceso ahora tiene su propia tabla de asignación única que controla cómo sus direcciones de memoria virtual se asignan a la memoria física. Para aclarar, la memoria no se traduce byte a byte. La memoria se divide en páginas , generalmente de 4 kilobytes u 8 kilobytes de tamaño y la asignación se realiza página por página. (Otra forma de expresar esto es que el espacio de memoria se divide en páginas).

Usando este mapeo, la memoria de diferentes procesos se mantiene separada y los programas pueden ejecutarse sin interferir con la memoria del otro.

¡Pero espera! ¡Hay más! Ahora que el sistema operativo controla la asignación de memoria, puede hacer una cosa más. Aquí es donde entra en juego la tienda de respaldo . Suponga que el sistema está ejecutando un montón de programas y necesita ejecutar uno más, pero se está utilizando toda la memoria física. En esta situación, el sistema operativo puede tomar los datos en una o más de las páginas de memoria física y escribirlos en un almacén de respaldo, generalmente un disco duro o hoy en día un SSD. El sistema ahora puede cargar el nuevo proceso y darle parte de la memoria física recién liberada para usar. Si el proceso anterior necesita usar esa memoria nuevamente, el sistema puede cambiar alguna otra memoria del proceso al almacén de respaldo, volver a cargar los datos del proceso anterior desde el almacén de respaldo, girar la tabla de mapeo y el proceso anterior ahora está listo para funcionar. El almacén de respaldo suele ser mucho, mucho más grande que la memoria física. Ocho gigabytes de RAM es (actualmente) una cantidad decente de RAM pero un disco duro de un terabyte, aproximadamente 100 veces el almacenamiento es bastante promedio y económico.

Recuerde que tanto las instrucciones del programa como los datos del programa se almacenan en la memoria para que el sistema de memoria virtual trabaje para mapear tanto las instrucciones del programa como los datos del programa.

Ese es el sistema básico. La memoria virtual se asigna a la memoria física y, cuando es necesario, los datos de la memoria física se intercambian dentro y fuera del almacén de respaldo.

PRIMA:

Todo esto parece muy simple. ¿Cuál es el truco? Hay dos principales:

  • Es mucho más complicado en la vida real que lo que se acaba de describir.
  • La tienda de respaldo es de mil a cientos de miles o incluso millones de veces más lenta que la RAM

¿Entonces, cómo funciona?

Primero, los programadores del sistema operativo suelen ser bastante inteligentes y muy orientados a los detalles. Tal vez no sea tan inteligente como los compiladores de C ++, pero a la altura. Realizan un seguimiento de todos estos detalles y generalmente se centran en este tipo de programación.

La segunda parte es un poco más complicada. Depende de una característica de ejecutar programas llamada localidad . La localidad a veces se divide en dos conceptos, localidad de datos y localidad de ejecución (a veces llamada localidad de tiempo). Básicamente, la localidad de los datos significa que si el programa está trabajando en un poco de datos, probablemente también estará trabajando en los datos a su alrededor. En otras palabras, el programa no solo accede de manera involuntaria a todos sus datos todo el tiempo. Tiende a trabajar en fragmentos de datos en algunas ubicaciones y luego puede pasar a otras ubicaciones. La localidad de ejecución significa que si el programa está ejecutando un poco de código, probablemente también estará ejecutando código a su alrededor. En otras palabras, el programa no solo ejecuta todo su código todo el tiempo. Probablemente esté ejecutando el código en cuatro, cinco o seis ubicaciones en cualquier etapa en particular. (La descripción de la localidad del tiempo proviene de la idea de que si un programa está haciendo algo ahora, probablemente seguirá haciéndolo un poco más).

El resultado del comportamiento de la localidad es que un programa solo accederá a una pequeña parte de toda su memoria disponible en cualquier momento. En otras palabras, solo usa unos pocos bloques de su espacio de direcciones en cualquier momento. Esto a su vez significa que el acceso más lento a la tienda de respaldo no ocurre con mucha frecuencia, al menos no en un sistema que funcione bien. Controlar cómo se realiza la paginación hacia y desde el disco es otro de los “detalles” que el programador del sistema operativo debe gestionar. El dicho es: “Si haces bien la memoria virtual, obtienes una memoria que es tan grande como tu disco y tan rápida como tu RAM. Si lo haces mal, obtienes una memoria que es tan grande como tu RAM y tan rápida como tu disco “.

La administración de memoria es una función del sistema operativo (por ejemplo, Windows o IOS). Si un programa realiza una solicitud de memoria y el sistema operativo no puede proporcionar la memoria solicitada, el programa debe decidir cómo manejar la situación. Si la solicitud de memoria es un “deber”, el programa tiene que salir con gracia y probablemente presente un mensaje de usuario. En algunos casos, el programa podría funcionar con una solicitud de memoria más pequeña y continuar.

La mayoría de los sistemas operativos permiten memoria “virtual” adicional más allá de lo que está físicamente instalado. En este caso, parte de la memoria está “paginada” en el disco. Cuando se produce una gran cantidad de paginación, la computadora se ralentizará notablemente.

Como otros han mencionado, el sistema operativo normalmente intercambiará programas y datos que no se utilizan activamente en la memoria virtual, que utiliza espacio en su disco duro. Debido a que la memoria virtual usa espacio en disco, su PC pasa tiempo leyendo y escribiendo esta información en el disco en lugar de leer y escribir la información que realmente está tratando de usar. Los discos duros, incluso las unidades de estado sólido, son más lentos que la RAM. Debido a estos dos factores, el resultado suele ser una notable pérdida de rendimiento. También puede reducir la vida útil de una unidad de estado sólido en cierta cantidad, aunque probablemente no lo suficiente como para desgastarla antes de que normalmente la reemplace.

Si su disco duro no tiene suficiente espacio para el tamaño del archivo de intercambio que su sistema operativo necesita para realizar el acto de malabarismo que está obligando a hacer, algunos de sus programas pueden bloquearse y bloquearse. Incluso puede bloquear su sistema completo, aunque esto es mucho menos común con los sistemas operativos modernos de lo que solía ser. Probablemente deberías cerrar Photoshop cuando estés jugando y ahorrarte la molestia u obtener más RAM.

Las computadoras alcanzan el límite de RAM todo el tiempo y lo manejan mediante el uso de la memoria virtual. Tan pronto como se alcanza el límite de RAM, la computadora copia algunos de los contenidos de RAM en el disco (disco duro). Por lo general, esas son páginas de memoria que no se han utilizado en mucho tiempo. Cuando se necesita de nuevo el contenido de esas páginas de memoria, se vuelven a leer del disco a la RAM. Es un proceso relativamente costoso ya que la RAM es mucho más rápida que el dinosaurio mecánico que es su disco duro. Durante ese proceso, su computadora se ralentizará, pero es mejor que la alternativa. Con los avances en el almacenamiento no volátil (como SSD), el tiempo que lleva intercambiar páginas se reduce drásticamente, lo que resulta en una experiencia de usuario mucho mejor.

Todos los sistemas operativos modernos admiten memoria virtual. Esto les permite intercambiar páginas de memoria a su disco duro, y volver a intercambiarlas en la memoria cuando sea necesario. Debido a que un disco duro, incluso un SSD, es más lento que la DRAM en su bus de memoria, esto conduce a un impacto en el rendimiento, pero es mejor que su programa se bloquee debido a la falta de memoria.

Cuando se quede sin RAM física, su computadora comenzará a usar “RAM virtual”. Esto significa que comenzará a usar algo de espacio temporal en su unidad de almacenamiento primaria (HDD / SSD) ya que no tiene suficiente RAM.

El problema con esto es que la RAM física es electrónica y, por lo tanto, muy rápida en términos de velocidad, por lo que la RAM virtual será más lenta, lo que también puede hacer que su PC sea más lenta (esto es muy común).

Bueno, por lo general, su computadora comenzará a intercambiar la memoria RAM en el archivo / partición de intercambio en el disco duro. Si agota por completo su RAM y el espacio de intercambio, todo comenzará a fallar.

El sistema operativo de la computadora tiene la inteligencia para encontrar programas que no están activos pero que aún están en la RAM y cambiarlos al disco para liberar espacio en la RAM para programas más activos. En algún momento, el rendimiento realmente se verá afectado, pero si la contención de RAM no es tan mala y hay programas realmente inaccesibles, funcionará de maravilla sin que usted lo sepa.

Pagina parte de sus programas en su disco duro. Cuando recuerda ese programa, tiene que volver a cargar parte del programa, lo que ralentiza las cosas. Un SSD y / o más memoria minimizarían el retraso.

Una vez que su computadora se queda sin memoria disponible, puede usar el espacio en disco como “memoria virtual”. Esto significa que su rendimiento tendrá un gran éxito porque el acceso al disco es miles de veces más lento que la velocidad de acceso RAM.

En algunos casos, su computadora podría incluso fallar.

Utilizará una parte de su disco duro o un archivo en su disco duro para emular la memoria RAM. La velocidad de un disco mecánico es mucho más baja que la memoria RAM, por lo que la computadora se volverá lenta.

Mientras tanto, puede cerrar algunos programas y el sistema operativo comenzará a utilizar la memoria RAM real nuevamente, no el disco duro.

Puede configurar Photoshop diciéndole cuánta memoria RAM puede usar, y si tiene una unidad ssd (mucho más rápida que una unidad mecánica), podrá usarla para almacenar sus archivos en un disco de memoria virtual; simplemente vaya a Edición> Preferencias> General> Rendimiento o Scratch Disks.

La computadora simplemente comienza a cambiar al HDD con más frecuencia. Si todas las aplicaciones adicionales están en segundo plano sin hacer nada, no notará ningún impacto en el rendimiento. Sin embargo, si Photoshop está ejecutando un proceso por lotes y el navegador tiene un juego flash en ejecución, entonces el juego que está jugando en Black Ops 3 que también se eliminaría y del HDD constantemente y, por lo tanto, no se ejecutaría tan rápido como podría ser.

8 gb es bastante ram, ¿estás seguro de que no tienes otros programas abiertos? La computadora seguirá funcionando si el 8 concierto se usa usando parte del disco duro, pero se ralentizará bastante. un sistema de 32 bits solo puede usar 4 gb de ram, así que espero que tenga un sistema de 64 bits.

Simplemente se ralentizará y finalmente se bloqueará. Sin embargo, no es algo que pueda hacer a menos que lo intente.