Sistemas Concurrentes: Paso de mensajes

Slides:



Advertisements
Presentaciones similares
Construcción de Sistemas Distribuidos “Transacciones Distribuidas”
Advertisements

Tabla de Contenido Concurrencia.
Sistemas Peer-To-Peer La plataforma JXTA
Control del Enlace de Datos
Telecomunicaciones Calificación Final. Primer parcial 30%
I.T.E.S.R.C. Romina Tamez Andrea Martínez Ma. De Lourdes Solís
Base de Datos Distribuidas FUNDAMENTOS DE BASES DE DATOS DISTRIBUIDAS
Carlos Rojas Kramer Universidad Cristóbal Colón
Servicios Web.
Unidad 7 Capa de SESION Universidad Nacional de Jujuy – Cátedra de Comunicaciones – Arquitectura de Redes.
RMI Remote Method Invocation
Conceptos de Concurrencia
TIPOS DE SERVIDORES 4/2/2017 3:29 PM
HERRAMIENTAS INFORMATICAS
Sistemas Operativos Distribuidos Plataforma Cliente/Servidor
PROCESAMIENTO PARALELO.  Organización lógica ◦ Visión que tiene el programados  Capacidad de expresar tareas paralelas (Estructura de control)  Método.
HILOS Y COMUNICACIÓN ENTRE PROCESOS
Conceptos generales: Concurrencia: Existencia simultánea de varios procesos en ejecución. IMPORTANTE: EXISTENCIA SIMULTÁNEA NO IMPLICA EJECUCIÓN SIMULTÁNEA.
Algoritmos Distribuidos Semana 1. Parte 2 Comunicación por Pase de Mensajes Claudia León Universidad Central de Venezuela Facultad de Ciencias Escuela.
PROGRAMACIÓN PARALELA Tema 4: Metodología de la programación
UNIDAD 3 Conceptos de Sistemas Operativos.
Unidad III Administración de procesos
Ing. Karen Torrealba de Oblitas
 Sincronismo. En toda transmisión debe existir un acuerdo entre el receptor y el emisor, y pueden llegar a él de dos formas: Síncrona, es decir, utilizando.
