Tema 1 Introducción a los Sistemas Distribuidos

Documentos relacionados
Tema 1: Introducción a los Sistemas Distribuidos. Sistemas Distribuidos Marcos López Sanz [Curso ]

Diseño de Sistemas Distribuidos Máster en Ciencia y Tecnología Informática Curso Presentación e introducción

Diseño de Sistemas Operativos. Capítulo 10 Introducción a los Sistemas Operativos Distribuidos

Introducción a los sistemas distribuidos. Jorge Iván Meza Martínez

TEMA 9. SISTEMAS OPERATIVOS DISTRIBUIDOS

TEMA 10 INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS DISTRIBUIDOS. Introducción Hardware Software Aspectos de diseño

PROCESAMIENTO DISTRIBUIDO

1. Introducción 2. S.O. de Red. NFS 3. S.O. Distribuidos 4. Características de Diseño. Tema5: Sistemas Operativos Distribuidos

Tema 1 Introducción a los Sistemas Distribuidos

Sistemas Operativos Distribuidos

Sistemas Operativos Distribuidos

Sistemas Operativos Distribuidos. Sistemas Operativos Una visión aplicada

Conceptos generales de sistemas distribuidos

TEMA 1. Introducción a las arquitecturas distribuidas

Sistemas Distribuidos

Sistemas Distribuidos. Prog. Distribuida bajo Internet

Facultad de Ingeniería Industrial y de Sistemas v1.0 MA781U PROCESOS DISTRIBUIDOS

Sistemas Distribuidos Introducción. Rodrigo Santamaría

Servicios Telemáticos Avanzados 4º Grado en Ingeniería en Tecnologías de Telecomunicación Especialidad de Telemática

Tipos de Diseño. Ing. Elizabeth Guerrero V.

Sistemas Distribuidos Introducción. Rodrigo Santamaría

Nivel de Aplicación: Principios Tema 2.- Nivel de aplicación en Internet

Introducción a los Sistemas Multiprocesadores

Introduccion a Sistemas Operativos. Ej: Linux

Introducción a la computación distribuida

Ingeniería en Computación

Arquitectura de Computadoras. Clase 9 Procesamiento paralelo

Introducción al Computo Distribuido

GUÍA ESTUDIO TEMA 11. PROGRAMACIÓN de REDES DISTRIBUIDAS

Computación 1. Roles en la interconexión

Sistemas Distribuidos. Soporte de Sistemas Operativos

Redes de Altas Prestaciones

Fecha de entrega: Miércoles 4 de Septiembre. Campus: Villahermosa. Carrera : Ingeniería en Sistemas Compuacionales. Nombre del maestro: Carlos Castro

Sistemas de Información

PROGRAMACION DISTRIBUIDA

Programación Concurrente y Paralela. Unidad 1 Introducción

Capítulo 2: Capa Aplicación - I

CAPITULO 12: SISTEMAS DE FICHEROS DISTRIBUIDOS Un sistema bien diseñado permite el acceso a un servidor de ficheros (remoto) con eficiencia y

6.1 Base De Datos Centralizada

Computación distribuida

MULTIPROCESADORES TIPOS DE PARALELISMO

LOGO GRUPO. Add your company slogan

CONCEPTO DE ARQUITECTURA CLIENTE / SERVIDOR.

Taxonomía de las arquitecturas

Con estas consideraciones, Flynn clasifica los sistemas en cuatro categorías:

Ingeniería en computación Tipos de sistemas operativos

Modelos de computadores paralelos

Arquitectura de Computadoras para Ingeniería

Bases de Datos Paralelas. Carlos A. Olarte BDII

Sistemas Distribuidos

Capítulo 2: Capa Aplicación - I

INTRODUCCIÓN A LAS REDES DE ORDENADORES

Hoja de respuestas. Examen tipo A

APLICACIONES DE INTERNET: SOAP

