ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Un hilo


Enviado por   •  13 de Mayo de 2012  •  Trabajos  •  1.104 Palabras (5 Páginas)  •  599 Visitas

Página 1 de 5

1. Concepto de Hilo: Un hilo es un flujo independiente de ejecución que se ejecuta simultanea o independiente. Un hilo es un único flujo de ejecución dentro de un proceso. Un hilo es como un programa clásico que comienza en un punto A y se ejecuta hasta alcanzar un punto B. Un hilo corre independientemente de cualquier cosa que este corriendo en el computador.

Un hilo es una secuencia de código en ejecución dentro del contexto de un proceso cada proceso tiene por lo menos un hilo. Los hilos comparten los recursos del proceso, incluyendo memoria y archives abiertos. Esto genera eficiencia, pero también pueden generar un problema potencial en la comunicación de estos hilos.

Los hilos no pueden ejecutarse ellos solos; requieren la supervisión de un proceso padre para correr.

Dentro de cada proceso puede haber varios hilos ejecutándose.

Los hilos a menudo son conocidos o llamados procesos ligeros (lightweight processes). Un hilo, en efecto, es muy similar a un proceso pero con la diferencia de que un hilo siempre corre dentro del contexto de otro programa. Por el contrario, 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.

Objetos Thread: Cada hilo es asociado a una instancia de la clase Thread. Existen dos estrategias básicas para usar objetos thread para crear aplicaciones concurrentes:

- Directamente controlar la creación y la administración del hilo, inicializándolo cada vez que la aplicación necesite iniciar una tarea asíncrona.

- Abstrayendo la administración del hilo del resto de la aplicación, entregando las tareas de la aplicación a un ejecutor(executor)

2. Diferencia entre multiproceso y multihilo : Ha sido demostrado en los últimos anos que el acercamiento para incrementar el desempeño de un microprocesador se realiza mediante el número de unidades de ejecución no es eficiente. El rendimiento de un microprocesador no incrementa proporcionalmente al número de unidades de ejecución debido a las limitaciones del recurso on-chip existente en los diferentes subsistemas, por ejemplo, numero de puertos disponibles, la asociación de la cache, entre otros. La mayoría de las veces, estas limitaciones de recursos no puedes ser evitadas debido a restricciones físicas.

Por lo tanto es necesario entender nuevas arquitecturas que están siendo usadas para aumentar el desempeño de los procesadores. Multihilos (multithreading) y multiprocesos (Multiprocessing)

A los multiprocesos les llama procesos pesados (heavyweight process), dado que cada proceso tiene sus propios recursos, por ejemplo memoria y comunicación, mientras que en un entorno multihilo se les denomina procesos ligeros o hilos(lightweight process), la diferencia es

que los procesos pesados están en espacios de direccionamiento distintos y por ello la

comunicación entre procesos y el cambio de contexto es caro. Por el contrario, los multihilos

comparten el mismo espacio de direcciones y comparten cooperativamente el mismo proceso

pesado, cada hilo guarda su propia pila, variables locales y contador de programa, por ello, la

comunicación entre hilos es muy ligera y la conmutación de contexto muy rápida.

El multiprocesamiento con más de un procesador, opera en la misma memoria pero ejecuta procesos simultáneamente. En un sistema de multiprocesamiento múltiples procesadores son empleados para ejecutar más de una actividad en el tiempo. Sin embargo, es esencial proporcionar la sincronización entre procesadores múltiples dado que ellos tienen acceso a la memoria común tal que ninguna parte del trabajo debería ser descuidada por

...

Descargar como (para miembros actualizados)  txt (7.2 Kb)  
Leer 4 páginas más »
Disponible sólo en Clubensayos.com