SlideShare una empresa de Scribd logo
Sistema Operativo II
Luis Alfredo Dilone
Camilo Salas A.
Juan Pablo Mejia
Mensajería
Un mensaje es un contenedor que se emplea para
intercambiar información entre dos o más procesos. Los
mensajes tienen un cierto formato generalmente compuesto
por una cabecera, que contiene información sobre la fuente
y el destinatario, y un cuerpo, que contiene información
específica.
Los mecanismos de mensajería se refiere al conjunto de
funcionalidades que permiten al sistema operativo realizar
la entrega de un mensaje a uno o varios procesos. Mediante
dicho mecanismo también es posible resolver problemas de
concurrencia.
Los sistemas operativos generalmente ofrecen dos
llamadas al sistema para que un proceso pueda enviar y
recibir mensajes:
Send (destino, mensaje): Envía un mensaje a un destino.
Receive (fuente, mensaje): Recibe un mensaje de una
fuente.
Una operación compuesta derivada de las primitivas
básicas es:
Sendrec (dest_fuent, mensaje): Envía un mensaje a un
destino y recoge la respuesta.
Cualquier proceso que necesite comprobar si tiene
mensajes para ser procesados por él debe invocar la
llamada al sistema recv.
Formas de identificación
Para identificar la fuente y el destino de nuestro mensaje se pueden
emplear dos estrategias.
Denominación Directa
En este caso se emplea un ID que permite identificar a la fuente y al
destinatario de manera unívoca en el sistema, la denominación
directa permite tres configuraciones:
Unicast, de manera que la comunicación sucede entre una fuente y
un destinatario.
Broadcast, el emisor envía un mensaje a todos los procesos
existentes en el sistema.
Multicast, el emisor envía un mensaje a un grupo de procesos, siendo
un grupo un subconjunto de procesos existentes en el sistema.
El principal inconveniente de la denominación directa es que se
pierde el mensaje si el destino no se encuentra.
Denominación Indirecta
Se emplea un elemento intermediario denominado buzón. El sistema
operativo ofrece llamadas al sistema que permiten la creación y
destrucción de buzones, por
ejemplo, CreateMailbox y DestroyMailbox. Una vez creado el
buzón, se emplea éste para realizar la comunicación entre procesos.
Con los buzones se pueden emplear cuatro formas diferentes de
comunicación:
Buzón limitado : De un proceso a otro.
Buzón de entrada: De varios a uno.
Buzón de salida: De uno a varios.
Buzón múltiple: Varios procesos entre sí con el mismo buzón.
El receptor no conoce la identidad de quien envía el mensaje, a
menos que el SO se haya encargado de ello. El problema surge
cuando un proceso intruso y éste lee los mensajes de los buzones.
Formas de transmisión
Distinguimos tres formas de transmisión: Transmisión por copia,
transmisión por referencia y transmisión por copia en caso de
escritura.
Transmisión por copia
Si se emplea denominación directa, al invocar el receptor la
llamada recv, el mensaje se copia del espacio de memoria del
emisor al espacio de receptor. Esta forma de implementar la
transmisión tiene un coste de orden lineal <math>O(n)</math>
.
Si se emplea denominación indirecta, al invocar send el emisor, el
mensaje se copia del espacio de emisor al espacio del buzón, que se
encuentra en el espacio de memoria del sistema operativo. Una vez
que el receptor invoca receive, se copia el mensaje al espacio de
memoria que el receptor ha habilitado para almacenar el mensaje.
Transmisión por referencia
Es una mejora frente al mecanismo de transmisión por copia.
Básicamente, en lugar de copiar el mensaje, lo que supone un coste de
<math>O(n)</math>, se le devuelve al receptor una dirección de
memoria en la que se encuentra el mensaje.
Si se emplea junto a la denominación directa, el sistema operativo le
devuelve al receptor un puntero a la dirección en la que se encuentra el
mensaje. Si el mensaje está en el espacio del emisor, son necesarios
mecanismos explícitos de compartición de memoria entre procesos, ya
que dos procesos cualquiera no comparten memoria.
Si se emplea junto a la denominación indirecta, el emisor crea un
mensaje en el espacio del sistema operativo y se le ofrece un puntero al
receptor
Transmisión por copia en caso de escritura (COW)
Este método permite que los procesos emisor y receptor tengan
acceso a la zona de memoria del mensaje de forma controlada. La
zona puede pertenecer a uno de los procesos, o al SO, y se accede a
ella a través de una ventana en el espacio de direcciones que
inicialmente sólo permite consultar la información.
Cuando uno de los procesos intenta modificar el contenido del
mensaje, se detecta esta escritura gracias al mecanismo de
protección de la memoria. Entonces, el SO hace una copia para uno
de ellos, actualiza las referencias, y deja que ambos procesos
continúen.
Se mantiene un único espacio mientras sea posible.
Formas de comunicación
Comportamiento del emisor, send()
Síncrona: el proceso emisor que realiza el send() queda bloqueado
hasta que el receptor llama a recv() y el proceso bloqueado pasa a
estado preparado.
Asíncrona: suponemos una estructura de datos con capacidad de
almacenamiento limitada, dependiente del proceso destinatario o
en el buzón del SO. Al ser enviados, los mensajes irán encolándose
para que el proceso receptor pueda gestionarlos cuando pueda.
Comportamiento del receptor, recv()
Bloqueante: una llamada a recv() sin mensajes a procesar pasa el
proceso llamante a estado bloqueado. Un send() de otro proceso
que añada un mensaje a la cola del proceso bloqueado hace que
éste pase a estado preparado.
No bloqueante: una llamada a recv() sin mensajes a procesar
devuelve un mensaje de error, pero la ejecución del proceso
llamante continúa. Entendemos por proceso llamante a aquel que
hace uso de las llamadas send() y recv().
Formato de los mensajes
Fijo
Los procesos acuerdan emplear un formato fijo para sus mensajes.
Mixto
Los procesos acuerdan emplear mensaje con partes cuyo formato es
fijo, como por ejemplo una cabecera inicial, seguido de partes de
tamaño variable.
Mensajería a través de la red
Unicidad del destinatario
Fiabilidad en la transmisión
Formato de los datos
(http://www.cs.umd.edu/class/sum2003/cmsc311/Notes/Data/endian
.html): Enviar un entero a través de la red puede ser un problema
debido a la forma en el que se representan los datos en la memoria
dependiente de la arquitectura.
Comunicación entre procesos:
Hay dos formas en que se puede comunicar los procesos, los cuales
son:
Por medio de un esquema de comunicación por memoria compartida
(Buffer)
Por medio de un mecanismo de comunicación entre procesos (IPC,
Interprocess comunication).
La IPC ofrece un mecanismo que permite a los procesos
comunicarse y sincronizar sus acciones. La mejor forma de proveer
la comunicación entre procesos es mediante un sistema de mensajes.
La función de un sistema de mensaje es permitir a los procesos
comunicarse entre sí sin tener que recurrir a variables compartidas.
Message-queuing system API:
put: añadir un mensaje a una cola. get: bloquear hasta que la cola no esté
vacía, luego quitar el primer elemento. poll: verificar si hay mensaje,
quitar el primero. Nunca se bloquea. notify: instalar en la cola un
dispositivo que avisará cuando un nuevo mensaje se inserte en la cola.
Comunicación orientada a mensajes
Las comunicaciones RPC se basan en la idea que el receptor está
operativo para poder invocar una cierta función, no podemos
suponer que el receptor siempre estará operativo y esperando a
comunicarse. La solución es definir la comunicación en término de
paso de mensajes.
Mensajes momentáneos vs. mensajes persistentes
Momentáneos: no soportan el envío de mensajes persistentes.
(1) Sockets, (2) Message-passing interface (MPI).
Sockets Berkeley
Sistema fuertemente acoplado a las redes TCP/IP
Sockets API:
socket: crea una nueva comunicación.
bind: añade la dirección local al socket.
listen: queda en espera de conexiones.
accept: queda bloqueado hasta la llegada de un pedido de
conexión.
connect: pedido de establecimiento de conexión.
send: enviar datos por la conexión.
receive: recibir datos por la conexión.
close: desvincula el socket la dirección local.
Message-passing interface (MPI)
Diseñado para aplicaciones paralelas crea un nivel de abstracción
más alto que el provisto por sockets. Provee una interface con
primitivas más avanzadas. Por el contrario cuenta con una gran
cantidad de implementaciones (librería y protocolos) propietarias lo
que genera la necesidad de una interface standard.
MPI API:
MPI_bsend: vincula la salida de mensajes con el buffer de salida
local.
MPI_send: envía un mensaje y espera hasta que es copiado al buffer.
MPI_ssend: envía un mensae y espera hasta que el receptor inicie.
MPI_sendrecv: envía un mensaje y espera respuesta.
MPI_isend: pasa la referencia de un mensaje y continúa.
MPI_issend: para la referencia de un mensaje y espera hasta que el
receptor inicie.
MPI_recv: recibe un mensaje; se bloquea en el caso de no haberlo.
MPI_irecv: verifica si hay mensajes entrantes; no se bloquea.
Persistentes: el mensaje se encola y se entrega cuando se pide. (1)
Message-oriented middleware (MOM)
Implementaciones
Hay un número de APIs que pueden ser usadas por IPC. Un
número de plataformas independientes de APIs incluidas las
siguientes:
Tuberías Anónimas y con nombre
Common Object Request Broker Architecture (CORBA)
Distributed Computing Environment (DCE)
Message Bus (MBUS) (especificado en RFC 3259)
ONC RPC
Sockets
XML XML-RPC or SOAP
ZeroC's Internet Communications Engine (ICE)
Gracias
El principio de la sabiduría es el temor a
Jehová
Mensajería

