SlideShare uma empresa Scribd logo
1 de 17
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

Mais conteúdo relacionado

Mais procurados

Administracion de redes y seguridad con Software Libre
Administracion de redes y seguridad con Software LibreAdministracion de redes y seguridad con Software Libre
Administracion de redes y seguridad con Software Libremiltonvf
 
Arquitecturas de protocolos
Arquitecturas de protocolosArquitecturas de protocolos
Arquitecturas de protocolosmplr1590
 
FUNDAMENTOS DE SISTEMAS
FUNDAMENTOS DE SISTEMASFUNDAMENTOS DE SISTEMAS
FUNDAMENTOS DE SISTEMASCinthia López
 
Sistema de Inscricpcion Para Colegios
Sistema de Inscricpcion Para ColegiosSistema de Inscricpcion Para Colegios
Sistema de Inscricpcion Para Colegiosluis castro
 
Clasificación de las metodologías de desarrollo de software
Clasificación de las metodologías de desarrollo de softwareClasificación de las metodologías de desarrollo de software
Clasificación de las metodologías de desarrollo de softwareElvisAR
 
Ingeniería de requisitos
Ingeniería de requisitosIngeniería de requisitos
Ingeniería de requisitosZuleima
 
Taxonomia de las herramientas case
Taxonomia de las herramientas caseTaxonomia de las herramientas case
Taxonomia de las herramientas caseisidro luna beltran
 
Proyecto de software
Proyecto de softwareProyecto de software
Proyecto de softwaremonik1002
 
Empresas que utilizan itil en mexico
Empresas que utilizan itil en mexicoEmpresas que utilizan itil en mexico
Empresas que utilizan itil en mexicoRazmli Rdz A
 
Estados y transiciones de los procesos
Estados y transiciones de los procesosEstados y transiciones de los procesos
Estados y transiciones de los procesosAlberto Ch
 
Dispositvos de entrada y salida
Dispositvos de entrada y salidaDispositvos de entrada y salida
Dispositvos de entrada y salidaitzayana bacilio
 
Documentación de sistemas
Documentación de sistemasDocumentación de sistemas
Documentación de sistemasGladys Rodriguez
 
DocumentacióN De Un Sistema De InformacióN
DocumentacióN De Un Sistema De InformacióNDocumentacióN De Un Sistema De InformacióN
DocumentacióN De Un Sistema De InformacióNFernanda Garza
 
CUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IP
CUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IPCUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IP
CUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IPdisenarUniminuto
 

Mais procurados (20)

Tema 1 Ingeniería de Requisitos
Tema 1 Ingeniería de RequisitosTema 1 Ingeniería de Requisitos
Tema 1 Ingeniería de Requisitos
 
Administracion de redes y seguridad con Software Libre
Administracion de redes y seguridad con Software LibreAdministracion de redes y seguridad con Software Libre
Administracion de redes y seguridad con Software Libre
 
Arquitecturas de protocolos
Arquitecturas de protocolosArquitecturas de protocolos
Arquitecturas de protocolos
 
Sistema Operativo Distribuido
Sistema Operativo DistribuidoSistema Operativo Distribuido
Sistema Operativo Distribuido
 
FUNDAMENTOS DE SISTEMAS
FUNDAMENTOS DE SISTEMASFUNDAMENTOS DE SISTEMAS
FUNDAMENTOS DE SISTEMAS
 
Sistema de Inscricpcion Para Colegios
Sistema de Inscricpcion Para ColegiosSistema de Inscricpcion Para Colegios
Sistema de Inscricpcion Para Colegios
 
Clasificación de las metodologías de desarrollo de software
Clasificación de las metodologías de desarrollo de softwareClasificación de las metodologías de desarrollo de software
Clasificación de las metodologías de desarrollo de software
 
Examen final de redes
Examen final de redesExamen final de redes
Examen final de redes
 
Ingeniería de requisitos
Ingeniería de requisitosIngeniería de requisitos
Ingeniería de requisitos
 
