Make your own free website on Tripod.com

 

 
 

 

 

SECCIONES

 

--> Windows

--> Linux

 

--> Internet

--> Hardware

--> Software

--> Tutoriales

 

--> Biografías

--> Trucos

--> Downloads

--> Drivers

--> Música

--> Diagnóstico

 

--> Humor

 

 

COMUNIDAD

 

--> Chat

--> Foro

--> Webmail

--> Guestbook

 
 

 
 

 

 

Los Recursos

 


Muchas veces se ha hablado de los "recursos" de Windows, y de las 3 pilas me mide el "medidor de recursos" de este sistema operativo.

Voy a intentar explicar cada pila, y su funcionamiento, pero es un poco difícil no utilizar muchos tecnicismos en estos caso. O sea que si me paso..... pido disculpas.

Existen por diseño de Win 95 / 98 (no en el NT), heredado desde Windows 3.1 tres pilas (montones, o "heap") limitadas a 64 Kbs cada una. Son el GDI, User y Kernel (system).

Es estas pilas se guardan manejadores ("handles"). Cada manejador es un "descriptor" en Windows. Por decirlo de alguna manera, un "apuntador", es decir ocupa muy poquito espacio y solo es un apuntador a un objeto de memoria.

GDI

Graphics Device Interface, o interfaz de dispositivo gráfico, (que para algo hablamos en Español).

El modulo GDI (es un programa de Windows), se encarga de exportar (y podemos utilizarlas), las funciones que permiten pintar, dibujar, trazar, imprimir y gestionar el color. Este programa almacena los elementos (mejor dicho los "descriptores" o "handles" de los elementos que componen los objetos gráficos tales como pinceles, lápices, y regiones en su propia memoria local que dispone de un máximo de 64 Kb. La información necesaria para los objetos GDI de mayor tamaño, como por ejemplo matrices de puntos. iconos y cursores se almacenan *normalmente* en la memoria global que no tiene estas limitaciones de tamaño.

Generalmente esta pila no presenta problemas, ya que la vida media de los objetos gráficos tiende a ser muy corta.

USER

El modulo USER controla todo aquello que Windows tiene que ver con la creación de ventanas, comunicaciones, hardware y mensajes. Tanto USER como GDI, emplean su memoria local (64 Kbs) para almacenar todas las clases de ventanas y sus datos, dejando a los menús en un segmento separado.

El limite de memoria se hace notar mas en User que en GDI ya que la vida de una ventana, tiende a ser bastante mas larga.

Un escenario de pesadilla podría consistir en tres aplicaciones del tipo MDI (Multiple Document Interface) orientadas a ventana con gráficos (por ejemplo, una gestión de red, control de fabricación y contabilidad).

Si cada aplicación crea fácilmente un mínimo de 300 ventanas (aunque solo "veamos" una, es necesario en programación estas creaciones para guardar datos), tenderá rápidamente a bloquear al PC.

En programación, se dispone de un procedimiento para evitar estas limitaciones de Windows (pero estamos suponiendo, que los programadores son buenos, -como en la mili, el valor, se le supone-). Dicha solución en programación pasa por crear solamente una ventana por clase y mover y actualizar dinámicamente las ventanas a medida que el usuario se desplaza y opera sobre las distintas ventanas y cuadros de dialogo de la aplicación.

KERNEL

Las funciones de Windows que se dedican a la gestión de memoria, multitarea y recursos se encuentran en el modulo Kernel. Este modulo es el que exporta funciones para la gestión de cadenas, recursos y los selectores que se utilizan para acceder directamente a posiciones físicas del primer megabyte de memoria.

*** Bueno, y ¿las definiciones técnicas anteriores han servido para algo?. Pues creo que lo que debemos sacar en limpio, es que los programas han de ser muy cuidadosos con la creación / destrucción de objetos en memoria. Fijémonos que Windows no libera ni toca estas pilas de memoria. Por tanto si al programador de turno, que está creando objetos, al finalizar el programa se le "olvida" liberar estos objetos,  entonces quedarán para siempre en Windows (hasta que reiniciemos).

Pensemos también, que no siempre las aplicaciones tienen que liberar. Una aplicación de Office (Word por ejemplo), la primera vez que se carga en memoria, aloca (perdón "asigna", este palabreja es una derivación del spanglih que tenemos en programación y que viene del verbo "alloc" asignar en inglés) decíamos, aloca una serie de objetos que a "propósito" no libera. ¿Para qué?, pues fácil, está suponiendo que esta aplicación la vamos a utilizar muchas veces, y entonces las siguientes veces al cargarse tardará menos tiempo.

La filosofía anterior es peligrosa..... si todo el mundo lo hiciese, el sistema se iría a la m .. enseguida.

Y la conclusión: entre algunos programas que lo hacen a propósito y otros que han tenido programadores "despistados", nuestro Windows, pende de un hilo..... (cada vez mas sólido, pero......)

1