Sie sind auf Seite 1von 34

Sistemas Operativos Distribuidos

Introduccin

Contenido del tema

Definicin de sistema distribuido.


Ventajas y desventajas de los sistemas distribuidos.
Modelos de computacin distribuida.
Objetivos de un sistema distribuido.
Arquitectura software de los sistemas distribuidos.
Sistemas operativos distribuidos versus Middlewares.

Componentes de un sistema distribuido.

Sistemas Operativos Distribuidos


1

Mara S. Prez

Fernando Prez
Jos Mara Pea

Sistema distribuido (SD)


Conjunto de procesadores conectados por una red:
Sin memoria compartida
Sistema dbilmente acoplado

No existe un reloj comn


Dispositivos de E/S asociados a cada procesador
Fallos independientes de componentes del SD
Carcter heterogneo

Objetivo de la asignatura: Software de sistema del SD


Sistemas Operativos Distribuidos
Interfaz software que oculta la complejidad hardware de un SD
Idealmente, visin de sistema nico (Single System Image)

Trmino afn: Computacin distribuida


Ejecucin de una aplicacin en un SD
Sistemas Operativos Distribuidos
2

Mara S. Prez

Fernando Prez
Jos Mara Pea

Ventajas de los Sistemas Distribuidos


Economa: Buena relacin rendimiento/coste
Avances en tecnologa de microprocesadores y redes de rea local.

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:
Estndares de interoperabilidad.

Compartir recursos y datos.


Sistemas Operativos Distribuidos
3

Mara S. Prez

Fernando Prez
Jos Mara Pea

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.
Latencia puede provocar que al recibir un dato ya est obsoleto.
La red es un elemento crtico.

Seguridad y confidencialidad
Definicin alternativa de SD:
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 (Lamport)
Sistemas Operativos Distribuidos
4

Mara S. Prez

Fernando Prez
Jos Mara Pea

Fallacies of Distributed Computing

The network is reliable.


Latency is zero.
Bandwidth is infinite.
The network is secure.
Topology doesn't change.
There is one administrator.
Transport cost is zero.
The network is homogeneous.

7 primeras propuestas en 1994 por Peter Deusch (Sun)


Octava por James Gosling (Java/Sun) en 1996

Sistemas Operativos Distribuidos


5

Mara S. Prez

Fernando Prez
Jos Mara Pea

Aplicaciones de los Sistemas Distribuidos


Entornos empresariales: redes corporativas e intranets:
Sustituye a los clsicos mainframes.
Sistema de informacin distribuido

Entornos de computacin de altas prestaciones:

Procesamiento paralelo, alternativa a costosos supercomputadores.


Sistema de computacin distribuido

Servicios con alta disponibilidad y rendimiento.


Sistemas distribuidos de gestin de bases de datos
Aplicaciones multimedia.
Sistemas industriales distribuidos y aplicaciones de control.
Internet: un enorme sistema distribuido.
Ubicuos: automviles, electrodomsticos, edificios, ...

Sistemas Operativos Distribuidos


6

Mara S. Prez

Fernando Prez
Jos Mara Pea

Modelos de computacin distribuida

Cluster Computing
Utility Computing
Grid Computing
Volunteer Computing
Cloud Computing
Autonomic Computing
Mobile (Nomadic) Computing
Ubiquitous (Pervasive) Computing
Definiciones no excluyentes y, en algunos casos, sin acuerdo general

Sistemas Operativos Distribuidos


7

Mara S. Prez

Fernando Prez
Jos Mara Pea

Cluster Computing
SD dedicado a ejecutar una aplicacin buscando
Altas prestaciones y/o alta disponibilidad.
Puede servir varias aplicaciones mediante particin

Alternativa a supercomputadores con mejor calidad/precio


Caractersticas usuales:

Ms fuertemente acoplado que SD general


Poca dispersin geogrfica
Redes de alta velocidad
Sistema homogneos

Aunque puede usar sistemas heterogneos y virtualizacin

Carcter esttico
Uso habitual de componentes hardware estndar

Aspectos software ms relevantes:

Entorno para desarrollo de aplicaciones paralelas


Planificacin de trabajos

Sistemas Operativos Distribuidos


8

Mara S. Prez

Fernando Prez
Jos Mara Pea

Utility Computing

Computacin como otra empresa de servicio pblico

Alquiler de recursos computacionales externos


Demanda dinmica basada en necesidades puntuales