Casos de uso
Casos de usoCasos de uso
Casos de uso
 
Taxonomia de las herramientas case
Taxonomia de las herramientas caseTaxonomia de las herramientas case
Taxonomia de las herramientas case
 
Proyecto de software
Proyecto de softwareProyecto de software
Proyecto de software
 
Empresas que utilizan itil en mexico
Empresas que utilizan itil en mexicoEmpresas que utilizan itil en mexico
Empresas que utilizan itil en mexico
 
Estados y transiciones de los procesos
Estados y transiciones de los procesosEstados y transiciones de los procesos
Estados y transiciones de los procesos
 
Dispositvos de entrada y salida
Dispositvos de entrada y salidaDispositvos de entrada y salida
Dispositvos de entrada y salida
 
Documentación de sistemas
Documentación de sistemasDocumentación de sistemas
Documentación de sistemas
 
DocumentacióN De Un Sistema De InformacióN
DocumentacióN De Un Sistema De InformacióNDocumentacióN De Un Sistema De InformacióN
DocumentacióN De Un Sistema De InformacióN
 
CUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IP
CUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IPCUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IP
CUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IP
 
Medios de transmisión
Medios de transmisión Medios de transmisión
Medios de transmisión
 
Introduccion al análisis de sistemas de información
Introduccion al análisis de sistemas de informaciónIntroduccion al análisis de sistemas de información
Introduccion al análisis de sistemas de información
 

Destaque

1. la navegación por internet.
1. la navegación por internet.1. la navegación por internet.
1. la navegación por internet.mavd77
 
Desarrollo web final
Desarrollo web finalDesarrollo web final
Desarrollo web finalproo
 
Omar trejos buriticá la esencia de la logica de programación
Omar trejos buriticá   la esencia de la logica de programaciónOmar trejos buriticá   la esencia de la logica de programación
Omar trejos buriticá la esencia de la logica de programaciónCamilo Salas Araujo
 
Elementos de la ventana internet explorer
Elementos de la ventana internet explorer Elementos de la ventana internet explorer
Elementos de la ventana internet explorer Eben_santos12
 
Exp. Ingenieria Web
Exp. Ingenieria WebExp. Ingenieria Web
Exp. Ingenieria WebDiego Celi
 
MODELO DE DISEÑO WEB
MODELO DE DISEÑO WEBMODELO DE DISEÑO WEB
MODELO DE DISEÑO WEBwilmeraman
 
Aplicaciones Middleware
Aplicaciones MiddlewareAplicaciones Middleware
Aplicaciones Middlewareparedes03
 
Elementos de la pantalla de internet explorer
Elementos de la pantalla de internet explorerElementos de la pantalla de internet explorer
Elementos de la pantalla de internet explorerjrllp
 
Sistemas Distribuidos
Sistemas DistribuidosSistemas Distribuidos
Sistemas DistribuidosLeopoldo Capa
 
Ingenieria web
Ingenieria webIngenieria web
Ingenieria webMirsha01
 
Ejercicios en prolog
Ejercicios en prologEjercicios en prolog
Ejercicios en prologJeffoG92
 
Practicas prolog
Practicas prologPracticas prolog
Practicas prologmaxsp5566
 
BD. control de concurrencia
BD. control de concurrenciaBD. control de concurrencia
BD. control de concurrencialiras loca
 
Caracteristicas de los Sistemas Distribuidos
Caracteristicas de los Sistemas DistribuidosCaracteristicas de los Sistemas Distribuidos
Caracteristicas de los Sistemas DistribuidosJorge Guerra
 
Comunidad primitiva.
Comunidad primitiva.Comunidad primitiva.
Comunidad primitiva.Karo Simental
 

Destaque (20)

1. la navegación por internet.
1. la navegación por internet.1. la navegación por internet.
1. la navegación por internet.
 
Desarrollo web final
Desarrollo web finalDesarrollo web final
Desarrollo web final
 
Informática I
Informática IInformática I
Informática I
 
