Upload
moises-malle
View
244
Download
1
Embed Size (px)
Citation preview
Sistemas operativos en ambientes distribuidos
Unidad 1
TEMA: Características de los Sistemas Distribuidos
Ing. Efrain Padilla Valera
Instituto Tecnológico de Tepic
Contenido
Cuestiones Básicas de Diseño.
Historia y Definición de sistemas distribuidos (SD)
Ventajas y desventajas de los SD
Características Claves de SD
Aplicaciones
Instituto Tecnológico de Tepic
Bibliografía Distributed Systems: Concepts and Design
G. Coulouris, J. Dollimore, T. KindbergAddison-Wesley, 2001
Distributed Operating SystemsA. S. TanenbaumPrentice-Hall, 1995
Distributed Operating Systems: Concepts & PracticeD. L. GalliPrentice-Hall, 2000
Distributed Operating Systems & AlgorithmsR. Chow, T. JohnsonAddison-Wesley, 1997
Traducciones al Español Sistemas Distribuidos: Conceptos y Diseño
G. Coulouris, J. Dollimore, T. KindbergAddison-Wesley, 2001
Sistemas Operativos DistribuidosA. S. TanenbaumPrentice-Hall, 1996
Instituto Tecnológico de Tepic
Historia de los Sistemas Distribuidos
Disminución de costosComercio ElectronicoInformación Distribuida (WWW)
Decada1970
Decada1980
Decada1990
Todo llevo a
¿Porqué su Desarrollo?
Redes de ComunicaciónDe Alta Velocidad
Ingenería del Software
Microelectrónica
Contenido
Instituto Tecnológico de Tepic
Definición de Sistemas Distribuidos (SD)
"Sistema en el cual múltiples procesadores autónomos, posiblemente de diferente tipo, están interconectados por una subred de comunicación para interactuar de una manera cooperativa en el logro de un objetivo global.“ [Lelann 1981].
"Sistema en el cual componentes de hardware y software, localizadas en computadores en red, se comunican y coordinan sus acciones sólo porpaso de mensajes" [Coulouris 2002].
"Conjunto de computadores independientes que se muestran al usuario comoun sistema único coherente" [Tanenbaum 2001] .
Instituto Tecnológico de Tepic
Definicion de Sistemas Distribuidos
Propiedades básicas:
Múltiples procesadores (con memoria local)
Interconexión (red de comunicación)
Estado compartido (para coordinación global)
Síntomas de un SD Síntomas de un SD (Schroeder, 92)(Schroeder, 92)
Además, ...
Fallas independientes
Comunicación no fiable
Comunicación insegura
Comunicación costosa
Contenido
Instituto Tecnológico de Tepic
Ventajas de los SD
1
Economía: Buena relación
rendimiento /costo
Avances en la tecnología de
microprocesadores y redes de área
local
2
Alto rendimiento: Procesamiento
paralelo.
3
Soporte de aplicaciones
inherentemente distribuidas.
Por ejemplo: empresa distribuida geográficamente
4
Capacidad de crecimiento:
Escalabilidad.
Instituto Tecnológico de Tepic
Ventajas de los SD
5
Fiabilidad y disponibilidad:
Tolerancia a fallos
6
Carácter abierto y
heterogéneo:
Estándares de interoperabilidad.
7
Compartir recursos y
datos.
Instituto Tecnológico de Tepic
Desventajas de los SD
1
Necesidad de un nuevo tipo de
software: Más complejo.No hay todavía un acuerdo sobre cómo debe ser.
2
Red de interconexión
problemas: Pérdida de mensajes y saturación.Latencia puede provocar que al recibir un dato ya esté obsoleto.La red es un elemento crítico.
3
Seguridad y confidencialidad
.
Contenido
Instituto Tecnológico de Tepic
Aplicaciones de Sistemas Distribuidos
•Entornos empresariales: redes corporativas e intranets:
– Sustituye a los clásicos mainframes.
• Entornos de computación de alto rendimiento:
– Procesamiento paralelo, alternativa a costosos supercomputadores.
• Servicios con alta disponibilidad y rendimiento.
• Sistemas distribuidos de gestión de bases de datos
• Aplicaciones multimedia.
• Sistemas industriales distribuidos y aplicaciones de control.
• Internet: un enorme sistema distribuido.
Aplicaciones
Instituto Tecnológico de Tepic
intranet
ISP
desktop computer:
backbone
satellite link
server:
network link:
Fig. 1.1 Una porción típica de Internet
Computadores conectados interactúan mediante paso de mensajes, empleando un medio común de comunicación. El diseño y la construcción de los mecanismos de comunicación de Internet (protocolos Internet) es una técnica fundamental, permitiendo un proceso en ejecución dirija mensajes a procesos en cualquier parte.
Instituto Tecnológico de Tepic
Figura 1.2 Una Intranet típica
the rest of
email server
Web server
Desktopcomputers
File server
router/firewall
print and other servers
other servers
Local areanetwork
email server
the Internet
Instituto Tecnológico de Tepic
Figura 1.3 Dispositivos portátiles y de mano en un sistema distribuido
Laptop
Mobile
PrinterCamera
Internet
Host intranet Home intranetWAP
Wireless LAN
phone
gateway
Host site
Instituto Tecnológico de Tepic
Nuevos Paradigmas de Sistemas Distribuidos
Paradigmas
•Cluster Computing: – Dedicados a tareas específicas:
• Alto rendimiento.• Alta disponibilidad.
– Sistema homogéneo (a menudo dedicado):• Nodos PCs.• LAN (de propósito general o específicas).
– Problemática: Grado de acoplamiento, servicios distribuidos.• Grid Computing: – Aprovechamiento de recursos creando un uniprocesador virtual. – Restringido a una serie de tareas. – Diferentes ámbitos:
• Desde intradepartamentales.• Hasta intercorporativos.
– Problemática: Coordinación, seguridad, carácter dinámico.
Contenido
Instituto Tecnológico de Tepic
•Transparencia• Fiabilidad o Tratamiento de fallos• Rendimiento
•Elasticidad.•Seguridad.•Compartición de recursos.
•Apertura o flexibilidad•Soporte a la concurrencia
SistemaDistribuido
Objetivos o Características de un Sistema Distribuido
Instituto Tecnológico de Tepic
Transparencia y Tipos de Transparencia
Transparencia = ocultación de la separación - a los usuarios - y a los programadores de aplicaciones
Provee la visión del sistema: - como un todo - y no como una colección de componentes independientes
¿Es buena tanta transparencia? no siempre deseable: impresoras - A veces el usuario precisa conocer cómo es el sistema subyacente
1 y 2
Acceso:Manera de acceder a recurso local igual que a remoto.
Posición:Se accede a los recursos sin conocer su localización.
3 y 4
Migración:Recursos pueden migrar sin afectar a los usuarios.
Concurrencia:Acceso concurrente no afecta a los usuarios.
5 y 6
Replicación:La existencia de réplicas no afecta a los
usuarios.Fallos:
La ocurrencia de fallos no afecta a los usuarios.
7 y 8
Crecimiento:El crecimiento del sistema no afecta a los usuarios.
Heterogeneidad:Carácter Heterogéneo no afecta a los usuarios.
Instituto Tecnológico de Tepic
Fiabilidad o Tratamiento de fallos En los sistemas distribuidos los fallos son parciales (algunos componentes fallan mientras otros
siguen funcionando.
Técnicas para tratar fallos. Detección de fallos: (sumas de comprobación “checksums” para detectar datos corruptos
en un mensaje o en un archivo). Recuperación frente a fallos: Implica que el diseño de software en el que tras una caida
del servidor, el estado de los datos pueda reponerse o retractarse “rollback” a una situación anterior.
Redundancia: Puede lograrse que los servcios toleren fallos mediante el empleo redundante de componentes.
• Ejemplo:– Siempre deberá de haber al menos 2 rutas diferentes entre cualesquiera de 2 routers en
Internet– En DNS, cada tabla de nombres se encuentra replicada en 2 servidores diferentes– Una BD puede encontrarse replicada en varios servidores para asegurar que los datos siguen
siendo accesibles tras el fallos de cualquier servidor concreto.
Tolerancia Fallos: La mayoría de los servicios en Internet exhiben fallos (sus: clientes pueden diseñarse para tolerar ciertos fallos, lo que implica que los usuarios tendrán que tolerarlos generalmente.
• Ejemplo: – Navegador WEB no puede contactar con un servidor WEB
Enmascaramiento de fallos: (Fallos detectados pueden ocultarse o atenuarse)• Ejemplo:
– 1.- Los mensajes pueden retransmitirse cuando falla la recepción– 2.- Los archivos con datos pueden escribirse en una pareja de discos
Instituto Tecnológico de Tepic
Rendimiento
Rendimiento para un servicio multiusuario: – Objetivo: Rendimiento no peor que un sistema
centralizado.Rendimiento para la ejecución paralela de
aplicaciones: – Objetivo: Rendimiento proporcional a
procesadores empleados.Factores:
Uso de esquemas de caching.• – Intentar que muchos accesos se hagan localmente.
Uso de esquemas de replicación.• – Reparto de carga entre componentes replicados.
En ambos casos: Costo de mantener la coherencia.
Instituto Tecnológico de Tepic
Elasticidad o Capacidad de Crecimiento o Escalabilidad
Cambios de escala = aumento del número de usuarios y/o de recursos
Sistema elástico: conserva su eficacia y su eficiencia ante cambios de escala
• sin necesidad de cambios en el software de las aplicaciones o del sistema
• sin pérdida significativa del rendimiento• con un costo controlado de los recursos físicos
– si hay muchos usuarios, se pueden añadir servidores– si un recurso es muy accedido, se puede replicar
• sin cuellos de botella en las prestaciones• sin limitar el número de recursos software
Instituto Tecnológico de Tepic
Elasticidad o Capacidad de Crecimiento
• Ej: Acceso a recursos en Internet
Técnicas para afrontar el reto: – Servidores cooperativos – Replicación de los datos. Reparto de estructuras de datos entre
varios nodos – Conservación de los datos cerca de donde se usan (cache).
Realización de parte del procesamiento en los nodos cliente.
Instituto Tecnológico de Tepic
Seguridad La seguridad de los recursos de información tiene 3 componentes:
Confidencialidad (Protección contra el descubrimiento por individuos no autorizados) Integridad (Protección contra alteración o corrupción) Disponibilidad (Protección contra interferencia con los procedimientos de acceso a los recursos)
Tipología de los ataques: Privacidad y confidencialidad (enviar información sensible en un mensaje, por la red, de forma
segura es decir ocultar los contenidos de los mensajes). Autenticación (spoofing) (Conocer con certeza la identidad del usuario u otro agente en nombre
se envía el mensaje). Ataque Denegación de servicio. (Se da cuando un usuario desea obstaculizar un servicio por
alguna razón. Esto se obtiene al bombardear el servicio con un numero suficiente de peticiones inútiles de modo que los usuarios serios sean incapaces de utilizarlo).
Seguridad del código móvil. (El código móvil necesita ser tratado con cuidado. Suponga que alguien recibe un programa ejecutable adherido a un correo electrónico: los posibles efectos son impredecibles).
Modelos y herramientas de seguridad: – Cifrado: clave pública (RSA) y privada (DES). – Protocolos de seguridad: IPsec, SSL. – Certificados y firmas digitales: X.509. – Elementos de seguridad: Firewalls.
Entornos de seguridad: p. ej. Kerberos.
Instituto Tecnológico de Tepic
Compartición de Recursos
Recurso: entidad útil que se puede compartir hardware: discos, impresoras software: archivos, bases de datos
Beneficios del esquema común de acceso: – Ahorro de costos al compartir dispositivos
hardware. – La compartición de datos es una exigencia
esencial:• herramientas de desarrollo: copia única• bases de datos comunes: vista coherente• trabajo cooperativo (groupware)
Instituto Tecnológico de Tepic
La compartición no es inmediata. Exige: – comunicación entre computadoras – un programa que gestione el recurso
Los gestores de cada tipo de recursos tienen: – distintas políticas y métodos – exigencias comunes: nombramiento,
acceso, etc.Modelo básico:
– Modelo Cliente-Servidor – Puede estar basado en Objetos
Compartición de Recursos
Instituto Tecnológico de Tepic
Apertura o Flexibilidad
Posibilidad de extensión del hardware y/o software (facilidad para incorporar cambios y extensiones al sistema)
– además: posibilidad de hardware y software heterogéneo En S.D.: en qué medida se pueden añadir servicios:
– sin necesidad de paradas – con diferentes orígenes – Método: las interfaces clave son públicas
Uso preferible de arquitectura microkernel
UNIX es “más abierto” que sistemas previos: – las llamadas al sistema dan acceso a los recursos – se pueden extender fácilmente – es independiente del hardware – Problema: todo implementado en el núcleo (núcleo
monolítico)
Instituto Tecnológico de Tepic
Apertura o Flexibilidad
Si queremos: – acceder a más recursos que los soportados por
el núcleo local – dar acceso a los recursos locales a clientes
remotosNecesitamos Sistemas Distribuidos Abiertos,
– extensibles en:• hardware, añadiendo máquinas a la red• software, añadiendo nuevos servicios fuera del núcleo
Solución: provisión de un mecanismo de comunicación uniforme
– ej: comunicación entre procesos basada en sockets
Instituto Tecnológico de Tepic
Concurrencia En SD aumentan las ocasiones, debido a:
– separación de los usuarios – la separación de los procesos servidores – independencia de los recursos
Dentro de cada computadora: posibilidad de ejecución concurrente
Posibilidad de conflictos (inconsistencia) Necesidad de sincronización de los accesos
Para que un objeto sea seguro en un entorno concurrente, sus operaciones deben sincronizarse de forma que sus datos permanezcan consistentes. Esto puede lograrse mediante el empleo de técnicas conocidas como los semaforos.
Contenido
Instituto Tecnológico de Tepic
Cuestiones básicas de diseño de los Sistemas Distribuidos
Nombramiento:
Mantenimiento de consistencia
Comunicación:
Estructura del software:
Arquitecturas:
Instituto Tecnológico de Tepic
Nombramiento Necesidad de referencias a los recursos
nombres: usados por usuarios y programas• legibles por humanos
identificadores: usados sólo por programas• representación interna compacta
Resolver: traducir un nombre para poder invocar operaciones sobre el recurso al que se refiere
Servicios de Nombres: realizan la resolución Credencial:
identificador que garantiza que su poseedor tiene derecho a ejecutar una operación
Nombres puros: no interpretables, ni contienen información acerca de la
ubicación del recurso transparencia de migración
Instituto Tecnológico de Tepic
Comunicación La comunicación entre dos procesos causa:
transferencia de datos de un entorno al otro además, puede causar sincronización de sus actividades
Forma básica del paso de mensajes: primitivas send y receive:
• síncronas (o bloqueantes):– el emisor espera hasta que el receptor haya recibido
• asíncronas (o no-bloqueantes):– uso de buffers o de colas de mensajes
Instituto Tecnológico de Tepic
Comunicación cliente-servidor
Implica dos mensajesSincronización: el cliente se bloquea hasta
recibir la respuestaSe suele presentar al nivel de lenguaje como:
invocación remota (IMR o LPR) en términos de un protocolo solicitud-respuesta
Enlace (binding) dinámico: servidor de nombres los servidores se registran al arrancar los clientes interrogan al servidor de nombres
Instituto Tecnológico de Tepic
Estructura del Software en un sistema centralizado
Niveles de un sistema centralizado: diseño monolítico
En los sistemas centralizados, el núcleo del S.O. Gestiona los recursos básicos
• asigna y protege la memoria• crea los procesos y los planifica• maneja los dispositivos periféricos• da servicio a usuarios y aplicaciones
Da servicio a usuarios y aplicaciones• autentifica a los usuarios y controla el acceso• administra los archivos• administra el tiempo
Hardware
Sistema Operativo
Soporte a Lenguajesde Programación
Aplicaciones
Instituto Tecnológico de Tepic
Estructura del Software en un sistema distribuido
En SD, se deben poder añadir nuevos servicios
El núcleo sólo gestiona los recursos básicos: +IPC (la comunicación entre procesos)
El núcleo: trata con abstracciones universales:
• procesos, …
Nuevo componente software: servicios abiertos gestionan el resto de recursos compartidos implementados como procesos fuera del núcleo
Instituto Tecnológico de Tepic
Estructura del Software en un sistema distribuido
Apertura = posibilidad de configurar a medida los administradores añaden servicios los usuarios seleccionan lo que necesitan se puede añadir hardware/software heterogéneo
sobre la marcha sistemas no atados a un fabricante
Categorías del software de un Sistema Distribuido corresponden a diferentes niveles de abstracción proveen diferentes grados de transparencia
Instituto Tecnológico de Tepic
Estructura del Software en un sistema distribuido
- Plataforma. El nivel de hardware y las capas mas bajas de software se denominan plataforma para sistemas distribuidos y aplicaciones. Estas capas mas bajas proporcionan servicios a las capas que están por encima de ellas y que son implementadas independientemente en cada computador, proporcionando una interfaz de programación del sistema a un nivel que facilita la comunicación y coordinación entre procesos.
Ejemplo: Windows para Intel X86, Sun OS para Sun SPARC, Solaris para Intel X86, Mac OS para power PC, Linux para Intel X86 .
Logica de Mediación o Middleware: Se representa mediante procesos u objetos en un conjunto de computadoras que interactúan entre si para implementar mecanismos de comunicación y de recursos compartidos para aplicaciones distribuidas. Mejora el nivel de las actividades de comunicación de los programas de aplicación soportando abstracciones como: procedimiento de invocación remota “RPC”, comunicación entre un grupo de procesos “multicast”, notificación de eventos, replicación de datos compartidos.
Plataforma
Instituto Tecnológico de Tepic
MiddlewareMiddleware:
Capa de software que 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). ...
Hardware
SO
Hardware
SO
Hardware
SO
Middleware
Instituto Tecnológico de Tepic
Modelos y Arquitectura de Sistema Sistemas Distribuidos
Arquitecturas de Hardware:
Modelo punto a punto Modelo de Cliente-Servidor
Instituto Tecnológico de Tepic
Modelo Arquitectónico: Definición
Un modelo arquitectónico de un sistema distribuido simplifica y abstrae, inicialmente, las funciones de los componentes individuales de dicho sistema y posteriormente considera:
La ubicación de los componentes en la red de computadoras, buscando definir patrones utilizables para la distribución de datos y carga de trabajo.
Las interrelaciones entre componentes, es decir, sus papeles funcionales y los patrones de comunicación entre ellos.
Clasificar los procesos (Servidores, clientes e iguales) Identifica las responsabilidades de cada uno y ayuda a valorar sus
cargas de trabajo y a determinar el impacto de los fallos de cada uno de ellos.
Instituto Tecnológico de Tepic
Modelo Arquitectónico: Variaciones del modelo C/S
Se pueden construir otros sistemas dinámicos como variaciones del modelo Cliente/Servidor: La posibilidad de mover código de un proceso a otro permite que un
proceso delegue tareas en otro Ejemplo: Los clientes pueden descargar código de los servidores y
ejecutarlo localmente. Los objetos y el código al que acceden puede reubicarse para reducir los retardos de acceso y minimizar el tráfico de comunicación.
Algunos sistemas distribuidos se diseñan para permitir que los computadores y otros dispositivos móviles se añadan o eliminen sin incidencias, permitiendo el descubrimiento de servicios disponibles y el ofrecer sus servicios a otros.
Instituto Tecnológico de Tepic
Arquitectura de sistemas: Fig. 2.2 modelo Cliente-Servidor
Server
Client
Client
invocation
result
Serverinvocation
result
Process:Key:
Computer:
El modelo C/S es la arquitectura que se cita mas a menudo cuando se discuten sistemas distribuidos la fig. 2.2 muestra la sencilla estructura sobre lo que interaccionan los procesos clientes con los procesos servidores individuales, en computadoras separados , con el fin de acceder a los recursos compartidos que ellos gestionan.
Instituto Tecnológico de Tepic
Elementos de Construcción C/S
Instituto Tecnológico de Tepic
Middleware Servidor a Servidor
Los servidores a su vez puede ser clientes de otros servidores:
Ejemplo: un servidor web es a veces, un cliente de un servidor archivos local que gestiona los archivos que están almacenadas las paginas web.
Instituto Tecnológico de Tepic
Fig. 2.3 Servicios proporcionados por múltiples servidores
Server
Server
Server
Service
Client
Client
Los servicios pueden implementarse como distintos procesos de servidor en computadoras separados interaccionando, cuando es necesario, para proporcionar un servicio a los procesos clientes. Los servidores pueden dividirse un conjunto de objetos en los que está basado el servicio y distribuirselo entre ellos mismos, o pueden mantener copias replicadas de ellos en varias maquinas
Instituto Tecnológico de Tepic
Fig. 2.4 Un servidor proxy de tipo WEB
Client
Proxy
Web
server
Web
server
serverClient
Una caché es un almacén de objetos de datos utilizados recientemente, y que se encuentra más próximo que los objetos en sí. Al recibir un objeto nuevo en una computadora se añade al almacén de la caché, reemplazando, si fuera necesario, algunos objetos existentes. Las caches pueden estar ubicadas en cada cliente o en un servidor proxy que puede compartirse desde varios clientes.
Instituto Tecnológico de Tepic
Fig. 2.5 Una aplicación Distribuida basada en procesos de igual a igual
Coordination
Application
code
Coordination
Application
code
Coordination
Application
code
En esta arquitectura todos los procesos desempeñan tareas semejantes, interactuando cooperativamente como iguales para realizar una actividad distribuida o cómputo sin distinción entre clientes y servidores. En este modelo, el código en los procesos parejos o iguales mantiene la consistencia de los recursos y sincroniza las acciones a nivel de la aplicación cuando es necesario.
Instituto Tecnológico de Tepic
Fig. 2.6 Applets de tipo WEB
a) client request results in the downloading of applet code
Web server
ClientWeb serverApplet
Applet code
Client
b) client interacts with the applet
Instituto Tecnológico de Tepic
Fig. 2.7 Clientes ligeros y Servidores de Calculo
ThinClient
ApplicationProcess
Network computer or PCCompute server
network
Instituto Tecnológico de Tepic
Mantenimiento de la consistencia
Problema:concurrencia + separación
de actualización
de replicación
de cache
de fallo
de reloj
de interfaz de usuario
Tipos de
Consistencia
Instituto Tecnológico de Tepic
Mantenimiento de la consistencia
• Consistencia de actualización: Al modificar un conjunto de datos relacionados:
• no es posible hacerlos todos de forma instantánea• se necesita que para los demás procesos sean atómicos
Especialmente significativo en SD:• hay muchos usuarios accediendo a datos compartidos• afecta a información de sistema: directorios, nombres, ...
Consistencia de replicación: Inconsistencia entre copias de los mismos datos Réplicas actualizadas en órdenes distintos
Instituto Tecnológico de Tepic
Mantenimiento de la consistencia
Consistencia de cache: cache = conservación de datos en el cliente
• muy dependiente de la localidad de referencia• no afecta al diseño de los servidores
gran ahorro de comunicaciones en la red• además, datos utilizables por todos los procesos
clientes de una misma máquina
Si mismos datos retenidos en diferentes clientes:• Una actualización en uno no se “ve” en los demás• problema de los datos “rancios” (stale)• es un caso especial de la consistencia de replicación
Instituto Tecnológico de Tepic
Mantenimiento de la consistencia
Consistencia de fallo: Sistema centralizado: modo de fallo simple SD: modos de fallo múltiples
• si un componente falla, los otros pueden seguir• pero si estaban cooperando: resultado impredecible
Consistencia de reloj: En SD: uso intensivo de sellos temporales
• necesidad de sincronización: mediante mensajes• problema: el tiempo de un envío no es predecible• pero nos basta con ordenar eventos: relojes lógicos
Consistencia de interfaz de usuario: enmascaramiento de las operaciones remotas en
aplicaciones interactivasContenido