SISTEMAS OPERATIVOS
GRUPO 4BN
PASO DE MENSAJES
ARMANDO DIAZ
GRUPO 4BN
PASO DE MENSAJES
CUANDO LOS PROCESOS INTERACTÚAN UNOS
CON
OTROS
PUEDEN
N E C E S I TA R
INTERCAMBIAR
INFORMACIÓN.
UNO
DE
LOS
M É T O D O S P O S I B L E S PA R A C O N S E G U I R E S T O E S
E L PA S O D E M E N S A J E S .
ADEMÁS DE PERMITIR LA COMUNICACIÓN, ESTE
MÉTODO
PERMITE
LA
SINCRONIZACIÓN
MEDIANTE
LA
EXCLUSIÓN
MUTUA
ENTRE
P R O C E S O S Y S E P R E S TA M U Y B I E N PA R A S E R
I M P L E M E N TA D O S E N S I S T E M A S D I S T R I B U I D O S
A S Í C O M O E N S I S T E M A S M U LT I P R O C E S A D O R Y
M O N O P R O C E S A D O R D E M E M O R I A C O M PA R T I D A .
CONCEPTOS BÁSICOS
Hay varias formas de sistemas de paso de mensajes.
La funcionalidad real del paso de mensajes se ofrece
normalmente por medio de un par de primitivas:

sena (destino, mensaje)
receive (origen, mensaje)
Este es el conjunto mínimo de operaciones necesario para
que los procesos puedan dedicarse al paso de mensajes.
Un proceso envía información en forma de un mensaje a
otro proceso designado como destino. Un proceso recibe
información ejecutando la primitiva receive que indica el
proceso emisor (origen) y el mensaje.
SINCRONIZACIÓN
La comunicación de un mensaje entre dos procesos implica
cierto nivel de sincronización entre ambos.
El receptor no puede recibir un mensaje hasta que sea
enviado por otro proceso.
Cuando se ejecuta la primitiva sena en un proceso hay dos
posibilidades. El proceso emisor se bloque hasta que el
mensaje es recibido o no se bloquea
Cuando se ejecuta la primitiva receive hay también dos
posibilidad
1. Si previamente se ha enviado algún mensaje, este es
recibido y continua la ejecución.
2. Si no hay ningún mensaje esperando entonces, o bien el
proceso se bloquea hasta que llegue el mensaje o el
proceso continua abandonando el intento de recepción.
Existen tres combinaciones , aunque cualquier sistema concreto
implementa solo una o dos combinaciones.

Envió bloqueante, Recepción bloqueante (rendezvous) : Tanto
el emisor como el receptor se bloquean hasta que se entrega el
mensaje.

Envió no bloqueante, Recepción bloqueante : El emisor puede
continuar, el receptor se bloquea hasta la recepción del mensaje.

Envió no bloqueante, Recepción no bloqueante : Nadie debe
esperar.
DIRECCIONAMIENTO

Es necesario disponer de alguna forma de especificar en la
primitiva send que proceso va a recibir el mensaje. De forma
similar, la mayoría de implementaciones permiten a los procesos
receptores indicar el origen de los mensajes que van a recibir.
Existen dos categorías de direccionamiento:
 Direccionamiento directo
 Direccionamiento indirecto.
DIRECCIONAMIENTO DIRECTO
La primitiva send incluye una especificación del proceso destino,
La primitiva receive se puede gestionar de dos formas. Una
posibilidad requiere que el proceso designe explícitamente un
proceso emisor, es decir el proceso sabe de antemano de que
proceso esta esperando el mensaje, el otro caso es donde es
imposible especificar el proceso origen por anticipado. Este es un
direccionamiento implícito.

Direccionamiento indirecto

Un método para direccionar los mensajes es mediante lo que se
conoce como direccionamiento indirecto. Este método
consiste en utilizar unas estructuras de datos compartidas
formadas por colas que pueden guardar los mensajes
temporalmente. Estas colas se denominan generalmente buzones
(sockets). De este modo, para que dos procesos se
comuniquen, uno envía mensajes al buzón apropiado y el otro los
recoge del buzón. Cada buzón tiene colas para enviar o
recibir datos
La relación entre emisores y receptores puede ser uno a uno, de muchos
a uno, de uno a muchos o de muchos a muchos.
Una relación uno a uno, permite que se establezca un enlace privado de
comunicaciones entre dos procesos.
Una relación de muchos a uno resulta útil para interacciones
cliente/servidor, donde un proceso ofrece un servicio a un conjunto de
procesos Esta última relación ofrece una gran ventaja por su adaptación
a las redes de computadoras ya que los procesos clientes o servidor
pueden ejecutarse en el mismo host o pueden encontrarse en hosts
distintos; pero en cualquier caso, se debe saber en qué host se
encuentra el proceso servidor.
Un proceso servidor necesita realizar varias operaciones para poder
aceptar peticiones por parte de los procesos cliente.
Algunas de estas operaciones son: obtener la dirección del host y puerto
de comunicaciones local, crear el buzón y enlazar la dirección a éste,
escuchar solicitudes, aceptarlas y mantener una comunicación con el
cliente. Estudiemos cada una de estas operaciones más detenidamente.
FORMATO DE MENSAJES

El formato de los mensajes depende de los
objetivos del servicio de mensajería y de si el
servicio ejecuta en un ordenador independiente
o en un sistema distribuido.
De preferencia deben ser cortos y de tamaño fijo
para minimizar el procesamiento y el coste de
almacenamiento.

