Acrónimo de Random Access Memory (Memoria de acceso aleatorio), es el nombre que se le da a los dispositivos de memoria que permiten acceder a los datos que almacenan en forma no secuencial, a diferencia de las cintas magnéticas cuyo acceso se hace en forma secuencial.
La memoria principal o primaria, también llamada memoria central, es aquella memoria de un ordenador, donde se encuentran el código de instrucciones y los datos del programa, que es ejecutado actualmente.


La operación principal de la administración de la memoria es llevar la información a la memoria principal, para poder ser ejecutada por el procesador. En los sistemas modernos, esta administración se llama Memoria Virtual, basada en dos técnicas: Paginación y Segmentación.
Las técnicas que existen para la carga de programas en memoria son:
Partición Fija: Consiste en dividir la memoria libre en varias partes de igual tamaño o de diferentes tamaños. En el caso de la partición fija de partes iguales, se plantean dos dificultades:
Un programa puede ser demasiado grande para caber en la partición. En este caso, el programador debe diseñar el programa mediante superposiciones, para que sólo una parte del programa esté en memoria principal. Cuando se necesita un módulo que no está presente, el programa de usuario debe cargar dicho módulo en la partición del programa, superponiéndose a los programas y datos que se encuentren en ella.
En el caso de particiones de igual tamaño, si todas las particiones estuvieran ocupadas con procesos que no están listos para ejecutar y necesita cargarse un nuevo proceso, debe determinarse qué partición expulsarse de memoria. Esta decisión es una decisión de planificación, que se verá en un capítulo próximo.
Pero en el caso de particiones de distintos tamaños, debe determinarse en que partición (por cuestiones de tamaño) se cargará el nuevo proceso. La forma más simple es asignar cada proceso a la partición más pequeña en que quepa (sin importar si la partición está cargada o no), lo que necesitará de una cola de expulsados para cada partición. Otra forma es asignar el proceso a la partición más pequeña entre aquellas que están libres (usando una única cola para todos los procesos); y si todas las particiones están ocupadas, se debe tomar una decisión de intercambio.
Partición Dinámica: Este método consiste en particiones de memoria de tamaños variable, o sea, a cada proceso se le asigna la cantidad de memoria que necesita (la cantidad exacta y ni un poco más). Tras el ingreso de nuevos procesos y la expulsión de otras, se generarán huecos de memoria inutilizados. Conforme pasa el tiempo, la memoria comienza a estar más fragmentada y su rendimiento decae; este fenómeno se denomina fragmentación externa.
Una técnica para superar la fragmentación externa es la compactación. De vez en cuando, el sistema operativo desplaza los procesos para que estén contiguos de forma que toda la memoria libre quede junta en un bloque. Las dificultades que presenta la compactación son:
- Es un procedimiento que consume tiempo de trabajo del procesador.
- Debe realizarse los movimientos de una región a otra, sin invalidar las referencias a memoria del programa.
- Mejor ajuste (Best-fit): se elige el bloque con el tamaño más parecido al del proceso entrante.
- Primer ajuste (First-fit): comienza recorriendo la memoria desde el comienzo y escoge el primer bloque disponible en el que entre el proceso entrante.
- Siguiente ajuste (Next-fit): recorre la memoria desde el lugar de la última ubicación y elige el siguiente bloque disponible que sea suficientemente grande.
- Peor ajuste (Worst-fit): elige el bloque más grande posible.




oria principal estén en estado bloqueado y la memoria sea insuficiente, aún aplicando la compactación, para un proceso adicional. En este caso, el sistema operativo debe elegir qué proceso reemplazar. Este tema se ve en los temas que tienen que ver con memoria virtual, coaching-mastery.com/como-saber-si-puedo-vender-mi-coche-por-partes/