Páginas que te pueden interesar

domingo, 18 de enero de 2015

Programación concurrente o Multihilo

Programación concurrente o Multihilo

Un programa concurrente es un programa que tiene mas de una linea logica de ejecucion, es decir, es un programa que parece que varias partes del mismo se ejecutan simultaneamente. Un ejemplo de  de esto es un programa que realice determinada funcion y, simultaneamente, exponga datos en la pantalla. Un programa concurrente puede correr en varios procesadores simultaneamente o no. Esta importancia de la concurrencia es especialmente destacable en sistemas operatives como Linux, que ademas de concurrentes, presentan unos mecanismos de concurrencia estables. 
El concepto fundamental de la programacion concurrente es la nocion de proceso. El termino proceso fue utilizado por primera vez por los diseñadores del sistema Multics en los años 60’s. Desde entonces, el termino proceso, utilizado a veces como sinonimo de tarea, ha tenido muchas definiciones. A continuacion se presentan algunas:
Un programa en ejecucion.
  • Una actividad asincrona
  • El “espiritu animado” de un procedimiento
  • El “centro de control” de un procedimiento en ejecucion
  • Lo que se manifiesta por la existencia de un “bloque de control del proceso” en el sistema operativo
  • La entidad a la que se asignan los procesadores
  • La unidad “despachable” 
La concurrencia es un término bastante amplio. Incluye la habilidad de desarrollar varias tareas al mismo tiempo. Por lo general, nos referimos a esa habilidad como paralelismo. La programación multihilos es algo más que el paralelismo: se refiere también al diseño de programas más sencillos aprovechando ciertas características de la implementación de la plataforma Java.

Un programa multihilo contiene dos o más partes que se pueden ejecutar de manera concurrente o simultánea. A cada una de esas partes se les denomina hilo y cada uno de ellos define un camino de ejecución independiente. Se puede ver a la programación multihilo como una forma especializada de multitarea.

Originalmente, la programación con hilos fue explotada con el fin de lograr que algunos programas resultaran más sencillos de escribir: si un programa puede dividirse en varias tareas, suele ser más fácil programar el algoritmo como tareas o hilos separados. Los programas que caen dentro de esta categoría, típicamente son especializados y se encargan de múltiples tareas independientes. 

Frecuentemente, estos programas fueron escritos como procesos separados que utilizaban herramientas de comunicación dependientes del sistema operativo, tales como señales y espacios de memoria compartida para hacer la comunicación entre los procesos, incrementando de esta forma la complejidad de los sistemas.

La popularidad de los hilos se incrementó cuando las interfaces gráficas se convirtieron en un estándar para computadoras de escritorio, debido a que el sistema de hilos permitió al usuario percibir un mejor desempeño de los programas. La introducción de hilos en estas plataformas no hizo a los programas más rápidos, pero creó en el usuario una ilusión de desempeño más rápido, quien ahora tenía un hilo dedicado para el servicio de entrada o para la salida en pantalla.

Enlaces para el material =(PDF)=: Link Seguro, Links Alternativo.
Fuente: Yaqui
Paginas relacionadas: Literaturas y otras cuestiones morales, Ceo Developers, Geniality Software.

Nota: Si el material te ha servido de ayuda por favor comparte el post, necesitamos que aumente el numero de personas que conocen acerca de estos temas, estamos en la revolucion informatica y todos debemos poner un poco de nuestra parte, para que este movimiento nunca muera. Unidos por la informatica.

No hay comentarios:

Publicar un comentario

Si tienes alguna duda, escribenos.