Está en la página 1de 18

Programación de Sistemas

Bibliotecas

M.I.S. Lizbeth A. Hernández González


Facultad de Estadística e Informática. UV
Bibliotecas
 ¿Qué es una biblioteca?

 Una biblioteca es un conjunto de rutinas,


procedimientos, clases, etc., que pueden
ser reutilizadas desde otros programas.

 Generalmente se encuentran en código


objeto y son ligadas al programa principal
mediante los cargadores/ligadores.
Bibliotecas
 Se ligan solamente las subrutinas que son
llamadas por el otro programa

Optimización de código y de memoria

 Propósitos de reutilización para rutinas que


son llamadas varias veces y que pueden ser
utilizadas desde varios programas.
Bibliotecas estáticas
 Conjunto de códigos objeto integrados
en un solo archivo (p.e. .lib, .a) junto con
uno o varios archivos de encabezados (o
archivos de importación, p.e. .h)
 En tiempo de compilación formando un
solo código ejecutable
mayor espacio en disco y en memoria
 Mantenimiento suele ser complicado
Bibliotecas estáticas
 En el proceso de traducción se generan
códigos de operación de los símbolos
relocalizables (nombre y equivalencia
numérica)

 Tabla de Símbolos Globales (TSG) : orden


y tamaño de los módulos,

 Mapa de carga que será utilizado por el


ligador.
 Existen herramientas para crear
bibliotecas estáticas:

◦ TLIB de Borland
◦ ar y ranlib de Unix.
Bibliotecas dinámicas
 Son conocidas generalmente como DLL’s
(Dynamic Linked Library) o bibliotecas de
ligado dinámico (Windows)
 En Unix las bibliotecas dinámicas tienen
extensión .so.
 Pueden actualizarse también de manera
independiente (respetar la interfaz).
Bibliotecas dinámicas
 Las bibliotecas dinámicas permanecen en
archivos independientes
Programa 2
Programa 1
Delphi
.NET

Reuso, optimiza manejo de memoria y


espacio en disco.
Cuadro comparativo
Bibliotecas Estáticas Dinámicas
Necesidad de
recompilar los P O
programas que las usan
Facilidad de depuración
y mantenimiento P O

Necesario archivos
externos para correr O P

Colocadas en memoria
en el proceso de carga O P

El enlazado depende del


compilador P O
Ejemplo

 Desarrollo de una biblioteca en Delphi


con dos procedimientos:
◦ Mínimo (x,y)
◦ Máximo(x,y)

 Práctica en Centro de Cómputo.


Comparación Macros, Procedimientos y
Bibliotecas en Ensamblador
 Todas ayudan al programador a que sea
posible llamar y utilizar código
previamente depurado.

 Hacen las programación más eficiente y


modular.

 No “reinventar la rueda”.
Macros
 Ventajas
◦ Son rápidas porque se ejecutan en línea.
◦ Pueden pasar y recibir parámetros que
afecten sólo la operación de las mismas.
◦ Pueden ser guardadas en una biblioteca
en código fuente, que puede ser
fácilmente editada.
◦ La cabecera de programación es simple.
Macros
 Desventajas
◦ Hacen más grande el código fuente, ya
que son expandidas cada vez que son
llamadas.
Procedimientos
 Ventajas
◦ Permiten un código fuente corto, ya que
los procedimientos no son expandidos
en el código del programa.
Procedimientos
 Desventajas
◦ Los procedimientos hacen más lenta la
ejecución del programa, con cada CALL
la computadora debe dejar el programa
principal e ir a otra parte de código.
◦ La cabecera para usar procedimientos
está involucrada (NEAR o FAR).
Bibliotecas
 Ventajas
◦ Permiten un código fuente corto (los
procedimientos no son expandidos )
◦ Con un gestionador de biblioteca.
 Desventajas
◦ Algunas de las desventajas listadas para los
procedimientos.
◦ Cualquier archivo de biblioteca debe estar
marcado como external.
¿Cuándo usar?
 Macros
◦ Rutinas cortas
◦ Rutinas no frecuentes
 Procedimiento
◦ Rutinas largas,
◦ Rutinas llamadas muchas veces.
 Bibliotecas
◦ Las mismas rutinas son usadas con mucha
frecuencia en sus programas.
Tarea
 Exponer para el lunes 8 de noviembre
2010
 Windows Internals, The Implementation of the
Windows Operating, páginas 471 a 488

 Prácticas:
 Investigar el uso de bibliotecas estáticas y
dinámicas en Unix y en Windows.

También podría gustarte