Más contenido relacionado

PPT
metodos de busqueda en inteligencia artificial
PDF
Casos de uso
DOCX
Clasificación de los requerimientos
PPTX
metodologia de prototipos
PDF
Modelo del dominio
PDF
Metodologias de investigacion Ingenieria de software
DOCX
Mecanismo de sincronización de procesos
PPTX
Unidad 1. Introducción. Conceptos fundamentales de la POO
metodos de busqueda en inteligencia artificial
Casos de uso
Clasificación de los requerimientos
metodologia de prototipos
Modelo del dominio
Metodologias de investigacion Ingenieria de software
Mecanismo de sincronización de procesos
Unidad 1. Introducción. Conceptos fundamentales de la POO

La actualidad más candente (20)

DOC
Requerimientos norma ieee830
DOC
Ejercicio integrador de_análisis_de_sistemas_orientado_a_objetos
PDF
5.1 ejemplos uml
PPTX
Agentes MóViles
PPTX
Análisis de Requerimientos
PPT
Sincronización entre procesos
PPTX
Agentes inteligentes
PPTX
DOC
Cuadro Comparativo
PDF
Prototipo de-sistema-para-matricula-e-inscripcion-de-asignaturas---uni
PPT
Actividad 2 Analizador léxico, sintáctico y semántico
PPTX
Interbloqueo sistemas operativos
PDF
especificaciones de diseño de software para una página de viajes
PDF
Tema N° 6 Técnicas para el Levantamiento y Recolección de Requisitos
PPTX
IMPORTANCIA DEL ANÁLISIS DE REQUERIMIENTOS PARA EL DESARROLLO DE SISTEMAS
PPTX
Optimizacion de Compiladores
PDF
Sistemas operativos; procesos
DOC
Requerimientos de un Sistema (usando criterios del swebok)
PPTX
Modelos o Ciclos de vida de software
PDF
Modelo de desarrollo de software
Requerimientos norma ieee830
Ejercicio integrador de_análisis_de_sistemas_orientado_a_objetos
5.1 ejemplos uml
Agentes MóViles
Análisis de Requerimientos
Sincronización entre procesos
Agentes inteligentes
Cuadro Comparativo
Prototipo de-sistema-para-matricula-e-inscripcion-de-asignaturas---uni
Actividad 2 Analizador léxico, sintáctico y semántico
Interbloqueo sistemas operativos
especificaciones de diseño de software para una página de viajes
Tema N° 6 Técnicas para el Levantamiento y Recolección de Requisitos
IMPORTANCIA DEL ANÁLISIS DE REQUERIMIENTOS PARA EL DESARROLLO DE SISTEMAS
Optimizacion de Compiladores
Sistemas operativos; procesos
Requerimientos de un Sistema (usando criterios del swebok)
Modelos o Ciclos de vida de software
Modelo de desarrollo de software
Publicidad

