visitas
6256
votos
4
votos++Votar positivamente esta entrada :)
+43
votos--Votar negativamente esta entrada :(
-39
Memoria RAM: ¿por qué si tengo 4GB o más el SO me detecta menos?
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.