La memoria principal de un ordenador, o memoria RAM, trabaja de una forma bastante peculiar que no muchos s conocen. En este artículo podrás comprender cómo lo hace y cómo el sistema operativo la gestiona explicado de una manera sencilla.
Índice de contenidos
Los ordenadores están compuestos por una memoria principal del sistema. Pero ¿sabrías decir cómo trabaja?
La memoria principal es simplemente un espacio de almacenamiento intermedio entre la U y la memoria secundaria, es decir, los medios de almacenamiento masivo, como puede ser un disco duro. Por tanto, la memoria principal o RAM se va a encargar de cargar todo lo que la U necesita para «alimentarse» y ejecutar los programas: datos e instrucciones.
Estos datos e instrucciones se almacenan en forma de procesos, con unos espacios reservados para cada proceso con todas las instrucciones y los datos necesarios que se necesitan para ejecutar un programa determinado.
La idea de esta memoria es que la U no tenga que buscar la información en los medios secundarios, que son más lentos que la RAM en cuanto al . Así se reduce la latencia y aumenta el rendimiento del equipo.
Se denomina a memoria a cualquier acción de lectura o escritura en la memoria. Sin entrar en conceptos como el paginamiento, la segmentación, etc. Es así de simple, cualquier operación que lea o escriba una información se considera un .
Para tener claro cómo trabaja la memoria principal también hay que tener claro el concepto de memoria virtual. Bien, una U puede direccionar X cantidad de memoria, es decir, X cantidad de direcciones posibles, y dentro de ese espacio de direccionamiento no solo existe la memoria RAM, sino que en teoría, los sistemas están diseñados para que los programadores dispongan de memoria casi infinita gracias a la memoria virtual.
Eso se consigue mediante una arquitectura que hace que la memoria RAM o principal y la memoria secundaria parezcan un mismo espacio de almacenamiento uniforme de cara al programador. O mejor dicho, que el espacio reservado en Windows a Pagefile.sys, o la SWAP o memoria de intercambio en sistemas tipo Unix, y la memoria RAM sean una prolongación aunque físicamente no sea así.
Desde el punto de vista del hardware, la U tendrá que traducir las direcciones reales de memoria a virtuales y viceversa, cuando quiera trabajar con los programas activos. Esto es lo que haría el TLB y MMU, aunque esto son otros temas…
Cuando se desarrollan programas muy largos y pesados, estos consumirían gran cantidad de la memoria RAM disponible, y no dejaría cargar otros procesos o al menos no demasiados. Por eso se realiza lo que se conoce como overlay, es decir, dividir al programa en bloques de procesamiento que se irán moviendo desde o hacia la memoria RAM/memoria virtual.
Por ejemplo, imagina que un programa está compuesto por 5 módulos o bloques. Puede que el 1 y el 2 estén cargados en la RAM y el 3, 4 y 5 estén en la memoria secundaria, es decir, en ese Pagefile.sys o en la SWAP a la espera de que quede hueco en la RAM para subirlos a ella y que sean procesados por la U.
El kernel del sistema operativo tiene una parte que se encarga de gestionar estos movimientos de procesos. Se denomina scheduler o planificador y permite dar prioridad a unos u otros procesos mediante un algoritmo para cargarlos o descargarlos de la memoria RAM según interese en cada momento.
Puedes pensar que si tienes aparentemente una memoria infinita, por qué necesitar memorias RAM cada vez más grandes. Pues bien, mientras mayor sea la memoria RAM, más procesos podrá albergar y más rápidamente entregará lo que necesita a la U, por lo que tendrá más rendimiento.
Sin embargo, una memoria RAM pequeña necesitaría pasar demasiados procesos a la memoria de intercambio, haciendo que sean más lentos. Además, cada software tiene sus propios requisitos de memoria para funcionar adecuadamente, por ese motivo, el equipo debería cumplir los requisitos mínimos para funcionar como se espera y de forma fluida.
En principio, dependiendo del software que sea, incluso se podría ejecutar si no se cumplen los requisitos mínimos, aunque lo haría de forma pobre, haría que se sobrecargase el sistema, se degradaría el rendimiento, subiría la temperatura, y generaría otros problemas como bloqueos, etc.
Sin embargo, otros programas que ni siquiera se van a ejecutar si no se cumplen los requisitos mínimos especificados por su desarrollador. Esto ocurre en el caso de los más exigentes, como algunos videojuegos.
Antes de leer este artículo, ¿habrías imaginado que era así como trabajaba?
Asus y Noctua han anunciado durante la Computex una colaboración para crear la GPU con…
Gigabyte ha dado un gran paso adelante con su AI TOP ATOM, un mini PC…
Ojo al trimestre de NVIDIA porque puede haber sorpresa, según Piper Sandler. Leer más