Вы находитесь на странице: 1из 37

INSTITUTO TECNOLGICO SUPERIOR DE LOS ROS

SISTEMAS DISTRIBUIDOS

M.C Edna Mariel Mil Chontal

Unidad 1 Caracterizacin de los Sistemas Distribuidos

SISTEMA DISTRIBUIDO (SD)

Un sistema distribuido consiste en una coleccin de computadoras autnomas enlazadas por una red y equipadas con un sistema de software distribuido. [Tanenbaum, 1995].

SISTEMA DISTRIBUIDO (SD)


Caractersticas de los SD: Nivel fsico: Conjunto de nodos(procesadores sin memoria ni reloj comn) conectados por una red. Nivel logico: Conjunto de procesos que ejecutan concurrentemente en una o mas computadoras que colaboran y comunican intercambiando mensajes.

Sistema dbilmente acoplado No existe un reloj comn Dispositivos de E/S asociados a cada procesador Fallos independientes de componentes del SD Carcter heterogneo Concurrencia: Esta caracterstica de los sistemas distribuidos permite que los recursos disponibles en la red puedan ser utilizados simultneamente por los usuarios y/o agentes que interactan en la red.

SISTEMA DISTRIBUIDO

El objetivo primordial de los sistemas distribuidos es el compartimiento fcil y eficiente de los recursos entre mltiples usuarios.

Recurso: Se extiende desde los componentes hardware como los discos y las impresoras hasta las entidades de software definidas como archivos, bases de datos y objetos de datos de todos los tipos.

SISTEMA DISTRIBUIDO HETEROGNEO


Un sistema distribuido puede estar formado por multitud de elementos conectados por redes LAN o WAN:

Terminales X y Network Computers. PCs y estaciones de trabajo. Sistemas porttiles (redes mviles: GSM, WAP, ...). Minicomputadores. Supercomputadores. Multiprocesadores con memoria compartida. Servidores especializados (de almacenamiento, de impresin, ...). Sistemas empotrados (una cmara, un frigorfico, ...).

VENTAJAS DE LOS SISTEMAS DISTRIBUIDOS

Economa: Buena relacin rendimiento/coste

Es mucho ms barato aadir servidores y clientes cuando se requiere aumentar la potencia de procesamiento.

Alto rendimiento: Procesamiento paralelo. Soporte de aplicaciones inherentemente distribuidas.

Por ejemplo: empresa distribuida geogrficamente

Capacidad de crecimiento: Escalabilidad. Fiabilidad y disponibilidad: Tolerancia a fallos. Carcter abierto y heterogneo: Compartir recursos y datos.

DESVENTAJAS DE LOS SISTEMAS DISTRIBUIDOS

Necesidad de un nuevo tipo de software:


Ms complejo. No hay todava un acuerdo sobre cmo debe ser.

Red de interconexin introduce nuevos problemas:


Prdida de mensajes y saturacin en el trfico. Latencia puede provocar que al recibir un dato ya est obsoleto. La red es un elemento crtico.

Seguridad y confidencialidad

APLICACIONES

Una red de computadoras con una pila de procesadores Una aerolnea Fbrica de robots Un banco con sucursales Internet Multimedia y conferencias .

OBJETIVOS DE UN SISTEMA DISTRIBUIDO


En general el desarrollo de sistemas distribuidos intenta poner solucin a los siguientes objetivos: Heterogeneidad. Transparencia. Seguridad. Escalabilidad. Tratamiento a fallos. Desafios u objetivos

HETEROGENEIDAD

La interconexin, sobre todo cuando se usa Internet, se da sobre una gran variedad de elementos hardware y software, por lo cual necesitan de ciertos estndares que permitan esta comunicacin.

TRANSPARENCIA
Es la ocultacin al usuario y al programador de aplicaciones de la separacin de los componentes en un sistema distribuido. Se identifican 8 formas de transparencia:

Acceso: Permite acceder a los recursos locales y remotos empleando operaciones idnticas. Posicin: Se accede a los recursos sin conocer su localizacin, ie. esconde la ubicacin fsica de donde est situado un recurso.
Migracin: Los recursos pueden migrar sin afectar a los usuarios.

TRANSPARENCIA

Concurrencia:
Permite que los recursos disponibles en la red puedan ser utilizados simultneamente por los usuarios y/o agentes que interactan en la red.

El acceso concurrente no afecta a los usuarios. Esconde el hecho de que distintos usuarios estn compitiendo en paralelo por acceder o usar recursos, o que un recurso est siendo compartido con otros usuarios

Replicacin: Permite replicar los recursos sin que los usuarios y los programadores necesiten su conocimiento. La existencia de rplicas no afecta a los usuarios. Mejora el rendimiento y/o disponibilidad.

TRANSPARENCIA

Frente a fallos:
Permite ocultar fallos. La ocurrencia de fallos no afecta a los usuarios. Si un componente del sistema falla, otro componente debe ser capaz de reemplazarlo.