Destacado (20)

PPTX
1. la navegación por internet.
PPT
Desarrollo web final
DOCX
Informática I
PDF
Omar trejos buriticá la esencia de la logica de programación
PPTX
Elementos de la ventana internet explorer
PPT
Exp. Ingenieria Web
PPT
Logica de predicados
PPTX
MODELO DE DISEÑO WEB
DOCX
Aplicaciones Middleware
PPTX
Elementos de la pantalla de internet explorer
PPT
Sistemas Distribuidos
PPT
Ingenieria web
PPTX
Ejercicios en prolog
PPT
Middleware
PPT
Biodiversidad
PDF
Practicas prolog
PPTX
BD. control de concurrencia
PPT
Caracteristicas de los Sistemas Distribuidos
PPTX
Funciones de navegadores web y buscadores web
PPTX
Comunidad primitiva.
1. la navegación por internet.
Desarrollo web final
Informática I
Omar trejos buriticá la esencia de la logica de programación
Elementos de la ventana internet explorer
Exp. Ingenieria Web
Logica de predicados
MODELO DE DISEÑO WEB
Aplicaciones Middleware
Elementos de la pantalla de internet explorer
Sistemas Distribuidos
Ingenieria web
Ejercicios en prolog
Middleware
Biodiversidad
Practicas prolog
BD. control de concurrencia
Caracteristicas de los Sistemas Distribuidos
Funciones de navegadores web y buscadores web
Comunidad primitiva.
Publicidad

Similar a Mensajería (Informática) (20)

PPTX
Paso mensajes
PPTX
SISTEMAS DISTRIBUIDOS COMUNICACION UNIDAD 2.pptx
PDF
Modelo paso de mensajes
PDF
comunicación en sistemas operativos distribuidos
PPTX
SEMANA 6.pptx
PDF
Capitulo 2 comunicacion
PPT
Comunicación en Grupo
PPTX
Tema iv comunicación entre procesos
PPTX
Servicio de un sistema operativo.pptx
PPTX
Comunicación entre procesos Sistemas distribuidos
DOCX
PDF
Sistemas distribuidosz
PPT
Clase 3 ene 8
PPT
Gprocesos
PPTX
U2 SO I I distribuidos (COMUNICACION EN LOS SISTEMAS OPERATIVOS DISTRIBUIDOS.)
PPT
Sistemas Distribuidos
PPTX
Exposicion
PDF
Unidad II
PDF
Informatica basica 5. internet
PPTX
Sistemas distribuidos
Paso mensajes
SISTEMAS DISTRIBUIDOS COMUNICACION UNIDAD 2.pptx
Modelo paso de mensajes
comunicación en sistemas operativos distribuidos
SEMANA 6.pptx
Capitulo 2 comunicacion
Comunicación en Grupo
Tema iv comunicación entre procesos
Servicio de un sistema operativo.pptx
Comunicación entre procesos Sistemas distribuidos
Sistemas distribuidosz
Clase 3 ene 8
Gprocesos
U2 SO I I distribuidos (COMUNICACION EN LOS SISTEMAS OPERATIVOS DISTRIBUIDOS.)
Sistemas Distribuidos
Exposicion
Unidad II
Informatica basica 5. internet
Sistemas distribuidos

Último (20)

PDF
ADMINISTRACIÓN DE ARCHIVOS - TICS (SENA).pdf
DOCX
TRABAJO GRUPAL (5) (1).docxjsjsjskskksksk
PDF
CONTABILIDAD Y TRIBUTACION, EJERCICIO PRACTICO
PDF
informe_fichas1y2_corregido.docx (2) (1).pdf
PPTX
Control de calidad en productos de frutas
PDF
NREN - red nacional de investigacion y educacion en LATAM y Europa: Caracteri...
PDF
Documental Beyond the Code (Dossier Presentación - 2.0)
PPTX
Mecanismos-de-Propagacion de ondas electromagneticas
PDF
TRABAJO DE TECNOLOGIA.pdf...........................
PPTX
Tema 1 Taller de tecnologia y proceso tecnologico.pptx
PDF
0007_PPT_DefinicionesDeDataMining_201_v1-0.pdf
PPTX
modulo seguimiento 1 para iniciantes del
PDF
MANUAL de recursos humanos para ODOO.pdf
PDF
PRESENTACIÓN GENERAL MIPIG - MODELO INTEGRADO DE PLANEACIÓN
PPTX
la-historia-de-la-medicina Edna Silva.pptx
PPTX
Diapositivas Borrador Rocha Jauregui David Paolo (3).pptx
PDF
Estrategia de Apoyo de Daylin Castaño (5).pdf
PPTX
El uso de las TIC en la vida cotidiana..
DOCX
Trabajo informatica joel torres 10-.....................
PPTX
Uso responsable de la tecnología - EEST N°1
ADMINISTRACIÓN DE ARCHIVOS - TICS (SENA).pdf
TRABAJO GRUPAL (5) (1).docxjsjsjskskksksk
CONTABILIDAD Y TRIBUTACION, EJERCICIO PRACTICO
informe_fichas1y2_corregido.docx (2) (1).pdf
Control de calidad en productos de frutas
NREN - red nacional de investigacion y educacion en LATAM y Europa: Caracteri...
Documental Beyond the Code (Dossier Presentación - 2.0)
Mecanismos-de-Propagacion de ondas electromagneticas
TRABAJO DE TECNOLOGIA.pdf...........................
Tema 1 Taller de tecnologia y proceso tecnologico.pptx
0007_PPT_DefinicionesDeDataMining_201_v1-0.pdf
modulo seguimiento 1 para iniciantes del
MANUAL de recursos humanos para ODOO.pdf
PRESENTACIÓN GENERAL MIPIG - MODELO INTEGRADO DE PLANEACIÓN
la-historia-de-la-medicina Edna Silva.pptx
Diapositivas Borrador Rocha Jauregui David Paolo (3).pptx
Estrategia de Apoyo de Daylin Castaño (5).pdf
El uso de las TIC en la vida cotidiana..
Trabajo informatica joel torres 10-.....................
Uso responsable de la tecnología - EEST N°1