Omar trejos buriticá la esencia de la logica de programación
Omar trejos buriticá   la esencia de la logica de programaciónOmar trejos buriticá   la esencia de la logica de programación
Omar trejos buriticá la esencia de la logica de programación
 
Elementos de la ventana internet explorer
Elementos de la ventana internet explorer Elementos de la ventana internet explorer
Elementos de la ventana internet explorer
 
Exp. Ingenieria Web
Exp. Ingenieria WebExp. Ingenieria Web
Exp. Ingenieria Web
 
Logica de predicados
Logica de predicadosLogica de predicados
Logica de predicados
 
MODELO DE DISEÑO WEB
MODELO DE DISEÑO WEBMODELO DE DISEÑO WEB
MODELO DE DISEÑO WEB
 
Aplicaciones Middleware
Aplicaciones MiddlewareAplicaciones Middleware
Aplicaciones Middleware
 
Elementos de la pantalla de internet explorer
Elementos de la pantalla de internet explorerElementos de la pantalla de internet explorer
Elementos de la pantalla de internet explorer
 
Sistemas Distribuidos
Sistemas DistribuidosSistemas Distribuidos
Sistemas Distribuidos
 
Ingenieria web
Ingenieria webIngenieria web
Ingenieria web
 
Ejercicios en prolog
Ejercicios en prologEjercicios en prolog
Ejercicios en prolog
 
Middleware
MiddlewareMiddleware
Middleware
 
Biodiversidad
BiodiversidadBiodiversidad
Biodiversidad
 
Practicas prolog
Practicas prologPracticas prolog
Practicas prolog
 
BD. control de concurrencia
BD. control de concurrenciaBD. control de concurrencia
BD. control de concurrencia
 
Caracteristicas de los Sistemas Distribuidos
Caracteristicas de los Sistemas DistribuidosCaracteristicas de los Sistemas Distribuidos
Caracteristicas de los Sistemas Distribuidos
 
Funciones de navegadores web y buscadores web
Funciones de navegadores web y buscadores webFunciones de navegadores web y buscadores web
Funciones de navegadores web y buscadores web
 
Comunidad primitiva.
Comunidad primitiva.Comunidad primitiva.
Comunidad primitiva.
 

Semelhante a Mensajería (Informática)

SISTEMAS DISTRIBUIDOS COMUNICACION UNIDAD 2.pptx
SISTEMAS DISTRIBUIDOS COMUNICACION UNIDAD 2.pptxSISTEMAS DISTRIBUIDOS COMUNICACION UNIDAD 2.pptx
SISTEMAS DISTRIBUIDOS COMUNICACION UNIDAD 2.pptxAdolfoEuan2
 
Comunicación en Grupo
Comunicación en GrupoComunicación en Grupo
Comunicación en Grupomallita
 
Servicio de un sistema operativo.pptx
Servicio de un sistema operativo.pptxServicio de un sistema operativo.pptx
Servicio de un sistema operativo.pptxSergioMenndez6
 
Capitulo 2 comunicacion
Capitulo 2 comunicacionCapitulo 2 comunicacion
Capitulo 2 comunicacionErick Jamett
 
Sistemas Distribuidos
Sistemas  DistribuidosSistemas  Distribuidos
Sistemas Distribuidossantiago
 
Paso mensajes
Paso mensajesPaso mensajes
Paso mensajesadiaz7703
 
Gprocesos
GprocesosGprocesos
Gprocesosdaniela
 
Informatica basica 5. internet
Informatica basica 5. internetInformatica basica 5. internet
Informatica basica 5. internetEdward Ropero
 
Servidor de-correo-en-linux
Servidor de-correo-en-linuxServidor de-correo-en-linux
Servidor de-correo-en-linuxYoiis55
 
Patrones de Integración Empresariales
Patrones de Integración EmpresarialesPatrones de Integración Empresariales
Patrones de Integración EmpresarialesAbimael Desales López
 
Tolerancia A Fallos
Tolerancia A FallosTolerancia A Fallos
Tolerancia A Fallosdabiddo
 