Crecimiento:
Permite al sistema y a las aplicaciones expandirse en tamao sin cambiar la estructura del sistema o los algoritmos de aplicacin. El crecimiento del sistema no afecta a los usuarios.

TRANSPARENCIA
Heterogeneidad: Carcter heterogneo no afecta a los usuarios.

SEGURIDAD
Reviste gran importancia por el valor intrnseco para los usuarios. Tiene tres componentes:

Confidencialidad.- Proteccin contra individuos no autorizados. Integridad.- Proteccin contra la alteracin o corrupcin. Disponibilidad.- Proteccin contra la interferencia con los procedimientos de acceso a los recursos.

ESCALABILIDAD
El sistema es escalable si conserva su efectividad al ocurrir un incremento considerable en el nmero de recursos y en el nmero de usuarios. Diseo de un sistema distribuido debe evitar cuellos de botella:

Componentes centralizados Tablas centralizadas Algoritmos centralizados

Caractersticas deseables en un algoritmo distribuido:


Ninguna mquina tiene informacin completa del estado del sistema Las decisiones se basan slo en informacin disponible localmente El fallo de una mquina no debe invalidar el algoritmo No debe asumir la existencia de un reloj global

TRATAMIENTO A FALLOS
La posibilidad que tiene el sistema para seguir funcionando ante fallos de algn componente en forma independiente. Para esto se tiene que tener alguna alternativa de solucin. Tcnicas para tratar fallos:

Deteccin de fallos. Algunos fallos son detectables, por ejemplo, usando comprobaciones. Enmascaramiento de fallos. Algunos fallos detectados pueden ocultarse o atenuarse. Tolerancia de fallos. Sobre todo en Internet se dan muchos fallos y no es muy conveniente ocultarlos, es mejor tolerarlos y continuar. Ej: Tiempo de vida de una bsqueda. Recuperacin frente a fallos. Tras un fallo se deber tener la capacidad de volver a un estado anterior. Redundancia. Se puede usar para tolerar ciertos fallos (DNS, BD, etc.)

Sistemas Operativos Distribuidos (SOD)


Definicin de SOD:

Un sistema operativo distribuido se ejecuta sobre un sistema distribuido haciendo creer a los usuarios que se trata de un sistema centralizado.

single system view o uniprocesador virtual (Los usuarios no deben darse cuenta de la existencia de varios CPU en el sistema.)

Consigue que usuarios y aplicaciones crean que trabajan con una nica mquina (Single System
Image).

Conceptos de Hardware

Sistema fuertemente acoplado. El retraso que se experimenta el enviar un mensaje de una computadora a otra es corto y la tasa de transmisin de los datos (nmero de bits por segundo que se pueden transferir) es alta. Sistema dbilmente acoplado. El retraso es grande y la tasa de transmisin es baja. Los sistemas fuertemente acoplados tienden a utilizarse ms como sistemas paralelos. Los sistemas dbilmente acoplados tienden a utilizarse como sistemas distribuidos.

Conceptos de Software
En un sistema distribuido el software es ms importantes que el hardware, pues la imagen y la forma d pensar de los usuarios la determina el software del sistema operativo. Es posible distinguir dos tipos de sistemas operativos para multiprocesadores o multicomputadoras:

Software dbilmente acoplado. Permite que las mquinas y los usuarios en un sistema distribuido sean independientes entre s en lo fundamental, pero que interacten cuando sea necesario. Software fuertemente acoplado. Las mquinas interactan entre s (y los usuarios) para llevar a cabo las tareas en forma conjunta.

Clasificacin de los Sistemas Operativos

Sistemas operativos para multiprocesadores con memoria compartida (SMP):


Software fuertemente acoplado sobre Hardware fuertemente acoplado

Sistema operativo de red:


Software dbilmente acoplado sobre Hardware dbilmente acoplado

Sistema operativo distribuido (SOD):


Software fuertemente acoplado sobre Hardware dbilmente acoplado

Sistemas Operativos Distribuidos (SOD)


Amoeba Mach Chorus Clouds Plan9 Mosix OpenMosix Bproc DragonFly BSD Genesis Kerrighed OpenSSI, Plurix .

Sistemas Operativos para SMPs


Arquitecturas de varios procesadores con memoria compartida de acceso uniforme.
Caractersticas: Ligeras variaciones sobre versiones tradicionales. Slo hay una copia del sistema operativo. Concurrencia se traduce en paralelismo real. Comercialmente aceptados (Linux, WinNT, Solaris, AIX, ...). Plantea retos para: la ejecucin del ncleo en varios procesadores (llamadas al sistema concurrentes) , los mecanismos de sincronizacin (spin-locks), optimizacin y planificacin (afinidad al procesador), ...

Sistemas Operativos de Red


