Unidad I Fundamentos de Sistemas Distribuidos M.C. Juan Carlos Olivares Rojas Temario 1.1. Características de un sistema distribuido 1.2. Objetivos de los sistemas distribuidos 1.3. Ventajas y desventajas de los sistemas distribuidos 1.4. Complejidad de los sistemas distribuidos 1.5. Técnicas de construcción 1.6. Requerimientos de aplicación 1.7. Arquitectura básica 1.8. Sistemas operativos distribuidos 1.1. Características de un sistema distribuido • Un Sistema Distribuido (SD) es aquél que se ejecuta como un sistema centralizado, pero que realmente se ejecuta sobre múltiples e independientes CPU, haciéndolo de una forma "transparente" para los usuarios. • Es un término difícil de definir. Sistemas Distribuidos • En general, se podría ver a un sistema distribuido como la unión de una tecnología de red y el uso de potentes máquinas multiprocesadores. • Un sistema distribuido es una colección de computadoras independientes o autónomas que aparecen ante los usuarios del sistema como una única computadora. Características de un SD • Múltiples elementos de procesamiento. • Mecanismos de intercomunicación. • Independencia a fallos en los nodos de procesamiento. • Estado de compartición. • Esquema de protección. • Sistemas Abiertos. • Plataformas diversas (heterogéneas). Diferencias entre un Sistema de Red y un SD • Un Sistema de Red (SR) es una colección de sistemas operativos locales, acompañado de servidores de impresión, de archivos, etc., conectados por medio de una red. • Los SR se ejecutan como funciones locales autónomas a la administración de dispositivos, de procesos, de entradas y salidas, de archivos y recursos en general. SR vs SD • Un SD es un solo sistema expandido en toda la red, pero visto como un sólo sistema para todos los elementos que existen en la red. • Los usuarios no toman cuidado por el lugar donde se localizan sus archivos, procesos, etc. • Todo el control y las decisiones son tomadas globalmente 1.2. Objetivos de los sistemas distribuidos • Compartir información y otros recursos. • Economizar el rendimiento (procesamiento y almacenamiento). • Crecimiento incremental. • Alta disponibilidad • Confiabildad (tolerancia a fallos) 1.3. Ventajas y desventajas de los sistemas distribuidos • La base comparativa para obtener las ventajas y desventajas de los SD se hace con respecto a una computadora aislada. • A continuación se mencionan las ventajas de los SD. Ventajas de los SD • Con el uso de SD se logra compartir información así como dispositivos periféricos entre más de un usuario. • Los SD permiten dividir las cargas de trabajo entre diferentes computadoras de manera más eficaz. • Cuando un nodo de procesamiento falla, el sistema en general sigue funcionando. • Ejecución concurrente de procesos Desventajas de los SD • Debido a que la tecnología de los SD aún está siendo explorada, no se tiene la experiencia suficiente en el diseño, implantación y uso del software distribuido y se debe contestar a preguntas tales como: • ¿Qué tipos de sistemas operativos, lenguajes de programación y aplicaciones son los adecuados para estos sistemas?, Desventaja de los SD • ¿Cuánto deben saber los usuarios de la distribución? • Las redes de comunicación, pueden llegar a perder mensajes, latencia de las comunicaciones o saturación de mensajes. • Otra de las desventajas de los SD es la vulnerabilidad que puede sufrir la información que puede llegar a estar disponible para un gran número de usuarios del sistema. Desventajas de los SD • Requerimientos de mayores controles de procesamiento y acceso. • Administración más compleja. • Costos. 1.4. Complejidad de los sistemas distribuidos • Los sistemas distribuidos tienen más de dos décadas de haber surgido pero son tan complicados en su construcción tanto como una red de transporte público como el metro, y pasará más tiempo para que podamos entenderlos correctamente y construir uno de la manera más apropiada. Complejidad de los SD • La fuente básica de la complejidad de los SD recae en la interconexión de componentes. • Existen fallas en todos los sistemas, sólo que en un SD resultan más visibles. A continuación se muestran algunos problemas del sistema. Complejidad de los SD • Al interconectar dos o más elementos entre si, sus funcionalidades se interfieren. • Pueden existir propagación. también fallas de • Se pueden tener fallas por el tamaño del sistema. Complejidad de los SD • Las aplicaciones "distribuidas" deben estar preparadas para soportar fallas parciales; lo que representa una complejidad adicional en el diseño de éstas aplicaciones. • Se deben tener mecanismos para la localización de recursos, la recuperación de éstos, así como la coordinación de las réplicas de los estados de los servidores. Complejidad de los SD • No se tiene disponibilidad de una memoria global y un reloj global, no se pueden predecir los retardos y mensajes. • Se requiere más capacidad de almacenamiento. • S requiere de sincronización para actualizar el estado del sistema. • Compatibilidad. Complejidad de los SD • Los recursos compartidos deben accedidos por un proceso a la (exclusión mutua) y deben liberarse. ser vez • Seriabilización. • Los procesos deben solicitar recursos locales o remotos y posteriormente liberados en cualquier orden que puede ser no conocido. 1.5 Técnicas de construcción de SD • • • • Seguridad. Desempeño y crecimiento modular. Tiempo de respuesta limitado. Control autónomo. • Temas relacionados con las comunicaciones (ancho de banda, latencia, distancia geográfica). Consejos para construir SD • Duplicar la información para aumentar la disponibilidad. • Usar copias locales de la información para permitir una operación autónoma. Utilizar cachés. • Usar tiempos de espera para revocar. • Usar mecanismos estándares para llamadas remotas. • Utilizar técnicas de criptografía para la autenticación y seguridad de la información. 1.6 Requerimientos de aplicación • A continuación se muestran algunos de los requerimientos de aplicaciones distribuidas. • Disponibilidad y confiabilidad. • Transparencia. Es uno de los aspectos más interesantes referente a los SD, consiste en lograr la imagen de un único sistema. Existen diferentes tipos de transferencia. Tipos de transparencia • Transparencia de localización. • Transparencia de réplica. • Transparencia de migración. • Transparente a la concurrencia. Clasificación de SD • Una de las clasificaciones más aceptadas es la de Flynn, la cual se basa en dos características esenciales: el número de flujos de instrucciones y el número de flujo de datos. La clasificación es la siguiente: • Una computadora con un sólo flujo de instrucciones y un flujo de datos (SISD, Single Instruction Single Data). Computadoras con monoprocesador. Clasificación de SD • Computadoras con un flujo de instrucciones y varios flujos de datos (SIMD, Single Instruction Multiple Data). Procesadores vectoriales. • Computadoras con múltiples flujos de instrucciones y varios flujos de datos (MIMD, Multiple Instruction Multiple Data). Concepto de SD (no implementada como tal) Clasificación SD • Los sistemas MIMD se subdividen en dos grupos: • Máquinas multiprocesadores. Existe un espacio de direcciones virtuales, compartido por todos los CPU del sistema. • Sistemas multicomputadoras. Cada máquina tiene su propia memoria en particular. Clasificación SD • Las categorías anteriores puede clasificarse de acuerdo a la red de comunicación con la que se interconectan los CPU, en las siguientes categorías: • Tecnología de bus • La tecnología de conmutador Otras clasificaciones de SD • En todos los sistemas de equipo de cómputo, algunas máquinas están fuertemente acopladas, mientras que otras están débilmente acopladas. • A continuación se muestran cuatro categorías de sistemas de cómputo, en base al acoplamiento y tipo de conexión. Otras clasificaciones de SD • Multiprocesadores con base en buses. • Multiprocesadores con conmutador. • Multicomputadoras con base en buses. • Multicomputadoras con conmutador. Otras clasificaciones de SD • En base al acoplamiento del software con el hardware los SD se dividen en: • Software débilmente acoplado en hardware débilmente acoplado. LAN • Software fuertemente acoplado en hardware débilmente acoplado (multicomputadoras). SD • Software fuertemente acoplado en hardware fuertemente acoplado. Sistemas Tiempo Compartido y Servidores Dedicados. 1.7 Arquitectura básica • Una arquitectura es un conjunto de reglas, definiciones, términos y modelos que se emplean para producir un producto. • La Arquitectura Cliente/Servidor (C/S) agrupa conjuntos de elementos que efectúan procesos distribuidos y computo cooperativo. 1.7. Arquitectura Cliente/Servidor • Este modelo se basa en un protocolo solicitud – respuesta. El cliente envía una solicitud de cierto servicio al servidor, el servidor realiza el trabajo y regresa el resultado de la operación. • La principal ventaja de este protocolo es su sencillez, únicamente se necesita la ubicación del servidor. Arquitectura Cliente/Servidor • Beneficios: • Mejor aprovechamiento de la potencia de cómputo (Repartición del trabajo). • Reducción del tráfico en la red. • Opera bajo sistemas abiertos. • Facilita el uso de interfaces gráficas variadas y versátiles. Cliente • Conjunto de software y hardware que invoca los servicios de uno o varios servidores. • Características: – El Cliente oculta al servidor y la red. – Mantener y procesar todo el diálogo con el usuario. – Manejo de la interfaz, entrada de datos y validación. Servidor • Conjunto de hardware y software que responde a los requerimientos de un cliente. • Tipos comunes de Servidores: – Servidor de Archivos (FTP, Novell). – Servidor de Bases de Datos (MySQL, ORACLE, INFORMIX). – Servidor de Impresión. – Servidor de Terminal. – Servidor de Aplicaciones (Windows NT, Novell). Servidor • Funciones del Servidor: • Acceso, almacenamiento y organización de datos. • Administración de recursos compartidos. • Ejecución de toda la lógica para procesar una transacción. Middleware • Capa de software que se ejecuta sobre el sistema operativo local ofreciendo unos servicios distribuidos estandarizados. • Sistema abierto independiente del fabricante. • No depende del hardware y sistema operativo subyacente. • Ejemplos: – DCE (Open Group). – CORBA (OMG). Otras Arquitecturas • P2P (Peer to Peer) • Arquitecturas de intermediarios • Arquitecturas de 2, 3 y n-capas • Clientes pesados, ligeros e inteligentes Arquitectura de Sistemas Centralizados • Único computador (caro y de gran potencia) con terminales • Soporte multiusuario • – Ley de Grosch (obsoleta): • Prestaciones = (Precio)2 1.8. Sistemas Operativos Distribuidos • Un Sistema Operativo Distribuido (SOD) extiende el concepto de administración de recursos e interfaces con el usuario hacia computadoras de memoria compartida, el cual consiste en varias computadoras autónomas conectadas por una red de comunicaciones. Características de los SOD • Para cada uno de los usuarios debe de ser similar al trabajo en el Sistema Centralizado. • Se ejecuta en múltiples Computadoras. • Tiene varias copias del mismo Sistema Operativo o de diferentes Sistemas Operativos que proveen los mismos servicios. • Transparencia Amoeba • Creado en 1981 en Holanda por Andrew Tanenbaum y otros. • Es un Sistema Operativo (SO) creado desde cero, sin problemas de compatibilidades. • Es totalmente transparente ya que no existen máquinas clientes ni servidores Amoeba • Está escrito en C y presenta balanceo de carga. • No hace uso de memoria compartida. • Dispone de un micronúcleo que se ejecuta en cada máquina. Mach • Se originó en 1984 en la Carneige Mellon University. • Se fusionó con Unix BSD para dar un soporte a aplicaciones legadas. • La OSF (Open Software Foundation) lo escoge como su SO llamándolo OSF/1. Mach • El código creció demasiado por lo que se tuvo que mantener un micronúcleo y el soporte para Unix se hizo a través de un emulador. • En la década de 1990, surgió Mach 4. • El Mac OS X está basado en Mach (versión NeXSTEP). Chorus • Se originó en Francia en el INRIA. • Es un sistema modular con soporte para aplicaciones Unix. • Se caracteriza por el manejo excesivo de hilos. Plan9 • Se originó a finales de la década de 1980 con apoyo de IBM. • Es compatible con POSIX. • Está conformada por protocolos especiales. ¿Preguntas?