Diferencia entre la dirección lógica y la dirección física

los diferencia clavee entre la dirección lógica y la dirección física es que La CPU genera una dirección lógica durante la ejecución del programa, mientras que la dirección física es una ubicación en la unidad de memoria.

En términos simples, la CPU genera la dirección lógica o la dirección virtual. Desde la perspectiva de un programa que se está ejecutando, un elemento parece estar ubicado en la dirección proporcionada por la dirección lógica. La unidad de memoria observa la dirección física. Además, permite acceder a una celda de memoria particular en la memoria principal por el bus de datos.

CONTENIDO

1. Resumen y diferencia clave
2. ¿Qué es la dirección lógica?
3. ¿Qué es la dirección física?
4. Comparación lado a lado: dirección lógica frente a dirección física en forma de tabla
5. Resumen

¿Qué es la dirección lógica??

La CPU genera la dirección lógica. Desde la perspectiva de un programa que se está ejecutando, un elemento parece estar ubicado en la dirección proporcionada por la dirección lógica. Los programas de aplicación que se ejecutan en la computadora no ven las direcciones físicas. Siempre funcionan utilizando las direcciones lógicas. El espacio de direcciones lógicas es el conjunto de direcciones lógicas que genera un programa. Es necesario asignar las direcciones lógicas a las direcciones físicas antes de usarlas. La unidad de administración de memoria (MMU) del dispositivo de hardware maneja este proceso de mapeo.

Esquemas de mapeo MMU

MMU sigue varios esquemas de mapeo. En el esquema de mapeo más simple, el valor en el registro de reubicación se agrega a cada dirección lógica producida por los programas de aplicación antes de enviarlos a la memoria. También hay algunos otros métodos complejos para generar el mapeo. El enlace de direcciones (es decir, la asignación de instrucciones y datos en direcciones de memoria) puede ocurrir en tres momentos diferentes.

Figura 01: Dirección lógica y física

En primer lugar, puede suceder en tiempo de compilación si las ubicaciones de memoria reales se conocen de antemano, y esto generaría el código absoluto en tiempo de compilación. También puede ocurrir en el momento de la carga si las ubicaciones de la memoria no se conocen de antemano. Para esto, el código re-localizable debe ser generado en tiempo de compilación. Además, el enlace de dirección puede ocurrir en el momento de la ejecución. Esto requiere soporte de hardware para la asignación de direcciones. En el tiempo de compilación y el tiempo de carga, las direcciones lógica y física son iguales. Pero este procedimiento es diferente cuando el enlace de dirección ocurre en tiempo de ejecución.

¿Qué es la dirección física??

La unidad de memoria observa la dirección física o la dirección real. Permite que el bus de datos acceda a una celda de memoria particular en la memoria principal. MMU mapea la dirección lógica a la dirección física. Por ejemplo, al utilizar el esquema de mapeo más simple, que agrega el valor del registro de reubicación (asumiendo que el valor en el registro es y) a la dirección lógica, los rangos de direcciones lógicas de 0 a x se asignarán a un rango de direcciones físicas de y a x + y.

Además, esto también se conoce como el espacio de direcciones físicas de ese programa. Todas las direcciones lógicas deben asignarse a direcciones físicas antes de poder usarlas.

¿Cuál es la diferencia entre la dirección lógica y la dirección física??

 Dirección lógica vs dirección física

La dirección lógica es la dirección en la que un elemento parece residir desde la perspectiva de un programa de aplicación en ejecución. La dirección física es una dirección de memoria que se representa en forma de un número binario en el circuito del bus de direcciones para permitir que el bus de datos acceda a una especial Celda de almacenamiento de la memoria principal o un registro del dispositivo de E / S mapeado en memoria..
Visibilidad
El usuario puede ver la dirección lógica de un programa.. El usuario no puede ver la dirección física del programa..
Método de Generación
CPU genera la dirección lógica. MMU calcula la dirección física.
Accesibilidad
El usuario puede utilizar la dirección lógica para acceder a la dirección física.. El usuario no puede acceder directamente a la dirección física..

Resumen - Dirección lógica vs dirección física

La diferencia entre la dirección lógica y la dirección física es que la CPU genera una dirección lógica cuando el programa se ejecuta, mientras que la dirección física es una ubicación en la unidad de memoria. Todas las direcciones lógicas deben asignarse a direcciones físicas antes de que la MMU pueda usarlas. Las direcciones físicas y lógicas son las mismas cuando se usa el enlace de direcciones de tiempo de compilación y de carga, pero difieren cuando se usa el enlace de direcciones de tiempo de ejecución.

Referencia:

1. “Dirección lógica”. Wikipedia, Wikimedia Foundation, 30 de abril de 2018. Disponible aquí 
2. “Dirección física”. Wikipedia, Wikimedia Foundation, 30 de abril de 2018. Disponible aquí 

Imagen de cortesía:

1.'MMU principian'By Andre Schieleit - Trabajo propio, (Dominio público) a través de Commons Wikimedia