Publicidad

sábado, 6 de diciembre de 2008

crera una biblioteca dinaminca

Antes de crear una biblioteca dinámica debemos pensar si realmente será útil. Las bibliotecas dinámicas provocan una sobrecarga en el sistema debido a varios elementos:
La carga del programa se realiza en varios pasos, uno para el programa principal, mas uno por cada biblioteca dinámica que use dicho programa (veremos que si la biblioteca dinámica es apropiada, este último punto deja de ser un inconveniente y pasa a ser una ventaja)

Las bibliotecas dinámicas deben contener código reubicable, ya que la posición de carga dentro del espacio de direcciones virtuales del proceso no se sabrá hasta el momento de dicha carga. Esto obliga al compilador a reservar un registro para mantener la posición de carga de la biblioteca y por tanto tenemos un registro menos para el optimizador de código. Este caso es un mal menor, ya que la sobrecarga introducida por esta situación no representa mas de un 5% de sobrecarga en la mayoría de los casos.
Para que una biblioteca dinámica sea apropiada debe ser utilizada la mayor parte del tiempo por algún programa (esto evita el problema de cargar el texto de la biblioteca, ya que permanece cargada en memoria, tras la muerte del proceso que la usa al haber otros procesos usándola)
La biblioteca compartida se carga en memoria completa (no solo los módulos utilizados) así que para que sea util, debe serlo en su totalidad. No son buenas bibliotecas dinámicas aquellas donde solo se usa una funcion y el noventa por ciento de la biblioteca no se usa la mayor parte del tiempo.
Un buen ejemplo de biblioteca dinámica es la biblioteca estandar de C (la usan todos los programas escritos en C ;). Por termino medio todas las funciones se utilizan en uno u otro caso.
En una biblioteca estática suele importar poco incluir funciones cuyo uso sea infrecuente, siempre que dichas funciones ocupen un módulo propio, no serán enlazadas en aquellos programas que no las usen.
.

No hay comentarios: