SD S1 PresentacionCurso PDF

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 33

Sistemas Distribuidos

Presentación del curso

Fuente: Universidad Politécnica de Madrid – Fernando Pérez Costoya / José María Peña Sánchez
Índice del Curso

Índice de Temas
• Introducción y conceptos
• Comunicación en Sistemas Tecnologías

Entornos Distribuidos
distribuidos

Casos de Estudio
•RPC
• Middlewares Orientados a
Mensajes
•CORBA
•DCOM

y
• Middlewares Orientadas a
Servicios: Servicios Web. •Java:
• Otras tecnologías de Sistemas •JNDI
Distribuidos. •RMI

Sistemas Distribuidos
1
Sistemas Distribuidos

Introducción y
Conceptos
Contenidos del Tema

• Evolución de los Sistemas Distribuidos:


– Definición de Sistema Centralizado.
– Definición de Sistema Distribuido.
• Ventajas y desventajas de los Sistemas Distribuidos.
• Sistemas Operativos Distribuidos.
• Sistemas Operativos de Red.
• Middlewares.
• Objetivos de un Sistema Distribuido.
• Componentes de un Sistema Distribuido.

Sistemas Distribuidos
3
Arquitectura de Sistemas Centralizados

• Único computador (caro y de gran potencia) con terminales


alfanuméricos directamente conectados.
• Entornos de empresa:
– Soporte multiusuario
– Uso de Mainframes o Minicomputadores
• Entornos científicos:
– Ejecución eficiente de aplicaciones
– Uso de Supercomputadores
• Uso ocasional de la red:
– Transferir archivos o logins remotos
• Interfaz de usuario poco amigable
– Interfaces gráficas gastan muchos recursos
Sistemas Distribuidos
4
Arquitectura de Sistemas Distribuidos

• Conjunto de procesadores conectados por una red


• Cada usuario tiene capacidad de procesamiento local que
permite interfaces de usuario sofisticadas.
• Uso intensivo de la red para compartir recursos:
– dispositivos
– datos
– procesadores (migración de procesos)
• Capacidad global de procesamiento disponible para:
– Servicio a múltiples usuarios
– Ejecución paralela de una aplicación

Sistemas Distribuidos
5
Nacimiento de los Sistemas Distribuidos

Causas:
• Tecnología de microprocesadores: relación potencia/costo.

• Tecnologías de comunicaciones:
– Protocolos de comunicaciones.
– Redes de área local (LAN): Costo y prestaciones.
– Internet

• Factores comerciales:
– Comercio electrónico: e-comerce.
– Información distribuida (WWW).
– Reducción de costos.

Sistemas Distribuidos
6
Características de un Sistema Distribuido

Definición: [Tan06]
Un Sistema Distribuido es una colección de computadores
independientes que aparece ante los usuarios del sistema como
una único computador.

 Recursos distribuidos para un trabajo común.


 N computadoras  Un “servicio” único a los usuarios.

Tradicionalmente (1972):
– Clasificación de Flynn: SISD, SIMD, MISD, MIMD

Sistemas Distribuidos
7
Características de un Sistema Distribuido

Un sistema distribuido implica las siguientes consecuencias:


• No existe un reloj común: Afecta a cualquier aspecto de
coordinación y mensajes.
• Concurrencia global: Los elementos del sistema se ejecutan
realmente en paralelo.
• Fallos independientes: Los modos de fallo del sistema
pueden ser locales a un subconjunto de sus componentes.
• Transparencia: Ubicación, acceso, replicación, etc.

Sistemas Distribuidos
8
Evolución de los Sistemas Operativos

• Sistemas Operativos Sistema Objetivos


Centralizados. Sistema Operativo
Gestión de recursos,
“Máquina extendida”,
Centralizado
(Virtualidad)
• Sistemas Operativos
en Red Sistema Operativo Compartición de recursos,
en Red (Interoperabilidad)

• Sistemas Operativos Vista única de varias


Sistema Operativo
computadoras
Distribuidos Distribuido
(Transparencia)

Sistema Trabajo cooperativo,


• Sistemas Cooperativo (Autonomía)
Cooperativos
Sistemas Distribuidos
9
Capas de un Sistema Operativo

La visión por niveles de un sistema operativo comprende los


siguientes:

• Hardware. Usuarios
• Núcleo (kernel). Aplicaciones
• Servicios del sistema.
Servicios
• Programas de aplicación.
Kernel
• Usuarios.
Hardware

Sistemas Distribuidos
10
Responsabilidades del Kernel

Servicios Kernels Monolíticos:


Muchas funcionalidades dentro del kernel:
Kernel
planificador, gestión de memoria, drivers,...
Computadora

m-Kernels:
Se sacan funcionalidades del kernel. Sólo quedan: Servicios
(i) comunicación entre procesos, (ii) administración m-Kernel
de memoria, (iii) administración y planificación de
Computadora
bajo nivel y (iv) entrada/salida de bajo nivel

Servicios Distribuidos:
Servicios Estructura de sistema distribuido. Dependiendo
del nivel se habla de: Sistema Operativo
m-Kernel m-Kernel m-Kernel
Distribuido, Sistema en Red o (Cooperativo).

Sistemas Distribuidos
11
Heterogeneidad de un Sistema Distribuido

Un Sistema Distribuido puede estar formado por multitud de


elementos conectados por redes LAN o WAN:
– Terminales X y Estaciones Java (Network Computer).
– PCs y estaciones de trabajo.
– Sistemas portátiles (redes móviles: GSM, WAP y ...)
– Minicomputadores.
– Supercomputadores.
– Multiprocesadores con memoria compartida o no.
– Servidores especializados (de almacenamiento, de impresión, ...).
– Sistemas empotrados.
Fomentada por los siguientes factores:
– Extensibilidad de los sistemas distribuidos.
– Especialización de los servidores.
Sistemas Distribuidos
12
Ventajas de los Sistemas Distribuidos

• Economía: Buena relación rendimiento/costo


– Ley de Grosch (obsoleta):
Prestaciones = cte x (Precio)2
• Alto rendimiento: Procesamiento paralelo.
• Soporte de aplicaciones inherentemente distribuidas.
– Por ejemplo: empresa distribuida geográficamente
• Capacidad de crecimiento: Escalabilidad.
• Fiabilidad y disponibilidad: Tolerancia a (ciertos) fallos.
• Carácter abierto y heterogéneo:
– Estándares de interoperabilidad.
• Compartir recursos y datos.
Sistemas Distribuidos
13
Desventajas de los Sistemas Distribuidos

• Necesidad de un nuevo tipo de software:


– Más complejo.
– No hay todavía un acuerdo sobre cómo debe ser.
• Red de interconexión introduce nuevos 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.
• Seguridad y confidencialidad

Sistemas Distribuidos
14
Aplicaciones de los Sistemas Distribuidos

• Servicios Internet: correo, noticias, Web, ... nuevos servicios.


• Redes corporativas e intranets.
• Procesamiento paralelo:
– Procesamiento masivo (solución a la eficiencia).
– Topología distribuida (problemas de naturaleza distribuida)
• Sistemas Distribuidos de Gestión de Bases de Datos y
explotación de los mismos: e.g. Data Warehousing.
• Aplicaciones multimedia.
• Sistemas industriales distribuidos y aplicaciones de control.
• Sistemas distribuidos de tiempo real.
• ..... < y muchos más >
Sistemas Distribuidos
15
Distribución de los Sistemas Operativos

• Sistemas operativos para multiprocesadores con memoria


compartida (SMP):
– Software fuertemente acoplado
– sobre Hardware fuertemente acoplado
• Sistema operativo distribuido (SOD):
– Software fuertemente acoplado
– sobre Hardware débilmente acoplado
• Sistema operativo en red:
– Software débilmente acoplado
– sobre Hardware débilmente acoplado

Sistemas Distribuidos
16
Sistemas Operativos para SMPs

Arquitecturas de varios procesadores (2 a 8) con memoria


compartida de acceso uniforme (SMP: Simetric Multiprocesors)