Define un modelo de trabajo ms que una plataforma

Aunque la solucin natural es algn tipo de SD

Sistemas de computacin grid o cloud

No es una idea nueva: John McCarthy (1961)

On-demand Computing

Computing may someday be organized as a public utility just as the


telephone system is a public utility.

Uso habitual de virtualizacin


Problema de la tarificacin

Sistemas Operativos Distribuidos


9

Mara S. Prez

Fernando Prez
Jos Mara Pea

Grid Computing
Acuado por Foster inspirado en power grid
Extensin de cluster computing a mayor escala:

Mquinas con mayor dispersin geogrfica


Menor grado de acoplamiento
Pueden extenderse a varios dominios de administracin
Desde interdepartamentales hasta intercorporativos

Grid = Cluster virtual sobre mquinas de varias organizaciones


Recursos no dedicados
Grid convive con SD de cada organizacin

Sistemas heterogneos (virtualizacin)


Sistemas dinmicos

Aspectos software relevantes:

Coordinar recursos de varias organizaciones sin un control central


Uso de estndares y sistemas abiertos
Seguridad

Sistemas Operativos Distribuidos


10

Mara S. Prez

Fernando Prez
Jos Mara Pea

Volunteer Computing

SD formado por recursos donados por usuarios a proyectos

Similar a computacin grid

Normalmente, ciclos de procesador y espacio de almacenamiento


Carcter altruista (Folding@home, SETI@home)
Dinmico, recursos no dedicados, dispersin geogrfica, ...

Pero con diferencias:

Implica individuos, no organizaciones


Asimetra de roles: usuario-proyecto

Simetra del grid: organizacin-organizacin

Mayores problema de seguridad

Usuarios annimos

Sistemas Operativos Distribuidos


11

Mara S. Prez

Fernando Prez
Jos Mara Pea

Cloud Computing
Recursos HW y/o SW ofrecidos como servicio (de pago?)
Recursos virtualizados y dinmicamente escalables
Siguiente etapa en la evolucin grid-utility basada en Internet
Cloud metfora frecuente de Internet

Modelos de uso:

Infrastructure as a Service (ej Amazon Elastic Compute Clouds, EC2)


Oferta dinmica de recursos HW virtuales segn necesite cliente

Platform as a Service (ej. Google App Engine)


Adems plataforma SW de desarrollo

Software as a Service (ej. Google Apps)


Adems aplicaciones de inters

Futura convergencia cloud y grid?


Debate sobre aspectos sociales

Un paso ms hacia la globalizacin? Mayor prdida de privacidad?

Sistemas Operativos Distribuidos


12

Mara S. Prez

Fernando Prez
Jos Mara Pea

Autonomic Computing
Sistemas cada vez ms complejos: necesidad de autogestin
Iniciativa de IBM aplicable especialmente a SD
Inspirado por sistema nervioso autnomo

4 reas funcionales:

Auto-configuracin
Auto-reparacin
Auto-optimizacin
Auto-proteccin

5 niveles evolutivos de implantacin:


Desde gestin manual de componentes aislados
Hasta gestin automatizada del sistema en su integridad
Uso de bucle de control cerrado (con realimentacin)
Sistemas Operativos Distribuidos
13

Mara S. Prez

Fernando Prez
Jos Mara Pea

Mobile Computing
SD incluye dispositivos porttiles con acceso remoto
Proliferacin de dispositivos porttiles y redes inalmbricas
Usuario accede a su organizacin mientras viaja

Aspectos a considerar

Limitaciones en los recursos del dispositivo


Control de consumo de energa del dispositivo
Ancho de banda variable
Modo desconectado
Usuario debe poder trabajar sin conexin
Al reconectarse, reconciliacin entre info. en dispositivo y en SD
Puede ser automtica o manual

Mayores amenazas a la seguridad y privacidad


Sistemas Operativos Distribuidos
14

Mara S. Prez

Fernando Prez
Jos Mara Pea

Ubiquitous Computing
Computadores omnipresentes incluidos en todo tipo de objetos
SD formado por los dispositivos de cmputo en un mbito
Aspectos a considerar

Sistema dinmico: componentes (des)aparecen y se mueven


Spontaneous Networking
Localizacin de dispositivos/usuarios
Wearable Computing
Context-aware Computing

Escenarios de ejemplo
Imprimir fotos al llegar a un hotel
Visita guiada a un museo
Sistemas Operativos Distribuidos
15

Mara S. Prez

Fernando Prez
Jos Mara Pea

Objetivos de un Sistema Distribuido

Transparencia
Rendimiento
Capacidad de crecimiento
Carcter abierto
Fiabilidad

Sistemas Operativos Distribuidos


16

Mara S. Prez

Fernando Prez
Jos Mara Pea

Transparencia
Existen varios perfiles de transparencia:

Acceso: Manera de acceder a recurso local igual que a remoto.


Posicin: Se accede a los recursos sin conocer su localizacin.
Migracin: Recursos pueden migrar sin afectar a los usuarios.
Concurrencia: Acceso concurrente no afecta a los usuarios.
Replicacin: La existencia de rplicas no afecta a los usuarios.
Fallos: La ocurrencia de fallos no afecta a los usuarios.
Crecimiento: El crecimiento del sistema no afecta a los usuarios.
Heterogeneidad:Carcter heterogneo no afecta a los usuarios.

No siempre se puede conseguir


Ni siempre es buena:

Diseadores de Java RMI consideran que la invocacin de mtodos


remota no debe ser exactamente igual que la local
A Note on Distributed Computing, Jim Waldo, 1994

Sistemas Operativos Distribuidos


17

Mara S. Prez

Fernando Prez
Jos Mara Pea

Rendimiento
Rendimiento para un servicio multiusuario:
Objetivo: Rendimiento no peor que un sistema centralizado

Rendimiento para la ejecucin paralela de aplicaciones:


Objetivo: Rendimiento proporcional a procesadores empleados

Factores:
Uso de esquemas de cach
Intentar que muchos accesos se hagan localmente

Uso de esquemas de replicacin


Reparto de carga entre componentes replicados

En ambos casos: Coste de mantener la coherencia


Sistemas Operativos Distribuidos
18

Mara S. Prez

Fernando Prez
Jos Mara Pea

Capacidad de crecimiento
Diseo de un sistema distribuido debe evitar cuellos de botella:
Componentes centralizados
Tablas centralizadas
Algoritmos centralizados

Estrategias:
Reparto de estructuras de datos entre varios nodos.
Replicacin y cach
Realizacin de parte del procesamiento en los nodos cliente.

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

Sistemas Operativos Distribuidos


19

Mara S. Prez

Fernando Prez
Jos Mara Pea

Carcter abierto

SD abierto: servicios, protocolos, etc. publicados y estndares


Facilita la interaccin con otros sistemas abiertos
Posibilita migracin de aplicaciones a/desde otros SD abiertos
Flexibilidad para cambiar y extender el SD
Esconde heterogeneidad de HW, SO, lenguajes, ...

Sistemas Operativos Distribuidos


20

Mara S. Prez

Fernando Prez
Jos Mara Pea

Fiabilidad

Tericamente: OR-lgico de sus componentes.


Sin embargo, a veces: AND-lgico de varios componentes.
Evitar componentes crticos (punto nico de fallo).
Uso de replicacin activa o pasiva
Mantenimiento de coherencia entre rplicas

Operacin correcta en sistema particionado por error de red


Reconciliacin al reintegrarse

Sistemas Operativos Distribuidos


21

Mara S. Prez

Fernando Prez
Jos Mara Pea

Software de sistema de los SD


SO para mquina con m. compartida no vlido para SD

SW fuertemente acoplado sobre HW fuertemente acoplado

Primeros sistemas: Sistemas Operativos de Red

Sistema operativo convencional + utilidades de red.


Protocolos de comunicacin para acceso a recursos.
Cada mquina una copia de SO (posiblemente distinto).
SW dbilmente acoplado sobre HW dbilmente acoplado

Software de sistema de SD debera hacer que:

usuarios lo perciban como sistema centralizado (single system view)


SW fuertemente acoplado sobre HW dbilmente acoplado

Dos arquitecturas software alternativas:


Sistemas Operativos Distribuidos
Middlewares

Sistemas Operativos Distribuidos


22

Mara S. Prez

Fernando Prez
Jos Mara Pea

Sistemas Operativos Distribuidos (SOD)


Una copia del mismo SO en cada procesador
Necesidad de desarrollar nuevos conceptos
Algunos ejemplos de esta problemtica especfica:
Cmo lograr exclusin mutua sin memoria compartida?
Cmo tratar los interbloqueos sin un estado global?
Planificacin de procesos: Cada copia del sistema operativo tiene su
cola de planificacin (migracin de procesos).
Cmo crear un rbol de ficheros nico?
Implicaciones de no reloj nico, presencia de fallos o heterogeneidad.