Paso mensajes

  • 1.
    SISTEMAS OPERATIVOS GRUPO 4BN PASODE MENSAJES ARMANDO DIAZ GRUPO 4BN
  • 2.
    PASO DE MENSAJES CUANDOLOS PROCESOS INTERACTÚAN UNOS CON OTROS PUEDEN N E C E S I TA R INTERCAMBIAR INFORMACIÓN. UNO DE LOS M É T O D O S P O S I B L E S PA R A C O N S E G U I R E S T O E S E L PA S O D E M E N S A J E S . ADEMÁS DE PERMITIR LA COMUNICACIÓN, ESTE MÉTODO PERMITE LA SINCRONIZACIÓN MEDIANTE LA EXCLUSIÓN MUTUA ENTRE P R O C E S O S Y S E P R E S TA M U Y B I E N PA R A S E R I M P L E M E N TA D O S E N S I S T E M A S D I S T R I B U I D O S A S Í C O M O E N S I S T E M A S M U LT I P R O C E S A D O R Y M O N O P R O C E S A D O R D E M E M O R I A C O M PA R T I D A .
  • 3.
    CONCEPTOS BÁSICOS Hay variasformas de sistemas de paso de mensajes. La funcionalidad real del paso de mensajes se ofrece normalmente por medio de un par de primitivas: sena (destino, mensaje) receive (origen, mensaje) Este es el conjunto mínimo de operaciones necesario para que los procesos puedan dedicarse al paso de mensajes. Un proceso envía información en forma de un mensaje a otro proceso designado como destino. Un proceso recibe información ejecutando la primitiva receive que indica el proceso emisor (origen) y el mensaje.
  • 4.
    SINCRONIZACIÓN La comunicación deun mensaje entre dos procesos implica cierto nivel de sincronización entre ambos. El receptor no puede recibir un mensaje hasta que sea enviado por otro proceso. Cuando se ejecuta la primitiva sena en un proceso hay dos posibilidades. El proceso emisor se bloque hasta que el mensaje es recibido o no se bloquea Cuando se ejecuta la primitiva receive hay también dos posibilidad 1. Si previamente se ha enviado algún mensaje, este es recibido y continua la ejecución. 2. Si no hay ningún mensaje esperando entonces, o bien el proceso se bloquea hasta que llegue el mensaje o el proceso continua abandonando el intento de recepción.
  • 5.
    Existen tres combinaciones, aunque cualquier sistema concreto implementa solo una o dos combinaciones. Envió bloqueante, Recepción bloqueante (rendezvous) : Tanto el emisor como el receptor se bloquean hasta que se entrega el mensaje. Envió no bloqueante, Recepción bloqueante : El emisor puede continuar, el receptor se bloquea hasta la recepción del mensaje. Envió no bloqueante, Recepción no bloqueante : Nadie debe esperar.
  • 6.
    DIRECCIONAMIENTO Es necesario disponerde alguna forma de especificar en la primitiva send que proceso va a recibir el mensaje. De forma similar, la mayoría de implementaciones permiten a los procesos receptores indicar el origen de los mensajes que van a recibir. Existen dos categorías de direccionamiento:  Direccionamiento directo  Direccionamiento indirecto.
  • 7.
    DIRECCIONAMIENTO DIRECTO La primitivasend incluye una especificación del proceso destino, La primitiva receive se puede gestionar de dos formas. Una posibilidad requiere que el proceso designe explícitamente un proceso emisor, es decir el proceso sabe de antemano de que proceso esta esperando el mensaje, el otro caso es donde es imposible especificar el proceso origen por anticipado. Este es un direccionamiento implícito. Direccionamiento indirecto Un método para direccionar los mensajes es mediante lo que se conoce como direccionamiento indirecto. Este método consiste en utilizar unas estructuras de datos compartidas formadas por colas que pueden guardar los mensajes temporalmente. Estas colas se denominan generalmente buzones (sockets). De este modo, para que dos procesos se comuniquen, uno envía mensajes al buzón apropiado y el otro los recoge del buzón. Cada buzón tiene colas para enviar o recibir datos
  • 8.
    La relación entreemisores y receptores puede ser uno a uno, de muchos a uno, de uno a muchos o de muchos a muchos. Una relación uno a uno, permite que se establezca un enlace privado de comunicaciones entre dos procesos. Una relación de muchos a uno resulta útil para interacciones cliente/servidor, donde un proceso ofrece un servicio a un conjunto de procesos Esta última relación ofrece una gran ventaja por su adaptación a las redes de computadoras ya que los procesos clientes o servidor pueden ejecutarse en el mismo host o pueden encontrarse en hosts distintos; pero en cualquier caso, se debe saber en qué host se encuentra el proceso servidor. Un proceso servidor necesita realizar varias operaciones para poder aceptar peticiones por parte de los procesos cliente. Algunas de estas operaciones son: obtener la dirección del host y puerto de comunicaciones local, crear el buzón y enlazar la dirección a éste, escuchar solicitudes, aceptarlas y mantener una comunicación con el cliente. Estudiemos cada una de estas operaciones más detenidamente.
  • 9.
    FORMATO DE MENSAJES Elformato de los mensajes depende de los objetivos del servicio de mensajería y de si el servicio ejecuta en un ordenador independiente o en un sistema distribuido. De preferencia deben ser cortos y de tamaño fijo para minimizar el procesamiento y el coste de almacenamiento.