Sistemas Concurrentes: programación concurrente
Sistemas en tiempo real (STR)
Correo electrónico Internet
Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),
Conexión entre dos computadoras.  Datos: son hechos que describen sucesos y entidades. No tienen ninguna información. Puede significar un numero, una.
OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA ING. MARISCAL.
Sistemas Operativos II MC. Daniel Fajardo Delgado INSTITUTO TECNOLÓGICO DE CD. GUZMÁN 24 de Abril de 2004.
(C) Universidad de Las Palmas de Gran Canaria
Introducción a los Sistemas Operativos
Un sistema de gestión de bases de datos: Es un conjunto de programas que permite a los usuarios crear y mantener una base de datos. Por tanto, el SGBD.
Servidores Conceptos Generales.
Sistemas Concurrentes: Conceptos fundamentales
Programación secuencial vs programación concurrente
Sistemas Concurrentes I.T. Informática de Sistemas Curso
TEMA 10. SISTEMAS OPERATIVOS DISTRIBUIDOS
RPC Llamada Remota de Procedimientos Francisco José Cáceres Salazar Ingeniería Ejecucion Informatica Redes I.
1 Capítulo 21: Interacción Cliente Servidor ICD 327: Redes de Computadores Agustín J. González.
Telecomunicaciones y Trabajo Distribuido. Sistema Distribuido Recursos Servidor Red Servidor Nodo ANodo C Nodo B.
Introducción a los Sistemas Operativos
Integrantes: Ma Carmen Zaragoza Santiago Leticia González Hernández Abraham Obispo Antonio Alexis González Ramírez Eduardo Hernández Tolentino.
- 1 - Sistema Embebidos: Propiedades de los Lenguajes y SDL Agustín J. González 1s06 Se ha tomado como base el material generado por Peter Marwedel de.
Introducción a los SOs.
Tema 8: Introducción a los SOs. Tema 8: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.), Introducción.
CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO
Sistemas Distribuidos
Tema 5: Multiprocesadores
- 1 - Sistema Embebidos: Propiedades de los Lenguajes y SDL Agustín J. González 1s07 Se ha tomado como base el material generado por Peter Marwedel de.
Informática III 2009 Ing. Estela D'Agostino 1 Programación secuencial vs programación concurrente Pascal, C, Fortran, Cobol Secuenciales único hilo de.
“condición que necesita el usuario para resolver un problema o conseguir un objetivo determinado”. Los requisitos de un sistema son los aspectos que el.
DIEGO ALBERTO RINCÓN YÁÑEZ JULIAN MAURICIO ANGEL ÁLVARO SEBASTIÁN MIRANDA FORERO.
(C) Universidad de Las Palmas de Gran Canaria 1 EL ADMINISTRADOR Definición de un administrador Persona responsable del mantenimiento y funcionamiento.
“Redes”.
UNIDAD 3 C ONCEPTOS DE S ISTEMAS O PERATIVOS. El ordenador es un sistema programable formado por un conjunto de elementos hardware que necesitan instrucciones.
Modelo OSI Surgimiento del Modelo OSI ¿Que es el Modelo OSI?
LABORATORIO DE ESTRUCTURA DE COMPUTADORES II Desarrollo de aplicación Cliente-Servidor.
Unidad 2 – Gestión de Procesos
Tema 6 – Servicio de Correo Electrónico
LIA. SUEI CHONG SOL, MCE..  1.- SOFTWARE BÁSICO O DE SISTEMA. Conjunto de programas imprescindibles para el funcionamiento del sistema.  2.- SOTWARE.
MODOS DE TRANSMISION Pucallpa 15 de Enero del 2009.
Cliente-Servidor La arquitectura cliente-servidor permite al usuario en una máquina, llamada el cliente, requerir algún tipo de servicio de una máquina.
Elementos y tipos de sistemas operativos
SISTEMAS OPERATIVOS Son un conjunto de programas destinados a permitir la comunicación entre el usuario y en computador y gestionar sus recursos.
Arquitectura OSI  ¿Qué es OSI?  Una sigla: Open Systems Interconnection  Conceptualmente: arquitectura general requerida para establecer comunicación.
Gestión de Procesos Hilos.
Sistemas Distribuidos Conceptos Básicos Propiedades MSI. Nancy A. Olivares Ruiz.
Protocolos de Transporte y Aplicación Javier Rodríguez Granados.
Transcripción de la presentación:

Sistemas Concurrentes: Paso de mensajes I.T. Informática de Sistemas Curso 2002-2003

Bibliografía Principles of Concurrent and Distributed Programming M. Ben-Ari. Prentice Hall, 1990 Capítulo 7 Sistemas Operativos A. Silberschatz, P. Galvin. Addison Wesley Longman, 1999 Capítulo 4.6 Concurrent systems Jean Bacon, Addison-Wesley, 1998 Capítulos 13-15

Alternativas a memoria compartida Los semáforos, monitores, regiones críticas, etc. son todas herramientas que se basan en la existencia de memoria compartida. El modelo de memoria compartida es difícil o imposible de implementar en ciertos casos: en sistemas con protección de memoria, como sistemas multiusuario, en los que los procesos corren en espacios de direcciones diferentes en sistemas donde los procesos corren en ordenadores diferentes (sistemas distribuidos) en sistemas multiprocesador en los que es deseable mantener flexibilidad a la hora de decidir dónde ubicar los procesos en sistemas multiprocesador en los que se quiere implementar balance de carga (reasignación de procesos en tiempo de ejecución)

Alternativas a memoria compartida Posibilidades: Usar ficheros compartidos: puede entrañar grandes retrasos por los accesos a disco. La mayoría de los sistemas operativos lo permiten Usar un sistema de compartición “por encima” del sistema operativo. P.ej. un proceso con derechos de superusuario que controla comunicaciones entre otros procesos pipes Unix: rápido pero muy limitado. Comunicación unidireccional