Tema iv comunicación entre procesos
Tema iv comunicación entre procesosTema iv comunicación entre procesos
Tema iv comunicación entre procesosPablo Hurtado
 
Software de redes
Software de redesSoftware de redes
Software de redesdulcezitha
 
Software de redes
Software de redesSoftware de redes
Software de redesdulcezitha
 

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

Exposicion
ExposicionExposicion
Exposicion
 
SISTEMAS DISTRIBUIDOS COMUNICACION UNIDAD 2.pptx
SISTEMAS DISTRIBUIDOS COMUNICACION UNIDAD 2.pptxSISTEMAS DISTRIBUIDOS COMUNICACION UNIDAD 2.pptx
SISTEMAS DISTRIBUIDOS COMUNICACION UNIDAD 2.pptx
 
Comunicación en Grupo
Comunicación en GrupoComunicación en Grupo
Comunicación en Grupo
 
Modelo paso de mensajes
Modelo paso de mensajesModelo paso de mensajes
Modelo paso de mensajes
 
Servicio de un sistema operativo.pptx
Servicio de un sistema operativo.pptxServicio de un sistema operativo.pptx
Servicio de un sistema operativo.pptx
 
Capitulo 2 comunicacion
Capitulo 2 comunicacionCapitulo 2 comunicacion
Capitulo 2 comunicacion
 
Sistemas Distribuidos
Sistemas  DistribuidosSistemas  Distribuidos
Sistemas Distribuidos
 
Paso mensajes
Paso mensajesPaso mensajes
Paso mensajes
 
Gprocesos
GprocesosGprocesos
Gprocesos
 
Informatica basica 5. internet
Informatica basica 5. internetInformatica basica 5. internet
Informatica basica 5. internet
 
Servidor de-correo-en-linux
Servidor de-correo-en-linuxServidor de-correo-en-linux
Servidor de-correo-en-linux
 
s.o.
s.o.s.o.
s.o.
 
Patrones de Integración Empresariales
Patrones de Integración EmpresarialesPatrones de Integración Empresariales
Patrones de Integración Empresariales
 
Tolerancia A Fallos
Tolerancia A FallosTolerancia A Fallos
Tolerancia A Fallos
 
Tema iv comunicación entre procesos
Tema iv comunicación entre procesosTema iv comunicación entre procesos
Tema iv comunicación entre procesos
 
Capitulo2
Capitulo2Capitulo2
Capitulo2
 
Capitulo2
Capitulo2Capitulo2
Capitulo2
 
Software de redes
Software de redesSoftware de redes
Software de redes
 
Software de redes
Software de redesSoftware de redes
Software de redes
 
Servidor de correo
Servidor de correo Servidor de correo
Servidor de correo
 

Último

Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)JuanStevenTrujilloCh
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfKarinaCambero3
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptxHugoGutierrez99
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdfBetianaJuarez1
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxhasbleidit
 
PROYECCIÓN DE VISTAS planos de vistas y mas
PROYECCIÓN DE VISTAS planos de vistas y masPROYECCIÓN DE VISTAS planos de vistas y mas
PROYECCIÓN DE VISTAS planos de vistas y maslida630411
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerenciacubillannoly
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfcristianrb0324
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersIván López Martín
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDAVIDROBERTOGALLEGOS
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armadob7fwtwtfxf
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024u20211198540
 
Clasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxClasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxCarolina Bujaico
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosAlbanyMartinez7
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointValerioIvanDePazLoja
 
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaYeimys Ch
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1ivanapaterninar
 

Último (20)

Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdf
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
 
PROYECCIÓN DE VISTAS planos de vistas y mas
PROYECCIÓN DE VISTAS planos de vistas y masPROYECCIÓN DE VISTAS planos de vistas y mas
PROYECCIÓN DE VISTAS planos de vistas y mas
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerencia
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdf
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 Testcontainers
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptx
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armado
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
 
Clasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxClasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptx
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos Juridicos
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power Point
 
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 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