Unidad I Fundamentos de Sistemas Distribuidos - Sistemas y...
Transcript of Unidad I Fundamentos de Sistemas Distribuidos - Sistemas y...
Unidad I Fundamentos deSistemas Distribuidos
M.C. Juan Carlos Olivares Rojas
Temario
1.1. Características de un sistemadistribuido1.2. Objetivos de los sistemas distribuidos1.3. Ventajas y desventajas de los sistemasdistribuidos1.4. Complejidad de los sistemasdistribuidos1.5. Técnicas de construcción1.6. Requerimientos de aplicación1.7. Arquitectura básica1.8. Sistemas operativos distribuidos
1.1. Características de unsistema distribuido
• Un Sistema Distribuido (SD) es aquél que seejecuta como un sistema centralizado, peroque realmente se ejecuta sobre múltiples eindependientes CPU, haciéndolo de unaforma "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íade red y el uso de potentes máquinasmultiprocesadores.
• Un sistema distribuido es una colección decomputadoras independientes o autónomasque aparecen ante los usuarios del sistemacomo 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 deRed y un SD
• Un Sistema de Red (SR) es una colecciónde sistemas operativos locales,acompañado de servidores de impresión, dearchivos, etc., conectados por medio de unared.
• Los SR se ejecutan como funciones localesautónomas a la administración dedispositivos, de procesos, de entradas ysalidas, 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 sistemapara todos los elementos que existen en lared.
• Los usuarios no toman cuidado por el lugardonde se localizan sus archivos, procesos,etc.
• Todo el control y las decisiones sontomadas globalmente
1.2. Objetivos de los sistemasdistribuidos
• 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 delos sistemas distribuidos
• La base comparativa para obtener lasventajas y desventajas de los SD se hacecon respecto a una computadora aislada.
• A continuación se mencionan las ventajasde los SD.
Ventajas de los SD• Con el uso de SD se logra compartir
información así como dispositivos periféricosentre más de un usuario.
• Los SD permiten dividir las cargas detrabajo entre diferentes computadoras demanera más eficaz.
• Cuando un nodo de procesamiento falla, elsistema 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 laexperiencia suficiente en el diseño,implantación y uso del software distribuido yse debe contestar a preguntas tales como:
• ¿Qué tipos de sistemas operativos,lenguajes de programación y aplicacionesson 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 lascomunicaciones o saturación de mensajes.
• Otra de las desventajas de los SD es lavulnerabilidad que puede sufrir lainformación que puede llegar a estardisponible para un gran número de usuariosdel sistema.
Desventajas de los SD• Requerimientos de mayores controles de
procesamiento y acceso.
• Administración más compleja.
• Costos.
1.4. Complejidad de los sistemasdistribuidos
• Los sistemas distribuidos tienen más de dosdécadas de haber surgido pero son tancomplicados en su construcción tanto comouna red de transporte público como elmetro, y pasará más tiempo para quepodamos entenderlos correctamente yconstruir 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 decomponentes.
• Existen fallas en todos los sistemas, sóloque en un SD resultan más visibles. Acontinuación se muestran algunosproblemas del sistema.
Complejidad de los SD• Al interconectar dos o más elementos entre
si, sus funcionalidades se interfieren.
• Pueden existir también fallas depropagación.
• Se pueden tener fallas por el tamaño delsistema.
Complejidad de los SD• Las aplicaciones "distribuidas" deben estar
preparadas para soportar fallas parciales; loque representa una complejidad adicionalen el diseño de éstas aplicaciones.
• Se deben tener mecanismos para lalocalización de recursos, la recuperación deéstos, así como la coordinación de lasré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 puedenpredecir los retardos y mensajes.
• Se requiere más capacidad dealmacenamiento.
• S requiere de sincronización para actualizarel estado del sistema.
• Compatibilidad.
Complejidad de los SD• Los recursos compartidos deben ser
accedidos por un proceso a la vez(exclusión mutua) y deben liberarse.
• Seriabilización.
• Los procesos deben solicitar recursoslocales o remotos y posteriormenteliberados en cualquier orden que puede serno conocido.
1.5 Técnicas de construcción deSD
• Seguridad.• Desempeño y crecimiento modular.• Tiempo de respuesta limitado.• Control autónomo.
• Temas relacionados con lascomunicaciones (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. Utilizarcaché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 enlograr 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 doscaracterísticas esenciales: el número deflujos de instrucciones y el número de flujode datos. La clasificación es la siguiente:
• Una computadora con un sólo flujo deinstrucciones 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, SingleInstruction Multiple Data). Procesadoresvectoriales.
• Computadoras con múltiples flujos deinstrucciones y varios flujos de datos (MIMD,Multiple Instruction Multiple Data). Conceptode SD (no implementada como tal)
Clasificación SD• Los sistemas MIMD se subdividen en dos
grupos:
• Máquinas multiprocesadores. Existe unespacio de direcciones virtuales, compartidopor todos los CPU del sistema.
• Sistemas multicomputadoras. Cadamáquina tiene su propia memoria enparticular.
Clasificación SD• Las categorías anteriores puede clasificarse
de acuerdo a la red de comunicación con laque se interconectan los CPU, en lassiguientes 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ánfuertemente acopladas, mientras que otrasestán débilmente acopladas.
• A continuación se muestran cuatrocategorías de sistemas de cómputo, enbase 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 hardwarefuertemente acoplado. Sistemas TiempoCompartido y Servidores Dedicados.
1.7 Arquitectura básica• Una arquitectura es un conjunto de reglas,
definiciones, términos y modelos que seemplean para producir un producto.
• La Arquitectura Cliente/Servidor (C/S)agrupa conjuntos de elementos queefectúan procesos distribuidos y computocooperativo.
1.7. Arquitectura Cliente/Servidor• Este modelo se basa en un protocolo
solicitud – respuesta. El cliente envía unasolicitud de cierto servicio al servidor, elservidor realiza el trabajo y regresa elresultado de la operación.
• La principal ventaja de este protocolo es susencillez, únicamente se necesita laubicación del servidor.
Arquitectura Cliente/Servidor• Beneficios:
• Mejor aprovechamiento de la potencia decó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 dedatos.
• Administración de recursos compartidos.
• Ejecución de toda la lógica para procesaruna transacción.
Middleware• Capa de software que se ejecuta sobre el
sistema operativo local ofreciendo unosservicios 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 SistemasCentralizados
• Único computador (caro y de gran potencia)con terminales
• Soporte multiusuario
• – Ley de Grosch (obsoleta):• Prestaciones = (Precio)2
1.8. Sistemas OperativosDistribuidos
• Un Sistema Operativo Distribuido (SOD)extiende el concepto de administración derecursos e interfaces con el usuario haciacomputadoras de memoria compartida, elcual consiste en varias computadorasautónomas conectadas por una red decomunicaciones.
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 SistemasOperativos que proveen los mismosservicios.
• Transparencia
Amoeba• Creado en 1981 en Holanda por Andrew
Tanenbaum y otros.
• Es un Sistema Operativo (SO) creado desdecero, sin problemas de compatibilidades.
• Es totalmente transparente ya que noexisten 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 ejecutaen cada máquina.
Mach• Se originó en 1984 en la Carneige Mellon
University.
• Se fusionó con Unix BSD para dar unsoporte a aplicaciones legadas.
• La OSF (Open Software Foundation) loescoge como su SO llamándolo OSF/1.
Mach• El código creció demasiado por lo que se
tuvo que mantener un micronúcleo y elsoporte para Unix se hizo a través de unemulador.
• En la década de 1990, surgió Mach 4.
• El Mac OS X está basado en Mach (versiónNeXSTEP).
Chorus• Se originó en Francia en el INRIA.
• Es un sistema modular con soporte paraaplicaciones Unix.
• Se caracteriza por el manejo excesivo dehilos.
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?