Descargar

Programación: Conceptos de Concurrencia (página 2)

Enviado por Pablo Turmero


Partes: 1, 2
edu.red

17 Mecanismos de comunicación y sincronización entre procesos.

Independientemente del mecanismo de comunicación / sincronización entre los procesos, los lenguajes de programación concurrente deberán proveer primitivas adecuadas para la especificación e implementación de las mismas. De un lenguaje de programación concurrente se requiere: Indicar las tareas o procesos que pueden ejecutarse concurrentemente. Mecanismos de exclusión mútua. Mecanismos de comunicación entre los procesos.

Recordar el ejemplo de ADA.

edu.red

18 Programación Distribuida

Los métodos de sincronización que han visto se basan en leer y escribir variables compartidas, lo cual significa que los programas concurrentes se ejecuten sobre hardware con acceso a memoria compartida. Las arquitecturas de memoria distribuida son cada vez más habituales. Esto implica procesadores + memoria local + red de comunicaciones + otro mecanismo de comunicación/sincronización—-> mensajes. Para escribir programas sobre una arquitectura de memoria distribuida, es necesario definir la interfaz con el sistema de comunicaciones—> primitivas de pasaje de mensajes —> los procesos no comparten memoria, sino canales (físicos o lógicos).

edu.red

19 Programación Distribuida

Los programas concurrentes que se comunican por mensajes se denominan programas distribuidos. Esto supone la ejecución sobre una arquitectura de memoria distribuída, aunque puedan ejecutarse sobre una arquitectura de memoria compartida ( o híbrida). En un programa distribuido los canales son el único objeto que los procesos comparten ===> no hay acceso concurrente a variables y la exclusión mutua no requiere ningún mecanismo especial. Entre los mecanismos para la programación distribuida (que dependen del modo en que interactúan los procesos) tenemos productores-consumidores, clientesservidores e interacción entre pares.

edu.red

20 Programación Distribuida. Conceptos de pasaje de mensajes.

Los canales pueden proveer comunicaciones half-duplex o full-duplex. A su vez estas comunicaciones pueden ser asincrónicas (no bloqueantes) o sincrónicas (bloqueantes). Las combinaciones dan lugar a AMP, SMP, RPC y Rendezvous que son los 4 mecanismos (equivalentes funcionalmente ya que pueden intercambiarse) cuya sintaxis y semántica serán nuestro objetivo. El pasaje de mensajes (AMP o SMP) puede verse como una extensión de semáforos con datos. En RPC y Rendezvous se combina la interfaz procedural de los monitores con pasaje de mensajes implícito. Si bien decimos que son equivalentes, veremos que AMP y SMP son mejores para modelos tipo productor-consumidor o pares interactivos, mientras RPC y Rendezvous serán más útiles para esquemas C-S.

Partes: 1, 2
 Página anterior Volver al principio del trabajoPágina siguiente