Sistemas de paso de mensajes Como alternativa al modelo de memoria compartida, se define el modelo de paso de mensajes: los procesos no comparten memoria (variables, objetos, etc.) la comunicación se hace mediante operaciones explícitas de envío y recepción

Modelo general mensaje Emisor Receptor CANAL enviar recibir

Ventajas del paso de mensajes Válido para cualquier arquitectura de computadores sistemas distribuidos arquitecturas paralelas sin memoria compartida también en sistemas de memoria compartida No existe el problema universal del acceso en exclusión mutua a datos compartidos.

Memoria Compartida OR/XOR Paso de Mensajes Ambos esquemas de comunicación NO son mutuamente exclusivos Podrían utilizarse simultáneamente dentro de un mismo SO, o incluso dentro de un mismo proceso

Cuestiones básicas de la comunicación Sincronización entre emisor y receptor Comunicación síncrona/asíncrona Identificación en el proceso de comunicación Comunicación directa/indirecta Comunicación simétrica/asimétrica Características del canal Capacidad, uni/bidireccional, etc...

Comunicación síncrona o asíncrona Com. síncrona. El intercambio de un mensaje es una operación atómica que exige la participación simultánea del emisor y el receptor (rendezvous). Com. asíncrona. El emisor puede enviar un mensaje sin bloquearse; el receptor lo puede recoger más tarde.

Comunicación síncrona o asíncrona Símil: Comunicación síncrona  llamada telefónica Comunicación asíncrona  correo postal La comunicación síncrona es en principio más sencilla de implementar Podemos emular comunicación síncrona usando primitivas de comunicación asíncrona. P.ej. usando SEND y REPLY. Podemos emular comunicación asíncrona usando primitivas de comunicación síncrona. Símil: contestador automático

Repercusiones de la comunicación asíncrona El emisor puede enviar varios mensajes: NECESIDAD de disponer de búferes ¿Cuándo sabe el emisor que su mensaje ha llegado/se ha atendido? conveniencia de operaciones de “acuse de recibo” o de respuesta (send  receive  send_reply  receive_reply)

Llamadas bloqueantes / no bloqueantes Las operaciones de envío y recepción pueden estar definidas como bloqueantes o no bloqueantes Un envío/recepción con bloqueo es un ejemplo de comunicación síncrona Un envío/recepción sin bloqueo es un ejemplo de comunicación asíncrona

Identificación Comunicación directa Cada proceso que desea comunicarse debe nombrar explícitamente el destinatario o el remitente de la comunicación enviar(P, mensaje) Enviar un mensaje al proceso P recibir(Q, mensaje) Recibir un mensaje del proceso Q

Identificación Comunicación indirecta Con la comunicación indirecta, los mensajes se envían a, y se reciben de, buzones (también llamados puertos) enviar(A, mensaje) Enviar un mensaje al buzón A recibir(A, mensaje) Recibir un mensaje del buzón A

Comunicación indirecta P1, P2, P3 comparten un buzón A. P1 envía un mensaje a A, y P2 y P3 ejecutan cada uno un recibir de A. ¿Qué proceso recibirá el mensaje que envió P1? Un buzón puede ser propiedad de un proceso o del sistema

Identificación Comunicación simétrica Comunicación asimétrica Los procesos tanto receptor como emisor necesitan nombrar al otro para comunicarse Comunicación asimétrica Sólo el emisor nombra al destinatario. Particularmente útil para cliente/servidor Otra forma más flexible: bulletin boards (tablones) => nadie nombra a nadie

Ejemplos Comunicación directa simétrica Enviar(P,mensaje)/Recibir(Q,mensaje) Comunicación directa asimétrica Enviar(P,mensaje)/Recibir(mensaje) Enviar(P,mensaje)/Recibir(id,mensaje)

Características del canal (1) Punto a punto, multipunto Unidireccional, bidireccional Capacidad del canal cero limitada infinita (teórico)

Características del canal(2) Mensajes: Tamaño fijo o variable Canales con tipo o sin tipo Paso por copia o por referencia (¡cuidado!)

