Concurrencia E Hilos
Enviado por DardeX • 22 de Junio de 2012 • 887 Palabras (4 Páginas) • 1.029 Visitas
CONCURRENCIA E HILOS
Para poder definir la relación, debemos empezar por definir lo que es la concurrencia: La programación concurrente es el nombre que se da a la notación y técnicas de programación que permite expresar el paralelismo potencial y los problemas de sincronización y comunicación resultantes (permite abstraerse de los detalles de la implementación).
Concurrencia es la propiedad de los sistemas que permiten que múltiples procesos sean ejecutados al mismo tiempo, y que potencialmente puedan interactuar entre sí.
Los procesos concurrentes pueden ser ejecutados realmente de forma simultánea, solo cuando cada uno es ejecutado en diferentes procesadores. En cambio, la concurrencia es simulada si solo existe un procesador encargado de ejecutar los procesos concurrentes, simulando la concurrencia, ocupándose de forma alternada es uno y otro proceso a pequeñísimos intervalos de tiempo, de esta forma simula que se están ejecutando a la vez.
Es así que en la actualidad es más sencillo ver procesos recurrentes realmente a la salida al mercado de los multiprocesadores, los cuales equivalen a tener varios procesadores, y que son capaces de poder entregarnos la concurrencia que se requiere, y que puede ayudar a que nuevos programas realicen sus tareas de mejor manera obteniendo resultados que antes hubieran sido más tediosos, y dando la capacidad de utilizar varios programas al mismo tiempo, los cuales hagan un exhaustivo uso de capacidad computacional.
Las tareas que se ejecutan pueden ser un conjunto de procesos o hilos de ejecución creados por un único programa; además de esto, la concurrencia primero era realizada de manera simulada en un solo procesador, lo que conocemos como multiprogramación, pero a través del trabajo y desarrollo de las tecnologías, se llego a hacer posible el trabajo con más de un procesador al mismo tiempo, donde podemos ver una concurrencia real, y también podemos ver a la concurrencia en una red de computadores distribuidos.
Los hilos, por otra parte para los sistemas operativos son la unidad de procesamiento más pequeña que puede ser planificada, y gracias a estos se da la característica de realizar varias tareas a la vez de manera concurrente. Todos los hilos comparten los recursos computacionales como ser memoria, los archivos abiertos, etc; y mediante el uso de hilos podemos simplificar el diseño de programas que deben realizar múltiples tareas al mismo tiempo.
Básicamente un hilo es una tarea que puede ser ejecutada de forma paralela a otra, y un conjunto de hilos que comparten los mismos recursos, sumado a esos recursos son conocidos como un proceso. Sabiendo esto, podemos entender que todos estos hilos al compartir los recursos, cualquiera de ellos puede modificar un dato en memoria, y cuando esto sucede todos los hilos acceden a ese dato modificado inmediatamente.
Para poder utilizar
...