Mensajería (Informática)

  • 1. Sistema Operativo II Luis Alfredo Dilone
  • 2. Camilo Salas A. Juan Pablo Mejia
  • 3. Mensajería Un mensaje es un contenedor que se emplea para intercambiar información entre dos o más procesos. Los mensajes tienen un cierto formato generalmente compuesto por una cabecera, que contiene información sobre la fuente y el destinatario, y un cuerpo, que contiene información específica. Los mecanismos de mensajería se refiere al conjunto de funcionalidades que permiten al sistema operativo realizar la entrega de un mensaje a uno o varios procesos. Mediante dicho mecanismo también es posible resolver problemas de concurrencia.
  • 4. Los sistemas operativos generalmente ofrecen dos llamadas al sistema para que un proceso pueda enviar y recibir mensajes: Send (destino, mensaje): Envía un mensaje a un destino. Receive (fuente, mensaje): Recibe un mensaje de una fuente. Una operación compuesta derivada de las primitivas básicas es: Sendrec (dest_fuent, mensaje): Envía un mensaje a un destino y recoge la respuesta. Cualquier proceso que necesite comprobar si tiene mensajes para ser procesados por él debe invocar la llamada al sistema recv.
  • 5. Formas de identificación Para identificar la fuente y el destino de nuestro mensaje se pueden emplear dos estrategias. Denominación Directa En este caso se emplea un ID que permite identificar a la fuente y al destinatario de manera unívoca en el sistema, la denominación directa permite tres configuraciones: Unicast, de manera que la comunicación sucede entre una fuente y un destinatario. Broadcast, el emisor envía un mensaje a todos los procesos existentes en el sistema. Multicast, el emisor envía un mensaje a un grupo de procesos, siendo un grupo un subconjunto de procesos existentes en el sistema. El principal inconveniente de la denominación directa es que se pierde el mensaje si el destino no se encuentra.
  • 6. Denominación Indirecta Se emplea un elemento intermediario denominado buzón. El sistema operativo ofrece llamadas al sistema que permiten la creación y destrucción de buzones, por ejemplo, CreateMailbox y DestroyMailbox. Una vez creado el buzón, se emplea éste para realizar la comunicación entre procesos. Con los buzones se pueden emplear cuatro formas diferentes de comunicación: Buzón limitado : De un proceso a otro. Buzón de entrada: De varios a uno. Buzón de salida: De uno a varios. Buzón múltiple: Varios procesos entre sí con el mismo buzón. El receptor no conoce la identidad de quien envía el mensaje, a menos que el SO se haya encargado de ello. El problema surge cuando un proceso intruso y éste lee los mensajes de los buzones.
  • 7. Formas de transmisión Distinguimos tres formas de transmisión: Transmisión por copia, transmisión por referencia y transmisión por copia en caso de escritura. Transmisión por copia Si se emplea denominación directa, al invocar el receptor la llamada recv, el mensaje se copia del espacio de memoria del emisor al espacio de receptor. Esta forma de implementar la transmisión tiene un coste de orden lineal <math>O(n)</math> . Si se emplea denominación indirecta, al invocar send el emisor, el mensaje se copia del espacio de emisor al espacio del buzón, que se encuentra en el espacio de memoria del sistema operativo. Una vez que el receptor invoca receive, se copia el mensaje al espacio de memoria que el receptor ha habilitado para almacenar el mensaje.
  • 8. Transmisión por referencia Es una mejora frente al mecanismo de transmisión por copia. Básicamente, en lugar de copiar el mensaje, lo que supone un coste de <math>O(n)</math>, se le devuelve al receptor una dirección de memoria en la que se encuentra el mensaje. Si se emplea junto a la denominación directa, el sistema operativo le devuelve al receptor un puntero a la dirección en la que se encuentra el mensaje. Si el mensaje está en el espacio del emisor, son necesarios mecanismos explícitos de compartición de memoria entre procesos, ya que dos procesos cualquiera no comparten memoria. Si se emplea junto a la denominación indirecta, el emisor crea un mensaje en el espacio del sistema operativo y se le ofrece un puntero al receptor
  • 9. Transmisión por copia en caso de escritura (COW) Este método permite que los procesos emisor y receptor tengan acceso a la zona de memoria del mensaje de forma controlada. La zona puede pertenecer a uno de los procesos, o al SO, y se accede a ella a través de una ventana en el espacio de direcciones que inicialmente sólo permite consultar la información. Cuando uno de los procesos intenta modificar el contenido del mensaje, se detecta esta escritura gracias al mecanismo de protección de la memoria. Entonces, el SO hace una copia para uno de ellos, actualiza las referencias, y deja que ambos procesos continúen. Se mantiene un único espacio mientras sea posible.
  • 10. Formas de comunicación Comportamiento del emisor, send() Síncrona: el proceso emisor que realiza el send() queda bloqueado hasta que el receptor llama a recv() y el proceso bloqueado pasa a estado preparado. Asíncrona: suponemos una estructura de datos con capacidad de almacenamiento limitada, dependiente del proceso destinatario o en el buzón del SO. Al ser enviados, los mensajes irán encolándose para que el proceso receptor pueda gestionarlos cuando pueda. Comportamiento del receptor, recv() Bloqueante: una llamada a recv() sin mensajes a procesar pasa el proceso llamante a estado bloqueado. Un send() de otro proceso que añada un mensaje a la cola del proceso bloqueado hace que éste pase a estado preparado. No bloqueante: una llamada a recv() sin mensajes a procesar devuelve un mensaje de error, pero la ejecución del proceso llamante continúa. Entendemos por proceso llamante a aquel que hace uso de las llamadas send() y recv().
  • 11. Formato de los mensajes Fijo Los procesos acuerdan emplear un formato fijo para sus mensajes. Mixto Los procesos acuerdan emplear mensaje con partes cuyo formato es fijo, como por ejemplo una cabecera inicial, seguido de partes de tamaño variable. Mensajería a través de la red Unicidad del destinatario Fiabilidad en la transmisión Formato de los datos (http://www.cs.umd.edu/class/sum2003/cmsc311/Notes/Data/endian .html): Enviar un entero a través de la red puede ser un problema debido a la forma en el que se representan los datos en la memoria dependiente de la arquitectura.
  • 12. Comunicación entre procesos: Hay dos formas en que se puede comunicar los procesos, los cuales son: Por medio de un esquema de comunicación por memoria compartida (Buffer) Por medio de un mecanismo de comunicación entre procesos (IPC, Interprocess comunication). La IPC ofrece un mecanismo que permite a los procesos comunicarse y sincronizar sus acciones. La mejor forma de proveer la comunicación entre procesos es mediante un sistema de mensajes. La función de un sistema de mensaje es permitir a los procesos comunicarse entre sí sin tener que recurrir a variables compartidas. Message-queuing system API: put: añadir un mensaje a una cola. get: bloquear hasta que la cola no esté vacía, luego quitar el primer elemento. poll: verificar si hay mensaje, quitar el primero. Nunca se bloquea. notify: instalar en la cola un dispositivo que avisará cuando un nuevo mensaje se inserte en la cola.
  • 13. Comunicación orientada a mensajes Las comunicaciones RPC se basan en la idea que el receptor está operativo para poder invocar una cierta función, no podemos suponer que el receptor siempre estará operativo y esperando a comunicarse. La solución es definir la comunicación en término de paso de mensajes. Mensajes momentáneos vs. mensajes persistentes Momentáneos: no soportan el envío de mensajes persistentes. (1) Sockets, (2) Message-passing interface (MPI). Sockets Berkeley Sistema fuertemente acoplado a las redes TCP/IP
  • 14. Sockets API: socket: crea una nueva comunicación. bind: añade la dirección local al socket. listen: queda en espera de conexiones. accept: queda bloqueado hasta la llegada de un pedido de conexión. connect: pedido de establecimiento de conexión. send: enviar datos por la conexión. receive: recibir datos por la conexión. close: desvincula el socket la dirección local.
  • 15. Message-passing interface (MPI) Diseñado para aplicaciones paralelas crea un nivel de abstracción más alto que el provisto por sockets. Provee una interface con primitivas más avanzadas. Por el contrario cuenta con una gran cantidad de implementaciones (librería y protocolos) propietarias lo que genera la necesidad de una interface standard. MPI API: MPI_bsend: vincula la salida de mensajes con el buffer de salida local. MPI_send: envía un mensaje y espera hasta que es copiado al buffer. MPI_ssend: envía un mensae y espera hasta que el receptor inicie. MPI_sendrecv: envía un mensaje y espera respuesta. MPI_isend: pasa la referencia de un mensaje y continúa. MPI_issend: para la referencia de un mensaje y espera hasta que el receptor inicie. MPI_recv: recibe un mensaje; se bloquea en el caso de no haberlo. MPI_irecv: verifica si hay mensajes entrantes; no se bloquea.
  • 16. Persistentes: el mensaje se encola y se entrega cuando se pide. (1) Message-oriented middleware (MOM) Implementaciones Hay un número de APIs que pueden ser usadas por IPC. Un número de plataformas independientes de APIs incluidas las siguientes: Tuberías Anónimas y con nombre Common Object Request Broker Architecture (CORBA) Distributed Computing Environment (DCE) Message Bus (MBUS) (especificado en RFC 3259) ONC RPC Sockets XML XML-RPC or SOAP ZeroC's Internet Communications Engine (ICE)
  • 17. Gracias El principio de la sabiduría es el temor a Jehová Mensajería