Está en la página 1de 6

Objetivos del curso

Sistemas Distribuidos

Presentar una visin global del estado del arte y los aspectos ms
novedosos del diseo y construccin de sistemas distribuidos.
Desarrollar ejemplos prcticos que permitan consolidar los
conceptos tericos.

Flix Garca Carballeria

Sistemas Distribuidos

Flix Garca Carballeira (1999)

Contenido

Contenido

Introduccin
Caractersticas de los sistemas distribuidos. Modelos
Objetivos y problemas de diseo
Ejemplos de sistemas distribuidos
Redes e interconexin
Conceptos y propiedades de los sistemas de comunicacin
Tipos de dispositivos de comunicacin y tendencias futuras
Protocolos de comunicacin. Rendimiento y fiabilidad
Comunicacin en sistemas distribuidos
Mecanismos bsicos de comunicacin entre procesos
Modelo cliente/servidor y comunicacin en grupos
Colas de Mensajes POSIX. Sockets en Unix y Java
Llamadas a procedimientos remotos (RPC)
Entornos orientados a objetos. CORBA, RMI
Comunicacin en aplicaciones paralelas. MPI

Sistemas operativos distribuidos


Sistemas operativos en red y distribuidos
Objetivos y aspectos de diseo
Asignacin de procesadores y algoritmos de reparto de carga
Middlewares
Ejemplos
Sistemas de ficheros distribuidos
Conceptos bsicos y estructura
Servicio de directorio
Servicio de ficheros
Implementacin. Semntica de coutilizacin, mtodos de
acceso, cache, coherencia de cache
Incremento de prestaciones. Paralelismo
Ejemplos

Sistemas Distribuidos

Sistemas Distribuidos

Flix Garca Carballeira (1999)

Contenido

Contenido

Memoria global distribuida


Conceptos bsicos
Modelos de consistencia
Aspectos de implementacin
Ejemplos
Sincronizacin y coordinacin distribuida
Mecanismos de sincronizacin entre procesos
Modelos de sistemas distribuidos
Relojes lgicos, relojes vectoriales
Entrega causal. Estados globales consistentes
Sincronizacin de relojes fsicos
Exclusin mutua distribuida y algoritmos de eleccin

Fiabilidad en sistemas distribuidos


Distintos aspectos de la fiabilidad
Replicacin
Protocolos de consenso
Comunicacin en grupos
Compromiso distribuido
Transacciones
Seguridad
Requisitos de seguridad
Mtodos para conseguir seguridad
Cifrado. Firmas digitales
Autenticacin
Kerberos
Cortafuegos

Sistemas Distribuidos

Sistemas Distribuidos

Flix Garca Carballeira (1999)

Flix Garca Carballeira (1999)

Flix Garca Carballeira (1999)

Contenido

Bibliografa

Diseo de aplicaciones distribuidas


Elementos de una aplicacin distribuida
Diseo de aplicaciones cliente/servidor
Uso de WWW en el diseo de aplicaciones distribuidas
Herramientas para construir aplicaciones distribuidas
Web, Java, CORBA, JDBC, ...

Trabajos prcticos
Desarrollo y evaluacin de pequeas aplicaciones
distribuidas utilizando diferentes esquemas
Estudio de aspectos relacionados con los sistemas
distribuidos

Sistemas Distribuidos

Flix Garca Carballeira (1999)

Distributed Systems. Concepts and Design. 2 edicin


G. Coulouris, J. Dollimore, T. Kindberg.
Addison-Wesley, 1994
http://www.dcs.qmw.ac.uk/research/distrib/book.html
Building Secure and Reliable Network Applications
K. P. Birman
Manning Publications Co., 1996
Distributed Operating Systems
A. S. Tanenbaum
Prentice-Hall, 1995

Sistemas Distribuidos

Bibliografa

Flix Garca Carballeira (1999)

Revistas

Distributed Systems. 2 edicin


S. Mullender (Editor)
Addison-Wesley, 1993
Client/Server Computing for Technical Professionals. Conpcets
and Soltuions.
J. M. Hart, B. Rosenberg
Addison-Wesley, 1995

IEEE Concurrency, Parallel, Distributed and Mobile Computig


Journal of Parallel and Distributed Computing
Distributed Computing
Communications of the ACM
IEEE Computer
ACM Computing Surveys

Client/Server Programming with Java and Corba (2 ed.)


R. Orfali, D. Harkey
Wiley Computer Publishing, 1998
Cursos sobre sistemas distribuidos y paralelos
http://joda.cis.temple.edu/courses-para.html
Sistemas Distribuidos

Flix Garca Carballeira (1999)

Sistemas Distribuidos

Flix Garca Carballeira (1999)

Contenido

Introduccin

Introduccin y conceptos previos


Ejemplos de aplicaciones distribuidas
Caractersticas de los sistemas distribuidos
Desventajas
Sistemas paralelos
Principales aspectos de diseo

Sistemas Distribuidos

11

Flix Garca Carballeira (1999)

