Dado que esto es principalmente del lado del Sistema Operativo, una de las cuatro cosas sucede
Primero, cuando estás llegando a la memoria baja la mayoría de los Sistemas Operativos estándar basados en el kernel, incluyendo Windows, MacOS, iOS, Linux y Android enviarán a los programas una señal de "Presión de memoria". Esto significa que los programas que escuchan esta señal eliminarán las cosas en la memoria que no necesitan, como la caché de memoria de su navegador, o los datos del nivel anterior en su juego. Algunas tareas en segundo plano completamente opcionales pueden elegir salir y relanzar en su próxima operación programada cuando esto sucede.
Después de esto el SO elegirá uno o ambos de los siguientes si todavía hay por debajo de una cantidad segura de memoria extra:
1. Los elementos "desalojables", como la caché, los búferes y los programas en estado de caché hibernada (si el SO es capaz) serán desalojados de la memoria.
2. Los elementos "obsoletos" que no han sido leídos o escritos pueden ser comprimidos o puestos en la memoria de intercambio. (Técnicamente la compresión ES una forma de swap en un RAMDisk.)
Todos estos comportamientos ralentizarán sustancialmente su ordenador, pero por lo demás no lo notará.
Finalmente, si todas estas opciones no liberan suficiente memoria, y entonces un programa intenta pedir algo de memoria, operará una función llamada el asesino de tareas "OOM". Esto forzará el abandono de una de las siguientes, dependiendo del diseño del SO:
1. La tarea que solicitó memoria.
2. La que más memoria acapare.
3. La tarea inactiva más rancia que no haya hecho nada en mucho tiempo.
Obviamente todas estas opciones tienen problemas, y podrían fácilmente matar la tarea equivocada y colapsar el sistema. No hace falta decir que no hay ninguna opción buena en este punto, es una cuestión de tener el sistema operativo configurado para elegir la opción menos mala.
Ahora, por otro lado, los "Sistemas Operativos Tontos" que son sustancialmente más pequeños que la BIOS en un escritorio típico, que se encuentran típicamente en dispositivos como microondas, televisores no inteligentes, el ordenador que gestiona las cosas en los coches, e incluso el ordenador que gestiona las cosas en los aviones no tendrán estos mecanismos de gestión.
Una de dos cosas sucederá aquí.
1. El sistema entrará en un estado de gestión de fallos de reinicio suave, en el que rápidamente guarda la configuración básica actual en la memoria no volátil, se reinicia en la secuencia estándar de espera a encendido, y luego restaura la configuración en un tiempo tan corto que nunca lo notará.
2. El sistema intentará asignar el siguiente bloque incremental de memoria, y encontrará por software que no existe, o fallará el procesador, desencadenando el caso 1.
Como puede ver, estos sistemas son muy a prueba de fallos. Así es como manejan casi cualquier fallo de este tipo.
Sin embargo, muchos de estos sistemas son tan simples que no usan memoria asignada dinámicamente en absoluto. No están cargando nuevos programas, y no están creando o destruyendo variables. Las variables se establecen en posiciones preestablecidas en la memoria, haciendo que el sistema nunca se quede sin memoria.