Download Unidad I Fundamentos de Sistemas Distribuidos

Document related concepts

Servidor wikipedia , lookup

Máquina virtual wikipedia , lookup

Middleware wikipedia , lookup

Computación distribuida wikipedia , lookup

Cliente híbrido wikipedia , lookup

Transcript
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?