Contenido Comunicación de procesos a través del paso de mensajes en sistemas distribuidos Nominación: características y estructuras, tipos de nombres Sincronización: relojes físicos, relojes lógicos, usos de la sincronización Comunicación Cliente Servidor, RPC, Multicast y tolerancia a fallos
Bibliografía Distributed Systems: Concepts and Design G. Coulouris, J. Dollimore, T. Kindberg Addison-Wesley, 2001 Distributed Operating Systems A. S. Tanenbaum Prentice-Hall, 1995 Distributed Operating Systems: Concepts & Practice D. L. Galli Prentice-Hall, 2000 Distributed Operating Systems & Algorithms R. Chow, T. Johnson Addison-Wesley, 1997
Traducciones al Español Sistemas Distribuidos: Conceptos y Diseño G. Coulouris, J. Dollimore, T. Kindberg Addison-Wesley, 2001 Sistemas Operativos Distribuidos A. S. Tanenbaum Prentice-Hall, 1996
Introducción Estudiaremos el nivel inferior de la Lógica de Mediación (middleware)
Discutiremos el uso de TCP-UDP/IP desde el punto de vista del programador.
Las entidades que se comunican son procesos sus papeles determinan cómo se comunican es decir, sus patrones de comunicación
2 patrones de comunicación principales: Comunicación cliente-servidor Comunicación en grupo Hay que diseñar protocolos de alto nivel que soporten dichos patrones
Objetivos Desarrollar bloques constructivos para la IPC: Cómo meter los datos en los mensajes Cómo pasar los mensajes: Qué semántica emplear Transparencia, sincronismo, fiabilidad Construir protocolos a la medida de los papeles de los procesos de los patrones de comunicación Comunicación cliente-servidor Protocolos solicitud-respuesta Tener en cuenta los papeles de los procesos Qué primitivas de comunicación usar
Objetivos Presentar la interfaz de sockets BSD para: TCP. Abstracción: cauce bidireccional (stream) Información encauzada sin fronteras de mensaje Uso de buffers: amortiguar diferencias de velocidad En SD: ftp, http, telnet, smtp Además: entornos productor-consumidor UDP. Abstracción: paso de mensajes(datagramas) Envío de un mensaje auto contenido desde un emisor hacia un receptor En SD: DNS, NFS, NTP En la API Java y en UNIX: destino = socket referencia indirecta a un puerto concreto del receptor
Comunicación La diferencia más importante entre un sistema distribuido y un sistema de un único procesador es la comunicación entre procesos [25, Tanenbaum]. En un sistema de un solo procesador la comunicación supone implícitamente la existencia de la memoria compartida: Ej.: problema de los productores y los consumidores, donde un proceso escribe en un buffer compartido y otro proceso lee de él. En un sistema distribuido no existe la memoria compartida y por ello toda la naturaleza de la comunicación entre procesos debe replantearse. Los procesos, para comunicarse, deben apegarse a reglas conocidas como protocolos. Para los sistemas distribuidos en un área amplia, estos protocolos toman frecuentemente la forma de varias capas y cada capa tiene sus propias metas y reglas. Los mensajes se intercambian de diversas formas, existiendo muchas opciones de diseño al respecto; una importante opción es la llamada a un procedimiento remoto. También es importante considerar las posibilidades de comunicación entre grupos de procesos, no solo entre dos procesos.
Protocolos basados en niveles Debido a la ausencia de memoria compartida, toda la comunicación en los sistemas distribuidos se basa en la transferencia de mensajes Cuando el proceso A quiere comunicarse con el proceso B: Construye un mensaje en su propio espacio de direcciones. Ejecuta una llamada al sistema para que el S. O. busque el mensaje y lo envíe a través de la red hacia B. Para evitar el caos, A y B deben coincidir en el significado de los bits que se envíen. Los puntos de acuerdo necesarios incluyen lo siguiente: ¿Cuántos voltios hay que utilizar para un bit 0 y cuántos para un bit 1?. ¿Cómo sabe el receptor cuál es el último bit del mensaje?. ¿Cómo puede detectar si un mensaje ha sido dañado o perdido, y qué debe hacer si lo descubre?. ¿Qué longitud tienen los números, cadenas y otros elementos de datos y cuál es la forma en que están representados?.
El modelo ISO/OSI La ISO (Organización Internacional de Estándares) desarrolló un modelo de referencia Identifica en forma clara los distintos niveles. Estandariza los nombres de los niveles. Señala cuál nivel debe realizar cuál trabajo. Este modelo se denomina modelo de referencia para interconexión de sistemas abiertos (ISO OSI o modelo OSI) [26, Tanenbaum]. El modelo OSI está diseñado para permitir la comunicación de los sistemas abiertos: Son aquellos preparados para comunicarse con cualquier otro sistema abierto mediante reglas estándar: Establecen el formato, contenido y significado de los mensajes recibidos y enviados. Constituyen los protocolos, que son acuerdos en la forma en que debe desarrollarse la comunicación
Página siguiente |