Está en la página 1de 12

Programación Concurrente

y cooperación entre hilos


Jairo Pacanchique
PROGRAMACION CONCURRENTE
Es aquel en el que sus instrucciones se van ejecutando
en serie, una tras otra, desde su inicio hasta el final. Por
tanto, en un programa secuencial solo existe una ´
única actividad o hilo de ejecución. Es la forma
tradicional de programar, pues los primeros
ordenadores solo tenían un procesador y los primeros
sistemas operativos no proporcionaron soporte para
múltiples actividades dentro de un mismo proceso.
Mecanismos para soportar la
concurrencia
Paralelismo Real: consiste en colocar una tarea o
actividad en cada procesador que se encuentre
disponible, en términos modernos se puede hablar del
número de núcleos que posee un procesador, por lo
tanto a cada núcleo se le asignara una tarea y esta
trabajaran de forma simultánea sin contratiempos.
Ventajas de la Programación
Concurrente:
Eficiencia: Consiste en el hecho de disponer de múltiples actividades dentro del sistema
o aplicación permiten que esta pueda concluir su trabajo de manera más rápida.
Escalavidad: Se da cuando se diseñan e implementan componentes que interactúan y
colaboran entre sí, lo cual facilita la distribución y aplicación de los diferentes
ordenadores usados, generando de esta forma una aplicación que sea distribuida.

Gestión de Comunicaciones:
La implementación de algunos elementos o recursos indicados anteriormente, es lo nos
permite que aquellos recursos y comunicaciones sean usados y explotados de forma
sencilla y concurrentemente, el envió o intercambio de mensajes por red no aplicara en
todas la aplicaciones.
Ventajas de la Programación
Concurrente:
Flexibilidad: Por lo general se hace uso de un diseño modular
y estructurado en las aplicaciones, por lo tanto los requisitos
de la aplicación pueden cambiar, también se debe identificar
cuales modelos tendrán que ser modificados para
implementar estas variaciones
Menor Hueco Semántico: En gran cantidad de sistemas o
aplicaciones se requiere el uso de múltiples tareas o
actividades cuando se hace implementación de sistemas o
programas concurrentes.
Inconvenientes de la Programación
Concurrente:
Programación Delicada: Durante el uso de
la aplicación pueden surgir problemas como
coordinación de carreras o interbloqueo .
Depuración Compleja: Esta de compuesta
de múltiples actividades las cuales pueden dar
como resultado diferentes ejecuciones.
Cooperación entre Hilos
Para que se lleve a cabo la programación
concurrente, la cooperación entre las
actividades que se realizan es muy importante,
y cada actividad depende de un hilo de
ejecución y la comunicación entre estos
últimos es primordial para la concurrencia.
Hilos De Ejecución
Es una actividad independiente que se puede hacer
simultáneamente, en los S.O son la manera de
planificación usada por estos, escogiendo entre el
conjunto de hilos cual entrara en ejecución y a cada
núcleo se le asignara un hilo de ejecución.
Interrupción en los hilos de
ejecución
La finalización de entrada y salida en caso de interrupción de una
finalización de una lectura de un bloque.
Por parte de estas operaciones permite que el hilo de este tipo genere
alguna serie de interrupciones que se llama excepción cuando una
intrusión privilegiada en modo usuario o cuenta en un programa de
transferir datos en lugares del procesador
Mediante una interrupción de software no todas se llaman provocaciones o
expulsión del hilo en ejecución normal o actual
La generación de fallos en la página esto ocurre cuando el hilo accede de
su espacio virtual de decisiones y no tenga un maraco asociado en generar
un memoria virtual de comprobar dicha página esta hará parte de un
proceso que ejecute el hilo.
Ciclo De Vida De Los Hilos Java
Nuevo. En el momento que se terminen los hilos de este es creado y pasara a un
estado de preparado
Preparado. Un hilo se encontrara preparado cuando nada lo obligue a una espera o
ejecución. Si en el momento de la preparación queda un hilo separado, el planificador
seleccionara cuál de ellos será ejecutado, en general el algoritmo optimiza el
rendimiento global.
Ejecución. Los hilos permaneces en este estado mientras se ejecuta por algún
procesador. En caso de que se espere por algún motivo el hilo suspenderá su
ejecución.
Bloqueo. Es donde se trata de obtener el mecanismo de sincronización o bien se
espera la finalización de una operación de entrada y salida.
Suspendido. Cuando se encuentren suspendidos es debido a la utilización de un
intervalo de suspensión.
Terminado. Es cuando el hilo finaliza su ejecución o es interrumpido por una alguna
excepción que es incapaz de gestionar.
Cooperación De Hilos.
Comunicación. Consiste en que la actividades del sistema
concurrente compartan información, de no así dejaría de ser
una aplicación concurrente.
- Variables Compartidas: Se da cuando las actividades del
sistema comparten un mismo espacio de direcciones, esto
ocurre cuando múltiples hilos son usados por un proceso.
- Intercambio de mensajes: Se cuándo las actividades actúan
como receptoras y emisoras de información necesaria para
que exista la comunicación ya sea con procesos o actividades
en la misma maquina o sin estos proceden de otra maquina.
Cooperación De Hilos.
Sincronización. Sirve para indicar el orden de ejecución de
sentencias o se respeten algunas restricciones con respecto al
código.
- Exclusión Mutua: Es cuando una parte de código se ejecuta
en exclusión mutua cuando un hilo corre esta sección en cada
momento, esto indica que se debe ejecutar un hilo primero y
después del que sigue.
- Sincronización Condicional: Esto indica que los hilos deban
estar suspendidos hasta que se cumpla cierta condición.

También podría gustarte