¿Qué es la vinculación de direcciones?

Pantalla plana de computadora y teclado - vista lateral

El enlace de direcciones asigna la memoria de la computadora al software.

Credito de imagen: Ryan McVay / Photodisc / Getty Images

La memoria de la computadora usa tanto direcciones lógicas como direcciones físicas. El enlace de direcciones asigna una ubicación de memoria física a un puntero lógico asociando una dirección física a una dirección lógica, que también se conoce como dirección virtual. La vinculación de direcciones es parte de la gestión de la memoria de la computadora y la realiza el sistema operativo en nombre de las aplicaciones que necesitan acceso a la memoria.

Gestión de la memoria

La vinculación de direcciones se relaciona con cómo se almacena el código de un programa en la memoria. Los programas están escritos en texto legible por humanos, siguiendo una serie de reglas establecidas por los requisitos estructurales de el lenguaje de programación y el uso de palabras clave que se interpretan en acciones por el procesamiento central de la computadora Unidad. El punto en el que se crea la versión ejecutable de un programa determina cuándo se produce el enlace de direcciones. Algunos lenguajes de programa, como "C" y COBOL, deben compilarse, mientras que otros, principalmente scripts, se ejecutan desde el texto del programa original en lugar de una versión binaria compilada en código de máquina.

Video del día

Tiempo de compilación

El primer tipo de enlace de direcciones es el enlace de direcciones en tiempo de compilación. Esto asigna un espacio en la memoria al código de máquina de una computadora cuando el programa se compila en un archivo binario ejecutable. El enlace de direcciones asigna una dirección lógica al punto de inicio del segmento en la memoria donde se almacena el código del objeto. La asignación de memoria es a largo plazo y solo se puede modificar volviendo a compilar el programa.

Tiempo de carga

Si la asignación de memoria se designa en el momento en que se asigna el programa, ningún programa podrá transferirse de una computadora a otra en su estado compilado. Esto se debe a que el código ejecutable contendrá asignaciones de memoria que pueden estar ya en uso por otros programas en la nueva computadora. En este caso, las direcciones lógicas del programa no están vinculadas a direcciones físicas hasta que el programa se invoca y se carga en la memoria.

Tiempo de ejecución

El enlace de direcciones en tiempo de ejecución generalmente se aplica solo a variables en programas y es la forma más común de enlace para scripts, que no se compilan. En este escenario, el programa solicita espacio de memoria para una variable en un programa la primera vez que se encuentra esa variable durante el procesamiento de instrucciones en el script. La memoria asignará espacio a esa variable hasta que finalice la secuencia del programa, o a menos que una instrucción específica dentro del script libere la dirección de memoria vinculada a una variable.