4.1.3 Ligadores Dinamicos

 

El ligado dinámico ofrece algunas ventajas sobre los otros tipos de ligado. Proporciona la posibilidad de cargar las rutinas sólo cuando y si se necesitan. SI las subrutinas son grandes o tienen muchas referencias externas, se pueden conseguir ahorros considerables de tiempo y espacio de memoria. De forma similar, supóngase que en cualquier ejecución un programa usa sólo pocas de una gran cantidad de subrutinas posibles, pero el número exacto de rutinas necesarias no puede predecirse hasta que el programa examina su entrada. Esta situación podría presentarse, con un programa que permita al usuario llamar interactivamente a cualquiera de las subrutinas de una gran biblioteca matemática y estadística. El usuario podría suministrar la entrada de datos desde un terminal de tiempo compartido, y los resultados podrían exhibirse en el terminal. En este caso podrían ser necesarias todas las subrutinas de la biblioteca, pero en cualquier sesión de terminal solo se usarían unas cuantas. El ligado dinámico evita la necesidad de cargar la biblioteca completa para cada ejecución. El ligado dinámico puede incluso hacer innecesario que el programa conozca el conjunto de subrutinas que se podría utilizar. El nombre de la subrutina se trataría simplemente como otro elemento de entrada. Para realizar la carga de ligado de una subrutina llamada se puede utilizar varios mecanismos distintos. En el método que se analiza aquí, las rutinas que se carguen dinámicamente deben llamarse por medio de una solicitud de servicio al sistema operativo. Este método también podría considerarse como una solicitud a una parte del cargador que se mantiene en la memoria durante la ejecución del programa. Cuando se utiliza ligado dinámico, la asociación de una dirección real y el nombre simbólico de la rutina llamada no se hace hasta que se ejecuta la proposición llamada.