Definicin: Red de computadoras dbilmente acopladas en las que no existe un control externo directo sobre el hardware/software de cada computadora para la comparticin de recursos.
Caractersticas: No dan la visin de uniprocesador virtual (mquinas independientes). Cada una ejecuta una copia de sistema operativo (posiblemente distinto). Sistema operativo convencional + utilidades de red. Protocolos de comunicacin para intercambio de recursos y acceso a servicios de alto nivel.

Sistemas Operativos de Red

El usuario ve un conjunto de mquinas independientes

No hay transparencia

Se debe acceder de forma explcita a los recursos de otras mquinas Difciles de utilizar para desarrollar aplicaciones distribuidas
Aplicaciones Aplicaciones Lenguajes de programacin Sistema operativo Hardware Red de interconexin

Lenguajes de programacin Sistema operativo Hardware

Sistemas Operativos Distribuidos (SOD)

Una copia del SO en cada procesador


Un SD pretende que el SO coordine por completo todos los recursos de todos los nodos independientes de forma conjunta, dando el aspecto exterior de un sistema convencional de un nico procesador. Implicaciones de la falta de reloj nico, la presencia de fallos o la heterogeneidad.

Sistemas Operativos Distribuidos (SOD)

Se comporta como un SO nico (visin nica)

Distribucin. Transparencia

Se construyen normalmente como microncleos que ofrecen servicios bsicos de comunicacin.

Mach, Amoeba, Chorus.

Todos los computadores deben ejecutar el mismo SOD.


Aplicaciones Lenguajes de programacin Sistema operativo distribuido Hardware Red de interconexin Hardware

Middleware

Capa de software que se ejecuta sobre el sistema operativo local ofreciendo unos servicios distribuidos estandarizados. Es un entorno que ofrece una serie de servicios y protocolos estandarizados que facilitan el desarrollo de aplicaciones distribuidas. Sistema abierto independiente del fabricante. No depende del hardware y sistema operativo subyacente. Integra total heterogeneidad.

Middleware

Enmascara la complejidad del sistema tanto para los usuarios finales como para los desarrolladores de las aplicaciones, proporcionando el acceso transparente a los servicios que se encuentran a travs de los recursos del sistema.

Middleware

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. DCE, CORBA, DCOM, Legion, Globe, Globus
Aplicaciones Lenguajes de programacin Middleware Sistema operativo Hardware Red de interconexin Sistema operativo Hardware

Componentes de un sistema Distribuidos


El desarrollo de un sistema distribuido complejo requiere el uso de las siguientes funciones y servicios:
1. 2. 3. 4. 5. 6. 7.

Servicios de comunicacin. Sistemas de archivos. Servicio de nombres. Servicios de sincronizacin y coordinacin. Memoria compartida distribuida. Gestin de procesos. Servicio de seguridad.

Servicios de comunicacin

Modelos de interaccin:

Cliente/servidor (2-niveles, 3-niveles o n-niveles) Peer-to-peer: Equilibrio de roles. Intermediarios: Proxy, Dispacher, Caches, ... Comunicacin en grupo (Multicast) Cdigo mvil.

Tecnologas de comunicacin:

Paso de mensajes: sockets. Llamada a procedimientos remotos (RPC). Invocacin de mtodos remotos (RMI). Tecnologas de objetos distribuidos: CORBA, DCOM, EJB Servicios Web.

Sistemas de Archivos Distribuidos

Sistema de archivos para sistema distribuido. Gestiona distintos dispositivos en diferentes nodos ofreciendo a usuarios la misma visin que un SA centralizado. Permite que usuarios compartan informacin de forma transparente. Caching y replicacin.

Servicio de nombres
Identificacin y localizacin de recursos en el entorno distribuido.

Comprende:

Servicio de nombres (pginas blancas): DNS, COSNaming (CORBA). Servicio de directorio (pginas amarillas): X.500, LDAP, Active Directory de Windows, UDDI (Web Services).

Arquitectura de los servicios.

Almacenamiento intermedio: caching. Replicacin y coherencia.

Servicios de Sincronizacin y Coordinacin

Comprende los conceptos de:


Tiempo en entornos distribuidos: Sincronizacin de relojes y relojes lgicos. Concurrencia y Paralelismo: Exclusin mutua e interbloqueos. Algoritmos distribuidos: Eleccin de lder, coordinacin, ... Transacciones: Propiedades ACID, modelos de commit/rollback. Nombrado e identificacin. Seguridad y fiabilidad. Comunicaciones.

Afecta a otros servicios:


Ejercicio Para entregar en la libreta


Realizar una sntesis de los siguientes temas:

Sistemas Distribuidos. Caractersticas. Ventajas de los sistemas distribuidos con respecto a sistemas centralizados. Desventajas de los sistemas distribuidos. Aplicaciones de los sistemas distribuidos. Conceptos de Hardware (Sistema fuertemente acoplado y dbilmente acoplado ). Conceptos de Software (software fuertemente acoplado y dbilmente acoplado). Clasificacin de los S.O.D. Sistemas operativos para SMP. Sistemas Operativos de Red Sistemas Operativos Distribuidos Middleware Componentes de un Sistema Distribuido