Anda di halaman 1dari 13

Programacin

concurrente
(Multihilos)
Hilo.

Un hilo,hebraosubprocesoes la unidad
de procesamiento ms pequea que
puede ser planificada por un sistema.
La creacin de un nuevo hilo es una
caracterstica que permite a
unaaplicacinrealizar varias tareas a la
vez (concurrentemente).

Los distintos hilos de ejecucin comparten


una serie de recursos tales como el
espacio de memoria, los archivos
abiertos, situacin de autenticacin, etc.
Esta tcnica permite simplificar el diseo
de una aplicacin que debe llevar a cabo
distintas funciones simultneamente.
Un hilo es bsicamente una tarea que
puede ser ejecutada en paralelo con otra
tarea.
Los hilos de ejecucin que comparten los
mismos recursos, sumados a estos
recursos, son en conjunto conocidos como
un proceso. El hecho de que los hilos de
ejecucin de un mismo proceso
compartan los recursos hace que
cualquiera de estos hilos pueda modificar
stos. Cuando un hilo modifica un dato en
la memoria, los otros hilos acceden a ese
dato modificado inmediatamente.
Lo que es propio de cada hilo es el
contador de programa, la pila de
ejecucin y el estado de la CPU
(incluyendo el valor de los registros).
El proceso sigue en ejecucin mientras al
menos uno de sus hilos de ejecucin siga
activo. Cuando el proceso finaliza, todos
sus hilos de ejecucin tambin han
terminado. Asimismo en el momento en el
que todos los hilos de ejecucin finalizan,
el proceso no existe ms y todos sus
recursos son liberados.
Algunos lenguajes de programacin
tienen caractersticas de diseo
expresamente creadas para permitir a los
programadores lidiar con hilos de
ejecucin (como Java o Delphi). Otros (la
mayora) desconocen la existencia de
hilos de ejecucin y stos deben ser
creados mediante llamadas de biblioteca
especiales que dependen del sistema
operativo en el que estos lenguajes estn
siendo utilizados (como es el caso del C y
del C++).
Un ejemplo de la utilizacin de hilos es
tener un hilo atento a la interfaz grfica
(iconos, botones, ventanas), mientras otro
hilo hace una larga operacin
internamente. De esta manera el
programa responde de manera ms gil a
la interaccin con el usuario. Tambin
pueden ser utilizados por una aplicacin
servidora para dar servicio a mltiples
clientes.
Programa concurrente.
Un programa concurrente es un programa
que tiene mas de una lnea lgica de
ejecucin, es decir, es un programa que
parece que varias partes del mismo se
ejecutan simultneamente. Un ejemplo
deesto es un programa que realice
determinada funcin y, simultneamente,
exponga datos en la pantalla. Un
programa concurrente puede correr en
varios procesadores simultneamente o
no.
Programacin
concurrente.
Se conoce por programacin concurrente
a la rama de la informtica que trata de
las notaciones y tcnicas de
programacin que se usan para expresar
el paralelismo potencial entre tareas y
para resolver los problemas de
comunicacin y sincronizacin entre
procesos.
En la programacin concurrente se
supone que hay un procesador utilizable
por cada tarea; no se hace ninguna
suposicin de si el procesador ser una
unidad independiente para cada uno de
ellos o si ser una sola CPU que se
comparte en el tiempo entre las tareas.
Independientemente de cmo se vaya a
ejecutar realmente el programa, en un
sistema uniprocesador o multiprocesador, el
resultado debe ser el correcto. Por ello, se
supone que existe un conjunto de
instrucciones primitivas que son o bien parte
del S.O. o bien parte de un lenguaje de
programacin, y cuya correcta
implementacin y correccin est
garantizada por el sistema.
Integrantes:
Aguayo Velzquez Erick Julin.
Daz Barraza Valeria.
Esquivel Suazo Mara Luisa.
Hernndez Ayala David
Ernesto.
Luca Gonzlez Omar
Alejandro.

Anda mungkin juga menyukai