Características del canal de comunicación: ejemplos Comunicación directa Se establece automáticamente Un canal se asocia a exactamente dos procesos Entre cada par de procesos sólo existe un canal El enlace puede ser unidireccional, pero suele ser bidireccional

Características del canal de comunicación: ejemplos Comunicación indirecta Se establece un canal entre un par de procesos sólo si tienen un buzón compartido Un canal puede estar asociado a más de dos procesos Entre cada par de procesos en comunicación puede haber varios enlaces distintos, cada uno de los cuales corresponderá a un buzón Los enlaces pueden ser unidireccionales o bidireccionales

Elección de mensajes Supongamos un proceso servidor que es capaz de recibir peticiones de varios canales. Queremos que el proceso quede bloqueado hasta que alguna petición llegue. ¿cómo lo resolvemos? solución: espera selectiva (select), espera no determinista (ALT de occam), “select” de UNIX, etc.

Condiciones de error 1 máquina => los mensajes se implementan (generalmente) en memoria compartida Fallo => falla todo el sistema Entornos distribuidos => procesos residen en diferentes máquinas Los mensajes se transfieren por líneas de comunicación La probabilidad de que ocurra un error durante la comunicación y el procesamiento es mucho mayor que en un entorno de una sola máquina El fallo de un enlace no causa necesariamente el fallo de todo el sistema

Condiciones de error Cuando ocurre un fallo en un sistema, sea centralizado o distribuido, el sistema debe intentar recuperarse del error Algunas situaciones de error: El emisor o el receptor podría terminar antes de que se procese un mensaje P espera un mensaje de Q (proceso terminado) P envía un mensaje a Q (proceso terminado)

Condiciones de error Mensajes perdidos Fallo hardware o de la línea de comunicación Tres métodos para enfrentar este suceso en función de quien asume la responsabilidad de detectar el fallo: SO Emisor SO/Emisor

Condiciones de error No siempre es necesario detectar los mensajes perdidos => protocolos de red que garantizan la confiabilidad ¿Cómo detectar la pérdida de mensajes? El método de detección más común consiste en emplear tiempos límite o plazos

Condiciones de error Mensajes alterados es común el uso de códigos de verificación de errores (paridad, etc...)

Invocación remota: el modelo de Ada Características del Rendezvous de Ada Esquema de comunicación síncrono (rendezvous), sin búferes Esquema de comunicación asimétrico (el emisor necesita conocer la identidad del destino pero no ocurre lo mismo con receptor) Durante la cita, el flujo de datos es bidireccional

Llamada a Procedimiento Remoto (RPC) Motivación: Aprovechar el paralelismo potencial existente en un sistema distribuido ¿ Cómo ? Posibilitando que un proceso llame a un procedimiento que se ejecutará en otro procesador

Invocación remota vs RPC’s La invocación remota es una construcción de los lenguajes concurrentes La RPC es una técnica para permitir llamadas a procedimientos en entornos distribuidos La palabra “remoto” tiene significados diferentes en ambos casos: Invocación remota: “otro proceso” RPC: “otro procesador”

Invocación remota vs RPC’s El punto de entrada llamado durante una invocación remota sólo se ejecutará cuando su propietario lo permita El procedimiento llamado durante una RPC se puede ejecutar de inmediato El punto de entrada llamado durante una invocación remota es ejecutado por el proceso propietario de dicho punto de entrada El procedimiento llamado durante una RPC se ejecuta en nombre del proceso llamador por un proceso subordinado creado por el entorno de ejecución

Invocación remota vs RPC’s El proceso llamador y el punto de entrada llamado durante una invocación remota se pueden ejecutar en el mismo procesador. Esto no tiene sentido en el caso de una RPC

Dificultades implementación RPC’s Paso de parámetros Valor Referencia: ¡más complejo! Los formatos internos de los datos pueden ser muy diferentes en redes de máquinas heterogéneas Requerirían conversaciones complejas y un considerable trabajo adicional Fallos en la transmisión