3

Click here to load reader

Paso por mensajes (Concurrencia)

Embed Size (px)

DESCRIPTION

Conceptos generales acerca del paso de mensajes del contexto de concurrencia y como solución a la exclusión mutua.

Citation preview

Page 1: Paso por mensajes (Concurrencia)

Sistemas Operativos 1 http://elcopypaste.wordpress.com Universidad de San Carlos de Guatemala

Métodos de comunicación

Los programas concurrentes necesitan algún tipo de comunicación entre los procesos. Esto debido a dos

razones principales:

1. Los procesos compiten para obtener acceso a recursos compartidos, 2. Los procesos quieren intercambiar datos.

Para cualquier tipo de comunicación hace falta un método de sincronización entre los procesos que

quieren comunicarse entre ellos. Al nivel del programador existen tres variantes como realizar las

interacciones entre procesos:

Usar memoria compartida (shared memory),

Mandar mensajes (message passing),

Lanzar procedimientos remotos (remote procedure call RPC).

Memoria compartida:

Los procesos se comunican a través de variables compartidas.

El sistema operativo provee la memoria compartida.

El programador tiene la responsabilidad de proveer comunicación.

Paso de mensajes

¿Qué es un mensaje? Un mensaje es un pedazo de información estructurada que envía un agente a otro a través de un

canal de comunicación.

El paso de mensajes es imprescindible en sistemas distribuidos dado que en este caso no existen recursos directamente compartidos para intercambiar información entre los procesos.

Es una técnica empleada en programación concurrente para aportar sincronización entre procesos y permitir la exclusión mutua, de manera similar a como se hace con los semáforos, monitores, etc.

No precisa de memoria compartida, por lo que es muy importante en la programación para sistemas distribuidos.

Los elementos principales que intervienen en el paso de mensajes son el proceso que envía, el que recibe y el mensaje.

Existen dos tipos de pasos de mensajes: o Asíncrono: El proceso que envía no espera a que sea recibido el mensaje enviado. Estos

puede que tengan un buzón para mantener los mensajes que se han enviado previamente y no han sido recibidos aún.

o Síncrono: El proceso que envía el mensaje, espera a que este sea recibido, antes de generar y enviar otro mensaje.

Page 2: Paso por mensajes (Concurrencia)

Sistemas Operativos 1 http://elcopypaste.wordpress.com Universidad de San Carlos de Guatemala

El envío de mensajes es útil en las siguientes situaciones:

Las necesidades de comunicación son simples.

La cantidad de información que se puede transmitir, por unidad de tiempo, es crítica.

El alcance del sistema es limitado, o sea, es preferible una implementación rápida que un diseño flexible y sofisticado.

Hay que evitar protocolos específicos de redes.

No están disponibles protocolos de objetos remotos.

Page 3: Paso por mensajes (Concurrencia)

Sistemas Operativos 1 http://elcopypaste.wordpress.com Universidad de San Carlos de Guatemala

Referencias

Breve descripción de los métodos de comunicación:

http://trevinca.ei.uvigo.es/~formella/doc/cd05/node88.html

Información bastante completa acerca de lo que son los mensajes, el paso de mensajes, los protocolos

fijos y adaptables, incluyendo el paso de mensajes con eventos en Java:

http://www.mcc.unam.mx/~cursos/Algoritmos/javaDC99-1/resumen6.html

Breves conceptos de paso de mensajes, se pueden encontrar links acerca de los tipos de sincronización,

entre otros: http://trevinca.ei.uvigo.es/~formella/doc/cd05/node91.html

Información y conceptos bastante completos acerca de paso de mensajes:

http://es.wikipedia.org/wiki/Paso_de_mensajes

Conceptos de todo lo que abarca concurrencia y ejemplos en pseudocódigo de semáforos, monitores,

paso por mensajes, entre otros: http://gsyc.escet.urjc.es/jmplaza/ssoo/conc.pdf

Licencia