Evolucin de la informtica
En los 70
Mainframes centrales
Sistemas de tiempo compartido
Recursos centralizados

Interfaces de usuario poco amigables


Aparecen las primeras redes
En los 80:
PCs y estaciones de trabajo
Interfaces amigables
Redes de rea local
Aparecen los primeros sistemas operativos distribuidos

Evolucin de la informtica
En los 90:
Despegue de las aplicaciones cliente/servidor
Mas descentralizacin
Enorme difusin de internet gracias al Web
Nuevas necesidades y aplicaciones basadas en el Web

Comercio electrnico
Multimedia
Sistemas de control
Aplicaciones mdicas

Mach, Sprite, Chorus, ...


Sistemas Distribuidos

12

Flix Garca Carballeira (1999)

Sistemas Distribuidos

Conceptos previos

14

Flix Garca Carballeira (1999)

Un sistema distribuido es aqul en el que no puedes trabajar


con tu mquina por el fallo de otra mquina que ni siquiera
sabas que exista
-Leslie Lamport

Sistemas Distribuidos

Modelos de sistemas distribuidos

PC

Red de rea
local

1s
Flix Garca Carballeira (1999)

Flix Garca Carballeira (1999)

Workstations

Conexin al
exterior

16

15

Ejemplos: red de rea local

Sistema distribuido asncrono:


Tiempo de entrega de un mensaje no est acotado.
Relojes no sincronizados.
Sistema distribuido sncrono:
Tiempo de entrega de un mensaje est acotado.
Desviacin de los relojes acotada.
Ventaja: se pueden utilizar el esquema de timeout para
detectar fallos o prdidas de mensajes.

Sistemas Distribuidos

Flix Garca Carballeira (1999)

Otras definiciones

Un programa es un conjunto de instrucciones.


Un proceso es un programa en ejecucin.
Una red de computadores es un conjunto de computadores
concectados por una red de interconexin.
Un sistema distribuido (SD)
Modelo fsico: conjunto de nodos (procesadores sin memoria
ni reloj comn) conectados por una red.
Modelo lgico: conjunto de procesos que ejecutan
concurrentemente en uno o ms computadores que colaboran
y comunican intercambiando mensajes.
Un protocolo es un conjunto de reglas e instrucciones que
gobiernan la comunicacin en un sistema distribuido, es decir,
el intercambio de mensajes.
Sistemas Distribuidos

13

Sistemas Distribuidos

Servidores de
ficheros

Otros servidores
(impresin,...)

17

Flix Garca Carballeira (1999)

Ejemplos de aplicaciones distribuidas

Caractersticas de los SD

Correo electrnico, transferencia de ficheros


Servicios de News
World Wibe Web
Sistemas de control de trfico reo
Aplicaciones bancarias
Comercio electrnico
Aplicaciones multimedia (vdeoconferencias, video bajo
demanda , etc.)
El ancho de banda en estas aplicaciones es un orden de
magnitud mayor que en otras
Aplicaciones mdicas (transferencia de imgenes)

Compartir recursos (HW, SW, datos).


Acceso a recursos remotos.

Sistemas Distribuidos

Sistemas Distribuidos

18

Flix Garca Carballeira (1999)

Modelo cliente-servidor
Modelo basado en objetos

Ofrecen una buena relacin coste/rendimiento


Capacidad de crecimiento
Tolerancia a fallos, disponibilidad
Replicacin
Concurrencia
Velocidad
Paralelismo

Caractersticas de los SD
Sistemas abiertos
Se caracterizan por emplear unas interfaces pblicas
estandarizadas.
Pueden construirse sobre HW y SW heterogneo de
diferentes vendedores.
Independiente de los vendedores.
Puede extenderse facilmente:
Hardware: nuevos computadores
Sosftware: nuevos servicios

Transparencia
Un SD se percibe como un sistema nico, no como un
conjunto de componenetes independientes
Sistemas Distribuidos

20

Flix Garca Carballeira (1999)

Desventajas de los sistemas distribuidos

19

Flix Garca Carballeira (1999)

Transparencia
Acceso: acceso a recursos remotos y locales de igual forma
Posicin: acceso a los recursos sin necesidad de conocer su
situacin
Concurrencia: acceso concurrente a recursos compartidos sin
interferencias
Replicacin: Acceso a recursos replicados sin conocimiento de
que lo son
Fallos: mantenimiento del servicio en presencia de fallos.
Migracin: permite que los recursos y objetos se muevan sin
afectar a la operacin de los programas.
Capacidad de crecimiento: facilidad para crecer sin afectar a la
estructura del sistema
Sistemas Distribuidos

21

Flix Garca Carballeira (1999)

Sistemas distribuidos y paralelos


Sistemas distribuidos
Objetivo: compartir recursos y colaborar.
Redes de computadores
Sistemas paralelos
Objetivo: ejecutar un programa muy rpido (speedup).
Mquinas paralelas (arquitecturas dedicadas)

Interconexin
Coste
Fiabilidad, prdida de mensajes
Saturacin
Comunicaciones inseguras
Software ms complejo
Potencia de cada nodo no adecuada

Multiprocesadores
Multicomputadores

Redes de estaciones de trabajo trabajando como un


multicomputador (cluster)

Sistemas Distribuidos

22

Flix Garca Carballeira (1999)

Sistemas Distribuidos

23

Flix Garca Carballeira (1999)

Objetivos de diseo

Problemas de diseo

Rendimiento
Capacidad de crecimiento
Transparencia
Consistencia
Fiabilidad:
Tolerancia a fallos
Disponibilidad
Recuperacin
Consistencia
Seguridad
Confidencialidad
Rendimiento predecible, calidad de servicio

Sistemas Distribuidos

24

Nombrado
Comunicacin y sincronizacin entre procesos
Estructura software
Reparto de la carga
Coherencia
Calidad de servicio
Rendimiento
Fiabilidad

Flix Garca Carballeira (1999)

Nombrado

26

25

Flix Garca Carballeira (1999)

Comunicacin y sincronizacin (C y S)

Los usuarios designan a los objetos mediante un nombre.


Los programas designan a los objetos mediante un
identificador.
Resolver un nombre implica obtener el identificador a partir del
nombre.
Objetivo importante: nombres independientes de la posicin
Consideraciones de diseo a tener en cuenta:
El espacio de nombres (tamao, estructura, jerarqua, ...)
El servicio de nombres que realiza la resolucin

Sistemas Distribuidos

Sistemas Distribuidos

Flix Garca Carballeira (1999)

Forma bsica de C y S: paso de mensajes.


Mecanismos sncronos
Mecanismos asncronos
Comunicacin cliente-servidor
Primitivas de comunicacin bsicas (send, receive)
Llamadas a procedimientos remotos
Invocacin de objetos remotos
Comunicacin en grupos
Multicast, broadcast
til para localizar un objeto, tolerancia a fallos, mejorar el
rendimiento (replicacin), asegurar consistencia
Sistemas Distribuidos

Estructura software

27

Flix Garca Carballeira (1999)

Estructura software

Estructura software tpica de un sistema centralizado

A plicaciones
Lenguajes de prog ram ac i n
Sistem a operativo
H ardw are

Existen tres posibilidades para estructurar el software de un


sistema distribuido
Emplear sistemas operativos en red
Utilizar un sistema operativo distribuido
Utilizar middlewares o entornos distribuidos
Lo importante es ofrecer un soporte para la programacin de
aplicaciones distribuidas fcil y transparente

El sistema operativo
Gestiona los recursos
Ofrece servicios

Sistemas Distribuidos

28

Flix Garca Carballeira (1999)

Sistemas Distribuidos

29

Flix Garca Carballeira (1999)

Sistema operativo en red (SOR)


Ap licaciones

Ap licaciones

Lenguajes de program acin

Lenguajes de program acin

Sistem a op erativo

Sistem a op erativo

Hardw are

Sistema operativo distribuido (SOD)


Aplicaciones
Lenguajes de programacin
Sistema operativo distribuido
Hardware

Hardw are
Red d e interconexin

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
Sistemas Distribuidos

30

Hardware
Red de interconexin

Flix Garca Carballeira (1999)

Se comporta como un SO nico


Distribucin. Transparencia
Se construyen normalmente como microncleos que ofrecen
servicios bsicos de comunicacin
Mach, Amoeba, Chorus.
Todos los computadores deben ejecutar el mismo SOD
Sistemas Distribuidos

Middleware y entornos distribuidos

31

Flix Garca Carballeira (1999)

Reparto de la carga

Aplicaciones
Lenguajes de programacin
Middleware
Sistem a operativo

Sistem a operativo

Hardware

Hardware

Cmo se asigna memoria y procesador a las aplicaciones?


Modelos:
Estaciones de trabajo: modelo tpico
Modelo del pool de procesadores (Amoeba)
Permiten paralelismo a lo usuarios

Red de interconexin

Uso de una estacin de trabajo libre


Servicios y protocolos estndarizados: 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
Sistemas Distribuidos

32

Flix Garca Carballeira (1999)

Sistemas Distribuidos

Asegurar la coherencia
El problema de la coherencia surge cuando varios procesos
acceden y actualizan datos de forma concurrente
Coherencia de las actualizaciones
Coherencia de la replicacin
Coherencia de caches
Coherencia ante fallos
Relojes consistentes

33

Flix Garca Carballeira (1999)

Calidad de servicio
Rendimiento
Tiempo de respuesta adecuado
El rendimiento viene determinado por

La red de comunicacin
Los servicios de comunicacin empleados
El sistema operativo
El soporte para la programacin de sistemas distribuidos

Fiabilidad
Disponibilidad
Consistencia
Seguridad
Confidencialidad
Sistemas Distribuidos

34

Flix Garca Carballeira (1999)

Sistemas Distribuidos

35

Flix Garca Carballeira (1999)

También podría gustarte