88

Memoria RAM: ¿por qué si tengo 4GB o más el SO me detecta menos?

Publicado el: 05/07/2011
Memoria RAM
En esta entrada voy a explicar en qué consiste una forma de desaprovechar la memoria RAM instalada en el ordenador, que afecta a muchos usuarios.
Desde hace ya algunos años se están vendiendo ordenadores con 4 o más GB de RAM, pero si usamos un sistema operativo de 32 bits, éste indicará que estamos usando un poco menos de esos 4 GB. ¿Por qué ocurre esto?

Diagrama de acceso de la CPU a la memoria RAM

A la memoria se accede físicamente a través del bus de direcciones y del bus de datos. Un bus no es más que una serie de hilos de cobre en la placa para enviar y recibir información. El bus de direcciones sirve para indicar qué celda de memoria vamos a leer o escribir, y el bus de datos para transportar la información de la celda seleccionada al procesador. El número de líneas del bus de direcciones determina el número de celdas a las que podremos acceder. Por ejemplo, si tenemos 32 líneas, cada una representa un bit y, por lo tanto, podremos acceder a las direcciones que hay de la número 0 en decimal a la 2^32-1, es decir tenemos 2^32=4.294.967.296 direcciones de memoria. Como la unidad de información mínima direccionable es el byte, podremos tener un máximo de 4.294.967.296 bytes es decir 4 Gigabytes, mientras que si tenemos 64 líneas, podremos direccionar 2^64 = 18.446.744.073.709.551.616 bytes que son nada menos que 16 Exabytes.

Entonces si tenemos un equipo con 4 GB o más y un bus de direcciones de 64 bits, ¿por qué el sistema operativo de 32 bits no puede acceder a toda la memoria? El sistema operativo entre sus tareas, tiene la de gestionar una cosa vital para la ejecución de los programas llamada memoria virtual, que implica acceder a la memoria RAM para copiar páginas de memoria almacenadas en el disco duro y viceversa. Para llevar a cabo esos accesos a memoria, el sistema operativo de 32 bits usa instrucciones de código máquina de 32 bits, que sólo pueden usar 32 de las 64 líneas que tiene el bus de direcciones de la máquina. Por eso sólo puede direccionar 4 Gigabytes. Entonces ¿por qué si tenemos justo el número de líneas de cobre necesarias para leer 4GB de RAM, en un sistema operativo de 32 bits, no usa los 4 GB enteros? El problema es que hay direcciones que están reservadas para acceder a la memoria de video de la tarjeta gráfica (se dice que la memoria de video está mapeada en memoria RAM), otras, están reservadas para la entrada y salida de datos del resto de tarjetas y dispositivos, además de que el sistema operativo se reserva también algo del espacio de direcciones para su propio uso. Por eso, necesitamos un sistema operativo de 64 bits si queremos utilizar, en caso de que tengamos 4 GB o más, toda la RAM disponible en nuestro equipo.

Por otro lado, no hay ningún sistema operativo realmente capaz de direccionar 16 Exabytes. El límite suele estar muy por debajo de eso, pero lo suficientemente alto para que, actualmente, no sea económica y físicamente viable alcanzarlo.

Pensamientos (0): Comentar
Categorías:

Comparte:

Copia y pega en tu página:

Comparte
Escribe tus pensamientos computables

Respondiendo a los siguientes comentarios:

Para comprobar que eres un humano responde correctamente:

Esta pregunta no me gusta, ¡cambialá!

Ninguno de estos datos será almacenado.

(Escribe el correo electrónico)

Campo obligatorio.

(Escribe el correo eléctronico o los correos electrónicos separados por comas)

Campo obligatorio.

Para comprobar que eres un humano responde correctamente:

Esta pregunta no me gusta, ¡cambialá!