Características:
– “Ligeras” variaciones sobre versiones tradicionales.
– Sólo hay una copia del sistema operativo.
– Concurrencia se traduce en paralelismo real ( tiempo compartido).
– Comercialmente aceptados (Linux, WinNT, Solaris, AIX, ...).
– Plantea retos para: la ejecución del núcleo en varios procesadores
(llamadas al sistema concurrentes) , los mecanismos de
sincronización (spin-locks), optimización y planificación (afinidad al
procesador), ...

Sistemas Distribuidos
17
Sistemas Operativos Distribuidos (SOD)

Definición: [Gal00]
Un sistema operativo distribuido es un conjunto de procesadores
interconectados por redes que ocultan dicha característica
mostrando una visión al usuario de “uniprocesador virtual”.

Características:
– Ejecuta sobre un sistema distribuido haciendo creer a los usuarios
que se trata de un sistema centralizado.
– Trasparencia: Debe ocultar factores derivados de la distribución.
– Es fácil de decir pero no de hacer.
– Cada sistema alcanza hasta cierto punto esta meta.
– Los fracasos pueden generar frustraciones en los usuarios.
Sistemas Distribuidos
18
Sistemas Operativos Distribuidos (SOD)

Problemática:
– Cada nodo tiene su copia del sistema operativo: ¿Qué tareas se
realizan localmente y cuáles son globales?
– ¿Cómo lograr exclusión mutua sin memoria compartida?
– ¿Cómo tratar los interbloqueos sin un estado global?
– Planificación de procesos: Cada copia del sistema operativo tiene su
cola de planificación (migración de procesos).
– ¿Cómo crear un árbol de ficheros único?
– Implicaciones de la falta de reloj único, la presencia de fallos o la
heterogeneidad.
Principal aportación:
– Se han desarrollado nuevos conceptos y planteamientos que se han
podido trasladar a los otros modelos de sistemas distribuidos.
Sistemas Distribuidos
19
Evolución de los SOD

• Primeros SO de red:
– Incluir servicios de red en SO convencional
– Ejemplo: UNIX 4BSD (1980)
• Paulatina incorporación de más funcionalidad:
– ONC de Sun (1985): incluye NFS, RPC, NIS
• Primeros SOD:
– Nuevos SO pero basados en arquitecturas convencionales
(monolíticas)
– Ejemplo: Sprite de la Universidad de Berkeley (1988)
• SOD basados en m-kernel. Ejemplos:
– Mach de CMU (1986)
– Amoeba diseñado por Tanenbaum (1984)
– Chorus de INRIA en Francia (1988)
Sistemas Distribuidos
20
Sistemas Operativos en Red

Definición: [Cho97]
Red de computadoras débilmente acopladas en las que no existe
un control externo directo sobre el hardware/software de cada
computadora para la compartición de recursos.

Características:
– No dan la visión de uniprocesador virtual (máquinas independientes).
– Cada una ejecuta una copia de sistema operativo (distinto).
– Sistema operativo convencional + utilidades de red.
– Protocolos de comunicación para intercambio de recursos y acceso a
servicios de alto nivel.
– Desde rcp/rlogin hasta Open Network Computing (ONC) de Sun.
Sistemas Distribuidos
21
Sistemas Cooperativos

Definición: [Cho97]
Sistemas software orientados a servicios de alto nivel que
requieren el soporte de mecanismos de comunicación en base a
los cuales los protocolos de comunicaciones de alto nivel se
construyen.

Características:
– Se mantiene el grado de trasparencia sacrificando la visión de único
sistema. Son sistemas autónomos independientes.
– Se construyen en base a middlewares (CORBA, DCE, DCOM, ...)
– Los sistemas resultan de la integración de múltiples servicios
proporcionados por diferentes elementos de la red.
Sistemas Distribuidos
22
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).
– ... Middleware
SO SO SO

Hardware Hardware Hardware

Sistemas Distribuidos
23
Objetivos de un Sistema Distribuido

En general el desarrollo de sistemas distribuidos intenta poner