En esta unidad vamos a hablar acerca de cómo los equipos utilizan las redes para trabajar juntos. Hay varios modelos ( que en algunos casos son

MULTIPROCESADORES MODELOS DE INTERCONEXIÓN

Sistemas Distribuidos.

PROCESOS E HILOS - Hilo

UNIVERSIDAD DE GUADALAJARA

6. Enumere tres ventajas de los ULT frente a los KLT.

ESCUELA DE INGENIERIA Informática Y Sistemas

INSTITUTO POLITÉCNICO NACIONAL SECRETARÍA ACADÉMICA DIRECCIÓN DE EDUCACIÓN SUPERIOR PROGRAMA SINTÉTICO

Universidad Carlos III de Madrid Dpto. de Ingeniería Telemática. Índice

Sistemas Distribuidos Módulo 1

1. Introducción 2. Historia 3. Características clave 4. Cuestiones de diseño

Memoria compartida simétrica

Introducción a Sistemas Peer to Peer

Computación de Altas Prestaciones Sistemas computacionales

Protocolos, Servicios e Interfaces

Teoría de las Comunicaciones

SISTEMAS OPERATIVOS - DEFINICIÓN:

Sistemas Operativos Distribuidos

REDES DE DATOS CAPITULO II

Arquitectura tecnológica de la empresa

CONCEPTOS BÁSICOS DE UNA RED.

Sistemas Distribuidos

ARQUITECTURAS PARA PROCESAMIENTO PARALELO

Protocolos, Servicios e Interfaces

Arquitectura de computadores I

2EMHWLYRV 5HIHUHQFLDV. Procesadores vectoriales

Introducción a los Sistemas Operativos y Redes. Clase 2: Topologías de Redes

Diseño de Redes LAN: dentro del campus. Emilio Hernández Carlos Figueira

PARADIGMA y LENGUAJES DE PROGRAMACIÓN

BASE DE DATOS DISTRIBUIDOS

Instrumentación n / Ing. Quirino Jimenez D.

Aplicaciones Web paraa Trabajo Colaborativo Diseño y prototipo de un software para la replicación de ficheros

Red de comunicación de datos

1.4.1 Inicio de la computadora por primera vez Hay problemas Causas, síntomas y soluciones a posibles averías...

REDES DE DATOS Modelo OSI. Angélica Flórez Abril, MSc.

TEMA 2: DEFINICIONES Y CONCEPTOS. Ing. Jonathan Quiroga Tinoco Conalep Tehuacán P.T.B. en SOMA

APLICACIONES TELEMÁTICAS

Tema 1: Arquitectura de Redes de Comunicaciones

Univ. de Concepción del Uruguay Facultad de Ciencias Agrarias Ingeniería Agrónoma

Redes de Computadores

Teleinformática y Redes Introducción. Mg. Gabriel H. Tolosa.

Clústeres y procesamiento en paralelo XE1GNZ J O R G E F BARBOSA J ACOBO F E B R E R O DE 20 17

07 y 08 Sistemas distribuidos y paralelos y tarea 02

Arquitectura de protocolos en LANs

Transcripción:

Tema 1 Introducción a los Sistemas Distribuidos F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García Sistemas Distribuidos Grado en Ingeniería Informática Universidad Carlos III de Madrid

Contenido Evolución de la informática Concepto de sistema distribuido Ejemplos de aplicaciones distribuidas Ventajas e inconvenientes de los sistemas distribuidos Sistemas distribuidos vs. paralelos Principales desafíos de diseño Concepto de middleware Paradigmas de computación distribuida Plataformas hardware para sistemas distribuidos 2

Evolución de la Informática En los años 70: Mainframes centrales Sistemas de tiempo compartido Recursos centralizados Terminales simples Interfaces de usuario poco amigables Aparecen las primeras redes 3

Evolución de la Informática En los años 80: PCs y estaciones de trabajo Predominio de aplicaciones complejas ejecutadas localmente Interfaces amigables Redes de área local (LAN) Aparecen los primeros sistemas operativos distribuidos Mach, Sprite, Chorus,... 4

Evolución de la informática En los años 90: Despegue de las aplicaciones cliente/servidor Más descentralización Aplicaciones ejecutadas localmente y en red Enorme difusión de Internet gracias a la web Nuevas necesidades y aplicaciones basadas en web Comercio electrónico Multimedia Sistemas de control Aplicaciones médicas Supercomputación en Internet 5

Evolución de la informática En los años 2000: Nuevos paradigmas de computación distribuida Grid computing Peer-to-Peer Computación ubicua Dispositivos móviles Aplicaciones para Internet basadas en Web Tendencia: todas las aplicaciones en red Red Aplicaciones Puestos de trabajo 6

Evolución de la informática Infraestructura tradicional Clientes LAN Servidores 7

Evolución de la informática Infraestructura tradicional Consolidación de recursos Clientes LAN LAN Red de almacenamiento Servidores Almacenamiento Compartido 8

Evolución de la tecnología La ley de Bell (1972): aparecerá una nueva clase de computadoras (tecnología) cada 10 años log (people per computer) año La ley de Moore (1965): el número de transistores por chip se doblará cada 18-24 meses 9

Infraestructura tradicional Sistema Operativo 10

Máquinas Virtuales SO1 MV1 SO2 MV2 11

Sistema Distribuido Sistema formado por recursos de computación (hardware y software) físicamente distribuidos e interconectados a través de una red, que comunican mediante paso de mensajes y cooperan para realizar una determinada tarea Red 12

Otras definiciones Un sistema distribuido es aquel en el que no puedes trabajar con tu máquina por el fallo de otra máquina que ni siquiera sabías que existía -Leslie Lamport Un sistema distribuido es aquel en el que los computadores localizados en una red comunican y coordinan sus acciones mediante paso de mensajes -George Coulouris 13

Conceptos previos Un programa es un conjunto de instrucciones Un proceso es un programa en ejecución Una red de computadores es un conjunto de computadores conectados por una red de interconexión Sistema distribuido Un conjunto de computadores (sin memoria ni reloj común) conectados por una red Aplicaciones distribuidas: Conjunto de procesos que ejecutan en uno o más computadores que colaboran y comunican intercambiando mensajes. Un protocolo es un conjunto de reglas e instrucciones que gobiernan la comunicación en un sistema distribuido, es decir, el intercambio de mensajes 14

Ejemplos: red de área local Workstations PC Red de área local Conexión al exterior 1 s Servidores de ficheros Otros servidores (impresión,...) 15

Ejemplo: Web http://www.uc3m.es Página Web navegador www.uc3m.es 16

Ejemplos de aplicaciones y sistemas distribuidos Correo electrónico (IMAP, POP) Transferencia de ficheros (FTP) Servicios de News WorldWideWeb (WWW) Sistemas de control de tráfico aéreo Aplicaciones bancarias Comercio electrónico Aplicaciones multimedia (videoconferencias, vídeo bajo demanda, etc.) El ancho de banda en estas aplicaciones es un orden de magnitud mayor que en otras Requieren calidad de servicio (QoS) Aplicaciones médicas (transferencia de imágenes) 17

Objetivos de los SSDD Sistemas distribuidos Objetivo: compartir recursos y colaborar Redes de computadoras 18

Sistemas distribuidos y paralelos Sistemas distribuidos Objetivo: compartir recursos y colaborar Redes de computadoras Sistemas paralelos Objetivo: Alto rendimiento (speedup) Alta productividad Máquinas paralelas (arquitecturas dedicadas) Multiprocesadores Multicomputadores Redes de estaciones de trabajo trabajando como un multicomputador (cluster) Grid Computing (www.gridcomputing.com) 19

Ventajas que pueden ofrecer los SSDD Compartir recursos (HW, SW, datos) Acceso a recursos remotos. Modelo cliente-servidor Modelo basado en objetos Ofrecen una buena relación coste/rendimiento Capacidad de crecimiento (escalabilidad) Tolerancia a fallos, disponibilidad Replicación Concurrencia: servicio a múltiples usuarios simultáneamente Velocidad: capacidad global de procesamiento disponible para: Ejecución paralela de una aplicación 20

Desventajas de los sistemas distribuidos Interconexión Coste Fiabilidad, pérdida de mensajes Saturación Comunicaciones inseguras Software más complejo Potencia de cada nodo no adecuada 21

Topologías de red Grid o malla Árbol Lineal 22

Sistemas Distribuidos Desafíos de diseño Heterogeneidad de los componentes Nombrado Comunicación y sincronización Rendimiento Concurrencia Capacidad de crecimiento Estructura de software Fiabilidad Calidad de servicio (QoS) Transparencia 23

Heterogeneidad Heterogeneidad de los SSDD: Es la variedad y diferencia de los siguientes componentes: Redes HW de computadores Sistemas operativos Lenguajes de programación Aplicaciones 24

Cómo resolver la heterogeneidad? Empleo de sistemas abiertos (es la característica del sistema que determina si el sistema puede ser extendido y reimplementado) Especificaciones e interfaces de acceso públicas (ej. RFCs) Mecanismos de comunicación uniformes Se pueden construir sobre SW y HW heterogéneo Ejemplos de sistemas abiertos: TCP/IP NFS CORBA (www.omg.org) Globus (www.globus.org) Web services 25

Nombrado Los usuarios designan a los objetos mediante un nombre (ej. www.uc3m.es) Los programas designan a los objetos mediante un identificador (ej. 163.117.131.31) Resolver un nombre implica obtener el identificador a partir del nombre Objetivo importante: los nombres deben ser independientes de su localización Consideraciones de diseño a tener en cuenta: El espacio de nombres (tamaño, estructura, jerarquía,...) El servicio de nombres que realiza la resolución (ej. DNS) 26

Comunicación y sincronización (C y S) Forma básica de C y S: paso de mensajes Mecanismos síncronos Mecanismos asíncronos Comunicación entre procesos: Las entidades que se comunican en distintas máquinas son procesos Primitivas básicas de comunicación: send receive Llamadas a procedimientos remotos Invocación de objetos remotos Comunicación en grupos Multicast, broadcast Útil para el trabajo en grupo, localizar el objeto, tolerancia a fallos, mejorar el rendimiento (replicación), asegurar la consistencia 27

Capacidad de crecimiento Un sistema posee capacidad de crecimiento o escalabilidad si conserva su efectividad cuando se incrementa significativamente el número de recursos o usuarios. Ejemplo: crecimiento de Internet Número de hosts (milliones) 140 120 100 80 60 Web 40 20 0 1965 1970 1975 1980 1985 1990 1995 2000 2005 2010 28

Aspectos a considerar Para que un sistema con n usuarios sea escalable, la cantidad de recursos necesarios para soportarlo debería ser proporcional a n ó O(n) Empleo de algoritmos distribuidos Algoritmos que usan estructuras jerárquicos mejor que lineales Evitar cuellos de botella (bottleneck) en el sistema Algoritmos descentralizados Evitar el desbordamiento de los recursos SW Ejemplo: 32 bits para las direcciones IP 29

Estructura de software Sistema centralizado Estructura software típica de un sistema centralizado: Aplicaciones Lenguajes de programación Sistema operativo Hardware El sistema operativo (SO): Gestionar los recursos de hardware manera eficiente Ofrecer servicios a las aplicaciones para el acceso y la gestión de los recursos 30

Estructura de software Sistema Distribuido Existen tres posibilidades para estructurar el software de un sistema distribuido Emplear sistemas operativos en red Utilizar un sistema operativo distribuido Utilizar middlewares o entornos distribuidos Lo importante es ofrecer un soporte para la programación de aplicaciones distribuidas de una manera fácil y transparente. 31

Sistema operativo en red (SOR) El usuario ve un conjunto de máquinas independientes Se debe acceder de forma explícita a los recursos en otras máquinas No hay transparencia Difíciles de utilizar para desarrollar aplicaciones distribuidas Aplicaciones Lenguajes de programación Sistema operativo Hardware Aplicaciones Lenguajes de programación Sistema operativo Hardware Red de interconexión 32

Sistema operativo distribuido (SOD) Se comporta como un SO único: Hace creer a los usuarios que trabajan con un único sistema centralizado Distribución Transparencia Se construyen normalmente como micronúcleos que ofrecen servicios básicos de comunicación Restricción: todos los computadores deben ejecutar el mismo SOD Ejemplos: Mach, Amoeba, Chorus Aplicaciones Hardware Lenguajes de programación Sistema operativo distribuido Hardware Red de interconexión 33

Middleware y entornos distribuidos Abstracción de programación que permite enmascarar la heterogeneidad de las redes subyacentes, HW, SO y LP Servicios y protocolos estandarizados: sistemas abiertos Ofrecen servicios no incluidos en el SO (servicios de ficheros distribuidos, servicios de nombres,...) Facilitan el desarrollo de aplicaciones distribuidas Independientes del HW y del SO subyacente Ejemplos: DCE, CORBA, DCOM, WebOS, Globus,.NET Sistema operativo Hardware Aplicaciones Lenguajes de programación Middleware Sistema operativo Hardware Red de interconexión 34

Fiabilidad La probabilidad de que un sistema funcione o desarrolle cierta función, bajo condiciones fijadas y durante un período de tiempo Para obtener fiabilidad hay que garantizar: Tratamiento de fallos Consistencia Seguridad 35

Tratamiento de fallos Generalmente, en los SSDD se pueden producir fallos parciales Objetivo de un sistema distribuido: disponibilidad Mide la proporción de tiempo que un sistema está disponible para su uso Técnicas para mejorar la disponibilidad: Tolerancia a fallos Detección de fallos Enmascaramiento de fallos Recuperación ante fallos Redundancia 36

Consistencia El problema de la consistencia (coherencia) surge cuando varios procesos acceden y actualizan datos de forma concurrente Coherencia de las actualizaciones Coherencia de la replicación Coherencia de caches Coherencia ante fallos Relojes consistentes 37

Seguridad Los recursos de información disponibles en los SSDD pueden tener un valor importante para los usuarios (ej. información bancaria) La seguridad tiene tres componentes: 1. Confidencialidad: protección contra el descubrimiento de datos por individuos no autorizados 2. Integridad protección contra la alteración o corrupción de los datos 3. Disponibilidad: protección contra la interferencia en los procedimientos de acceso a los recursos Otros problemas de seguridad Ataques de denegación de servicio Seguridad del código móvil 38

Calidad de servicio (QoS) Es la habilidad de satisfacer los requerimientos de tiempo cuando se transmiten y procesan flujos de datos multimedia en tiempo real Rendimiento de un sistema: Tiempo de respuesta adecuado Latencias Tasa de transferencia de datos Velocidad en la cual los datos pueden ser transferidos entre dos computadoras de la red, usualmente medido en bits por segundo (bps) El rendimiento viene determinado por: La red de comunicación Los servicios de comunicación empleados El sistema operativo El soporte para la programación de sistemas distribuidos 39

Transparencia Ocultación al usuario de los componentes que conforman un sistema distribuido: Acceso: acceso a recursos remotos y locales de igual forma Posición: acceso a los recursos sin necesidad de conocer su situación Concurrencia: acceso concurrente a recursos compartidos sin interferencias Replicación: acceso a recursos replicados sin conocimiento de que lo son Fallos: mantenimiento del servicio en presencia de fallos. Migración: permite que los recursos y objetos se muevan sin afectar a la operación de los programas. Capacidad de crecimiento: facilidad para crecer sin afectar a la estructura del sistema 40

Paradigmas de computación distribuida Paso de mensajes Cliente-servidor Llamadas a procedimientos remotos Peer-to-peer Objetos distribuidos Agentes móviles Servicios en red Aplicaciones colaborativas (groupware) 41

Paso de mensajes Paradigma fundamental para aplicaciones distribuidas Un proceso emisor envía un mensaje de solicitud El mensaje llega al proceso receptor, el cual procesa la solicitud y devuelve un mensaje en respuesta Esta respuesta puede originar posteriores solicitudes por parte del proceso emisor Proceso A Proceso B m1 m2 m3 Mensaje Paso de mensajes 42

Paso de mensajes Operaciones básicas: Enviar (send) Recibir (receive) Modelos de comunicación: Orientadas a conexión Operaciones para conectar y desconectar No orientadas a conexión Ejemplo: sockets 43

Cliente-Servidor Asigna roles diferentes a los procesos que comunican: cliente y servidor Servidor: Ofrece un servicio Elemento pasivo: espera la llegada de peticiones Cliente: Solicita el servicio Elemento activo: invoca peticiones Servidor Cliente 1... Cliente 2 Petición de servicio Proceso cliente Proceso servidor Servicio 44

Cliente-Servidor Abstracción eficiente para facilitar los servicios de red La asignación de roles asimétricos simplifica la sincronización Implementación mediante: Sockets Llamada a procedimientos remotos (RPC) Invocación de métodos remotos (RMI, CORBA, ). Paradigma principalmente adecuado para servicios centralizados Ejemplos: servicios de Internet (HTTP, FTP, DNS, ) 45

Llamadas a procedimientos remotos Idea: hacer que el software distribuido se programe igual que una aplicación no distribuida Conceptualmente igual que la invocación de un procedimiento local Cualquier programa Proceso A Proceso B funcion(1,2) funcion(arg1,arg2). return; proc1(arg1, arg2) proc2(arg1) proc3(arg1,arg2,arg3) 46

Invocación de métodos remotos Modelo equivalente a las llamadas a procedimientos remotos Proceso invoca un método local de otro proceso Ejemplos: CORBA, RMI de Java, Microsoft COM, DCOM, Java Beans,.NET Remoting Proceso 1 Proceso 2 RMI método1 método2 Objeto remoto 47

Peer-to-Peer Los procesos participantes en la comunicación asumen el mismo rol: Cliente y servidor Proceso 1 Respuesta Respuesta Los recursos y los servicios son intercambiados entre los computadores Ejemplo: Napster intercambio de ficheros Solicitud Solicitud Proceso 2 48

Agentes móviles Un agente móvil es un programa u objeto transportable El agente se lanza desde un determinado computador origen y viaja de manera autónoma de un ordenador a otro Computador 2 Computador 1 Computador 3 En cada salto de la ruta, el agente realiza las funciones necesarias para completar su tarea No intercambian mensajes Problema de seguridad: código móvil ejecutable podría ser malicioso Computador 4 49

Servicios en red Los procesos solicitantes acceden un servicio a través de una referencia que le proporciona el servidor de directorio Para publicar los servicios, éstos deben registrarse en el servicio de directorio Transparencia de localización Ejemplo: SOAP 1 Servicio de directorio 2 3 Solicitante del servicio Objeto de servicio 50

Aplicaciones colaborativas (groupware) Varios procesos participan en una sesión de trabajo colaborativo Comunicación unicast, multicast y broadcast Dos formas: Basado en mensajes: usan mensajes para enviar datos a todos o parte del grupo Basado en pizarra: usan pizarras o tablones virtuales que permiten leer o escribir datos sobre un espacio compartido mensaje mensaje mensaje groupware basado en mensajes groupware basado en pizarra 51

Comunicación de grupos Utiliza mensajes multicast Útil para: Ofrecer tolerancia a fallos basado en servicios replicados Localizar objetos en sistemas distribuidos Mejor rendimiento mediante datos replicados Actualizaciones múltiples Operaciones colectivas en cálculo paralelo emisor receptor IPC uno-a-uno IPC grupo o multidifusión 52

Arquitecturas paralelas MPP (Massively parallel processing) Multiprocesador de memoria distribuida SMP (Symmetric multiprocessing) Multiprocesador de memoria compartida CC-NUMA (Cache-Coherent Non-Uniform Memory Access) Multiprocesador con una memoria de acceso no uniforme Clusters 53

Arquitecturas paralelas P1 C P2 C Pn C P1 C P2 $ Pn $ bus network memory memory memory memory Memoria compartida Memoria compartida distribuida P0 NI P1 NI Pn NI memory memory... memory interconnect Memoria distribuida 54