Entradas

Mostrando las entradas de mayo, 2019

3.1 CONCEPTO DE HILO

3.1 Concepto de hilo.    Los hilos o threads, son básicamente, pequeños procesos o piezas independientes de un gran proceso. También podemos decir, que un hilo es un flujo único de ejecución dentro de un proceso (un proceso es un programa ejecutándose dentro de su propio espacio de direcciones).    Un hilo no puede correr por sí mismo, se ejecuta dentro de un programa, ya que requieren la supervisión de un proceso padre para correr.  Se pueden porgramar múltiples hilos de ejecución para que corran simultáneamente en el mismo programa. La utilidad de la programación multihilo resulta evidente. Por ejemplo, un navegador Web puede descargar un archivo de un sitio, y acceder a otro sitio al mismo tiempo. Si el navegador puede realizar simultáneamente dos tareas, no tendrá que esperar hasta que el archivo haya terminado de descargarse para poder navegar a otro sitio.    Los hilos a menudo, son conocidos o lla...

3.2 COMPARACION DE UN PROPGRAMA DE FLUJO UNICO CONTRA UNO DE FLUJO MULTIPLE

Un thread o hilo es, al igual que un proceso, un flujo de control que puede gozar de cierta autonomía (puede tener sus propias estructuras de datos), pero a diferencia de un proceso, diversos hilos dentro de una aplicación pueden compartir los mismos datos.    El beneficio de ser multihilo, consiste en un mejor rendimiento interactivo y un mejor comportamiento en tiempo real.    Aunque el comportamiento en tiempo real, esta limitado a las capacidades del sistema operativo sobre el que corre, aún supera a los entornos de flujo único de programa (single-thread) tanto en facilidad de desarrollo, como en rendimiento.    Mientras los procesos mantienen su propio espacio de direcciones y entorno de operaciones, los hilos dependen de un programa padre en lo que se refiere a recursos de ejecución.    En Java, los hilos comparten el mismo espacio de memoria. Incluso comparten gran parte del entorno de ejecución, de modo que l...

3.3 CREACION Y CONTROL DE HILOS

3.3 Creación y control de hilos. 3.3.1. Atributos de hilos.    Los atributos o propiedades de un hilo varían de una implementación a otra. Sin embargo, de forma general los atributos que definen un thread son: Estado de espera:  permite que otros hilos, esperen hasta que termine de ejecutarse un hilo en especial. Dirección de stack. apuntador al inicio del stock del hilo. Tamaño de la dirección: longitud del stock del hilo. Alcance (scope): define quien controla la ejecución del hilo: el proceso o el núcleo del sistema operativo. Herencia:   los parámetros de calendarización son heredados o definidos localmente. Política de calendarización: se define que proceso se va a ejecutar y en qué instante. Prioridad: un valor de prioridad alto corresponde a una mayor prioridad.   3.3.2. Creación de hilos.    En Java, existen dos mecanismo que nos permiten la creación de hilos: Implementando la interfaz Runnable ...

3.4 SINCRONIZACION DE HILOS COMPUTACION

La necesidad de la sincronización de hilos, tiene lugar cuando varios hilos intentan acceder al mismo recurso o dato. Es decir, los hilos necesitan establecer cierto orden, a la hora de acceder a datos comunes. Para asegurarse de que los hilos concurrentes no se estorban y operan correctamente con datos o recursos compartidos, un sistema estable previene la inacición y el punto muerto o interbloqueo. La inanición tiene lugar cuando uno o más hilos están bloqueados al intentar conseguir el acceso a un recurso compartido de ocurrencias limitadas.  El interbloqueo es la última fase de la inanición; ocurre cuando uno omás hilos están esperando una condición que no puede ser satisfecha. Esto ocurre muy frecuentemente cuando dos o más hilos están esperando a que el otro u otros desbloqueen algún dato u objeto común.    Existen dos forma para aplicar la sincronización : Bloqueo de objetos Uso de señales.    Bloqueo de objetos.  ...