SOD revolucin: tiramos a la basura nuestros SSOO viejos?


Mejor evolucin: middleware.
Sistemas Operativos Distribuidos
23

Mara S. Prez

Fernando Prez
Jos Mara Pea

Middleware
Middleware:
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).

Sistemas Operativos Distribuidos


24

Mara S. Prez

Fernando Prez
Jos Mara Pea

SOD versus Middleware

SOD
Hardware

Hardware

Hardware

Middleware
SO

SO

SO

Hardware

Hardware

Hardware

Sistemas Operativos Distribuidos


25

Mara S. Prez

Fernando Prez
Jos Mara Pea

Componentes de un Sistema Distribuido


Componentes = Temario

Servicios de comunicacin.
Servicio de nombres.
Sistemas de ficheros distribuidos.
Gestin de procesos.
Memoria compartida distribuida.
Servicios de sincronizacin y coordinacin.
Servicio de tolerancia a fallos y seguridad.

Sistemas Operativos Distribuidos


26

Mara S. Prez

Fernando Prez
Jos Mara Pea

Servicios de comunicacin
Arquitecturas de comunicacin:

Cliente/servidor
Editor/subscriptor
Peer-to-peer
Arquitecturas para computacin distribuida (p.e. maestro/trabajador)

Tecnologas de comunicacin:

Paso de mensajes (sockets)


Llamada a procedimientos remotos (RPC).
Invocacin de mtodos remotos (RMI).
Tecnologas de objetos distribuidos (CORBA).
Servicios web.
Arquitecturas orientadas a servicios (SOA).

Sistemas Operativos Distribuidos


27

Mara S. Prez

Fernando Prez
Jos Mara Pea

Servicio de nombres

Composicin del espacio de nombres


Distribucin y replicacin del espacio de nombres
DNS
Servicio de directorio
LDAP
Servicio de descubrimiento

Sistemas Operativos Distribuidos


28

Mara S. Prez

Fernando Prez
Jos Mara Pea

Sistemas de Ficheros Distribuidos

Estructura de un SFD
Resolucin de nombres
Acceso a los datos
Gestin de cache
Gestin de cerrojos
NFS, AFS y Coda
Sistemas de ficheros paralelos

Sistemas Operativos Distribuidos


29

Mara S. Prez

Fernando Prez
Jos Mara Pea

Gestin de procesos
Caracterizacin de la carga:
Consumo de CPU.
Consumo de otros recursos (Memoria)
Prioridades.

Estrategias de asignacin de procesadores a procesos:


Cundo, cul y a dnde.

Planificacin de procesos:
Planificacin interna.
Planificacin global.

Migracin de procesos
Equilibrado de carga.
Aprovechamiento de mquinas inactivas.
Sistemas Operativos Distribuidos
30

Mara S. Prez

Fernando Prez
Jos Mara Pea

Memoria Compartida Distribuida (DSM)


Concepto:
Memoria fsicamente privada pero lgicamente compartida.

Estrategias de implementacin:
Basada en pginas.
Basada en variables compartidas.

Aspectos de diseo de DSM


Modelos de coherencia
DSM basada en espacios de tuplas

Sistemas Operativos Distribuidos


31

Mara S. Prez

Fernando Prez
Jos Mara Pea

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, consenso, ...
Transacciones: Propiedades ACID, modelos de commit/rollback.

Afecta a otros servicios:

Nombrado e identificacin.
Seguridad y fiabilidad.
Comunicaciones.
...

Sistemas Operativos Distribuidos


32

Mara S. Prez

Fernando Prez
Jos Mara Pea

Tolerancia a Fallos y Seguridad


Tolerancia a fallos

Replicacin de datos y de servicios


Mantenimiento de coherencia entre rplicas

Tipologa de los ataques a la seguridad:


Privacidad y confidencialidad.
Autenticacin (spoofing).
Denegacin de servicio.

Modelos y herramientas de seguridad:

Cifrado: clave pblica (RSA) y privada (DES).


Protocolos de seguridad: IPsec, SSL.
Certificados y firmas digitales: X.509.
Elementos de seguridad: Cortafuegos.

Entornos de seguridad: p. ej. Kerberos.


Sistemas Operativos Distribuidos
33

Mara S. Prez

Fernando Prez
Jos Mara Pea

Das könnte Ihnen auch gefallen