solución a los siguientes objetivos:
– Transparencia.
– Fiabilidad.
– Rendimiento.
– Capacidad de crecimiento.
– Flexibilidad.
– Seguridad.

Sistemas operativos distribuidos, sistemas en red y sistemas


cooperativos requieren diferentes facetas de estos objetivos.

Sistemas Distribuidos
24
Transparencia

Existen varios perfiles de trasparencia:


– Acceso: Manera de acceder a recurso local igual que a remoto.
– Posición: Se accede a los recursos sin conocer su localización.
– Migración: Recursos pueden migrar sin afectar a los usuarios.
– Concurrencia: Acceso concurrente no afecta a los usuarios.
– Replicación: La existencia de réplicas 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:Carácter heterogéneo no afecta a los usuarios.

¿Es buena tanta transparencia?


– A veces el usuario precisa conocer cómo es el sistema subyacente

Sistemas Distribuidos
25
Fiabilidad

Fiabilidad como disponibilidad:


– Teóricamente: OR-lógico de sus componentes.
– En ciertos casos: AND-lógico de varios componentes.
– Mecanismos: redundancia y evitar componentes críticos.
– Tolerancia a fallos: Los componuentes pueden no caerse pero
funcionan de forma errónea.
Fiabilidad como coherencia:
– Se dificulta con la redundancia: inconsistencias

La fiabilidad está relacionada con la seguridad (otro objetivo).

Sistemas Distribuidos
26
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:
– Mayor número de procesadores
– Elementos críticos:
• Especialmente la red: Latencia de la comunicación, uso de caches, ...
– Grano de paralelismo (relación proceso/comunicación).
– Replicación de elementos/tareas.
– Equilibrado de carga.

Sistemas Distribuidos
27
Capacidad de Crecimiento

Diseño de un sistema distribuido debe evitar “cuellos de botella”:


– Componentes centralizados
– Tablas centralizadas
– Algoritmos centralizados

Problemática agravada por el número de elementos:


– Ninguna máquina tiene información completa del estado del sistema
– Las decisiones se basan sólo en información disponible localmente
– El fallo de una máquina no debe invalidar el algoritmo
– No debe asumir la existencia de un reloj global

Sistemas Distribuidos
28
Flexibilidad

Capacidad para ampliarlo o extenderlo con nuevas


funcionalidades de forma sencilla.

Definición de responsabilidades:
– Sistemas con m-kernel:
• Comunicación entre procesos.
• Cierta administración de memoria.
• Administración y planificación de procesos (limitada y de bajo nivel).
• Entrada/salida de bajo nivel.

– El resto, servicios a nivel de usuario.

Sistemas Distribuidos
29
Flexibilidad

Un elemento fundamental de la flexibilidad son los sistemas


abiertos.

El desarrollo de estos sistemas requiere:


– Sus interfaces y protocolos deberían ser públicos.
– Contrario a ”tecnología propietaria”.
– Uso de estándares siempre que sea posible.
– Disponibilidad de su código fuente (libremente o no).
– Regulación por parte de un colectivo (usuarios u organizaciones) y
no por particulares (fabricantes).

Sistemas Distribuidos
30
Componentes de un Sistema Distribuido

El desarrollo de un sistema distribuido complejo requiere el uso


de las siguientes funciones y servicios:
– Servicios de comunicación.
– Sistemas de Archivos distribuido.
– Servicios de Nombres
– Servicios de sincronización y coordinación.
– Memoria compartida distribuida.
– Gestión de procesos.
– Servicio de seguridad.

Estas funcionalidades se plasman en elementos concretos del


sistema: componentes, protocolos, algoritmos, soporte
hardware/software, ...
Sistemas Distribuidos
31
Referencias Bibliograficas Básicas

• Sistemas Distribuidos: Principios y Paradigmas


Tercera Edición
Andrew S. Tanenbaum, Maarten Van Steen
Editorial Prentice-Hall, 2018

• Distributed Systems: Concepts and Design


Quinta Edición
George Coulouris, Jean Dollimore, Tim Kindberg , Gordon Blair.
Editorial Addison Wesley, 2011

Sistemas Distribuidos
32

También podría gustarte

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy