46
Sistemas Operativos Distribuidos Presentación

Sistemas Operativos Distribuidos Presentación. Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 1 Referencias Básicas Distributed

Embed Size (px)

Citation preview

Page 1: Sistemas Operativos Distribuidos Presentación. Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 1 Referencias Básicas Distributed

Sistemas Operativos Distribuidos

PresentaciónPresentación

Page 2: Sistemas Operativos Distribuidos Presentación. Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 1 Referencias Básicas Distributed

Sistemas Operativos Distribuidos2

Fernando Pérez CostoyaJosé María Peña

Sánchez

Referencias Básicas

• Distributed Operating SystemsA. S. TanenbaumPrentice-Hall, 1995

• Distributed Systems: Concepts and DesignG. Coulouris, J. Dollimore, T. KindbergAddison-Wesley, 2001

• Pattern-Oriented Software Architecture: Patterns for Concurrent and Networked Objects (Vol 2).D. Schmidt, M. Stal, H. Rohnert, F. BruschmannWiley, 2000

Page 3: Sistemas Operativos Distribuidos Presentación. Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 1 Referencias Básicas Distributed

Sistemas Operativos Distribuidos3

Fernando Pérez CostoyaJosé María Peña

Sánchez

Referencias Básicas

• Distributed Operating Systems: Concepts & PracticeD. L. GalliPrentice-Hall, 2000

• Distributed Operating Systems & AlgorithmsR. Chow, T. JohnsonAddison-Wesley, 1997

Traducción al Castellano• Sistemas Operativos Distribuidos

A. S. TanenbaumPrentice-Hall, 1996

Page 4: Sistemas Operativos Distribuidos Presentación. Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 1 Referencias Básicas Distributed

Sistemas Operativos Distribuidos4

Fernando Pérez CostoyaJosé María Peña

Sánchez

Índice del Curso

Índice de Temas• Introducción y conceptos• Comunicación en sistemas

distribuidos• Sistemas de ficheros distribuidos

y servicios de directorio.• Sincronización y coordinación• Sistemas de memoria distribuida• Gestión de procesos• Seguridad en sistemas

distribuidos

Tecnologías•CORBA•DCOM•DCE•Java:

•Jini•RMI•EJB

Ento

rnos

Dist

ribui

dos

yCa

sos

de E

stud

io

Page 5: Sistemas Operativos Distribuidos Presentación. Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 1 Referencias Básicas Distributed

Sistemas Operativos Distribuidos5

Fernando Pérez CostoyaJosé María Peña

Sánchez

Objetivos

• Conceptos (Objetivo Principal)– Diseño de sistemas distribuidos (No sólo sistemas operativos).– Problemática de sistemas distribuidos:

• Transacciones y concurrencia.• Nombrado y organización.• Seguridad.• Configuración y optimización.

• Técnicas (Objetivo Secundario)– Tecnologías y entornos de desarrollo distribuidos.– Herramientas de desarrollo.– “Guía de referencias”.

Page 6: Sistemas Operativos Distribuidos Presentación. Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 1 Referencias Básicas Distributed

Sistemas Operativos Distribuidos6

Fernando Pérez CostoyaJosé María Peña

Sánchez

Direcciones de Contacto

Información Actualizada:• Página de la asignatura:

– http://laurel.datsi.fi.upm.es/~ssoo/SOD/

Profesores Responsables:• Fernando Pérez Costoya

– <[email protected]>• José María Peña Sánchez

– <[email protected]>

Page 7: Sistemas Operativos Distribuidos Presentación. Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 1 Referencias Básicas Distributed

Sistemas Operativos Distribuidos

Introducción y Conceptos

Introducción y Conceptos

Page 8: Sistemas Operativos Distribuidos Presentación. Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 1 Referencias Básicas Distributed

Sistemas Operativos Distribuidos8

Fernando Pérez CostoyaJosé María Peña

Sánchez

Contenidos del Tema

• Evolución de los sistemas operativos:– 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.• Notación y formalismos.

Page 9: Sistemas Operativos Distribuidos Presentación. Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 1 Referencias Básicas Distributed

Sistemas Operativos Distribuidos9

Fernando Pérez CostoyaJosé María Peña

Sánchez

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 ficheros o logins remotos

• Interfaz de usuario poco amigable– Interfaces gráficas gastan muchos recursos

Page 10: Sistemas Operativos Distribuidos Presentación. Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 1 Referencias Básicas Distributed

Sistemas Operativos Distribuidos10

Fernando Pérez CostoyaJosé María Peña

Sánchez

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

Page 11: Sistemas Operativos Distribuidos Presentación. Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 1 Referencias Básicas Distributed

Sistemas Operativos Distribuidos11

Fernando Pérez CostoyaJosé María Peña

Sánchez

Nacimiento de los Sistemas Distribuidos

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

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

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

Page 12: Sistemas Operativos Distribuidos Presentación. Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 1 Referencias Básicas Distributed

Sistemas Operativos Distribuidos12

Fernando Pérez CostoyaJosé María Peña

Sánchez

Características de un Sistema Distribuido

Definición: [Tan95] Un sistema distribuido es una colección de computadoras independientes que aparece ante los usuarios del sistema como una única computadora.

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

Page 13: Sistemas Operativos Distribuidos Presentación. Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 1 Referencias Básicas Distributed

Sistemas Operativos Distribuidos13

Fernando Pérez CostoyaJosé María Peña

Sánchez

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.

Page 14: Sistemas Operativos Distribuidos Presentación. Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 1 Referencias Básicas Distributed

Sistemas Operativos Distribuidos14

Fernando Pérez CostoyaJosé María Peña

Sánchez

Evolución de los Sistemas Operativos

• Sistemas Operativos Centralizados.

• Sistemas Operativos en Red

• Sistemas Operativos Distribuidos

• Sistemas Cooperativos

Sistema Objetivos

Sistema OperativoCentralizado

Gestión de recursos,“Máquina extendida”,(Virtualidad)

Sistema Operativoen Red

Compartición de recursos,(Interoperabilidad)

Sistema OperativoDistribuido

Vista única de variascomputadoras(Transparencia)

SistemaCooperativa

Trabajo cooperativo,(Autonomía)

Page 15: Sistemas Operativos Distribuidos Presentación. Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 1 Referencias Básicas Distributed

Sistemas Operativos Distribuidos15

Fernando Pérez CostoyaJosé María Peña

Sánchez

Capas de un Sistema Operativo

La visión esquemática de un sistema operativo comprende los siguientes niveles:

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

Hardware

Kernel

Servicios

Aplicaciones

Usuarios

Page 16: Sistemas Operativos Distribuidos Presentación. Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 1 Referencias Básicas Distributed

Sistemas Operativos Distribuidos16

Fernando Pérez CostoyaJosé María Peña

Sánchez

Responsabilidades del Kernel

Kernel

Servicios

Kernel

Servicios

Computadora

Computadora

Kernel Kernel Kernel

Servicios

Kernels Monolíticos:Muchas funcionalidades dentro del kernel:planificador, gestión de memoria, drivers,...

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

Servicios Distribuidos:Estructura de sistema distribuido. Dependiendodel nivel se habla de: Sistema Operativo Distribuido, Sistema en Red o (Cooperativo).

Page 17: Sistemas Operativos Distribuidos Presentación. Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 1 Referencias Básicas Distributed

Sistemas Operativos Distribuidos17

Fernando Pérez CostoyaJosé María Peña

Sánchez

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.

Page 18: Sistemas Operativos Distribuidos Presentación. Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 1 Referencias Básicas Distributed

Sistemas Operativos Distribuidos18

Fernando Pérez CostoyaJosé María Peña

Sánchez

Ventajas de los Sistemas Distribuidos

• Economía: Buena relación rendimiento/coste– 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.

Page 19: Sistemas Operativos Distribuidos Presentación. Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 1 Referencias Básicas Distributed

Sistemas Operativos Distribuidos19

Fernando Pérez CostoyaJosé María Peña

Sánchez

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

Page 20: Sistemas Operativos Distribuidos Presentación. Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 1 Referencias Básicas Distributed

Sistemas Operativos Distribuidos20

Fernando Pérez CostoyaJosé María Peña

Sánchez

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 >

Page 21: Sistemas Operativos Distribuidos Presentación. Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 1 Referencias Básicas Distributed

Sistemas Operativos Distribuidos21

Fernando Pérez CostoyaJosé María Peña

Sánchez

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

Page 22: Sistemas Operativos Distribuidos Presentación. Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 1 Referencias Básicas Distributed

Sistemas Operativos Distribuidos22

Fernando Pérez CostoyaJosé María Peña

Sánchez

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), ...

Page 23: Sistemas Operativos Distribuidos Presentación. Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 1 Referencias Básicas Distributed

Sistemas Operativos Distribuidos23

Fernando Pérez CostoyaJosé María Peña

Sánchez

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.

Page 24: Sistemas Operativos Distribuidos Presentación. Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 1 Referencias Básicas Distributed

Sistemas Operativos Distribuidos24

Fernando Pérez CostoyaJosé María Peña

Sánchez

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.

Page 25: Sistemas Operativos Distribuidos Presentación. Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 1 Referencias Básicas Distributed

Sistemas Operativos Distribuidos25

Fernando Pérez CostoyaJosé María Peña

Sánchez

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)

Page 26: Sistemas Operativos Distribuidos Presentación. Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 1 Referencias Básicas Distributed

Sistemas Operativos Distribuidos26

Fernando Pérez CostoyaJosé María Peña

Sánchez

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.

Page 27: Sistemas Operativos Distribuidos Presentación. Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 1 Referencias Básicas Distributed

Sistemas Operativos Distribuidos27

Fernando Pérez CostoyaJosé María Peña

Sánchez

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.

Page 28: Sistemas Operativos Distribuidos Presentación. Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 1 Referencias Básicas Distributed

Sistemas Operativos Distribuidos28

Fernando Pérez CostoyaJosé María Peña

Sánchez

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).– ...

Hardware

SO

Hardware

SO

Hardware

SO

Middleware

Page 29: Sistemas Operativos Distribuidos Presentación. Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 1 Referencias Básicas Distributed

Sistemas Operativos Distribuidos29

Fernando Pérez CostoyaJosé María Peña

Sánchez

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.

Page 30: Sistemas Operativos Distribuidos Presentación. Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 1 Referencias Básicas Distributed

Sistemas Operativos Distribuidos30

Fernando Pérez CostoyaJosé María Peña

Sánchez

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

Page 31: Sistemas Operativos Distribuidos Presentación. Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 1 Referencias Básicas Distributed

Sistemas Operativos Distribuidos31

Fernando Pérez CostoyaJosé María Peña

Sánchez

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

Page 32: Sistemas Operativos Distribuidos Presentación. Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 1 Referencias Básicas Distributed

Sistemas Operativos Distribuidos32

Fernando Pérez CostoyaJosé María Peña

Sánchez

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.

Page 33: Sistemas Operativos Distribuidos Presentación. Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 1 Referencias Básicas Distributed

Sistemas Operativos Distribuidos33

Fernando Pérez CostoyaJosé María Peña

Sánchez

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

Page 34: Sistemas Operativos Distribuidos Presentación. Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 1 Referencias Básicas Distributed

Sistemas Operativos Distribuidos34

Fernando Pérez CostoyaJosé María Peña

Sánchez

Flexibilidad

Capacidad para ampliarlo o extenderlo con nuevas funcionalidades de forma sencilla.

Definición de responsabilidades:– Sistemas con -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.

Page 35: Sistemas Operativos Distribuidos Presentación. Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 1 Referencias Básicas Distributed

Sistemas Operativos Distribuidos35

Fernando Pérez CostoyaJosé María Peña

Sánchez

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

Page 36: Sistemas Operativos Distribuidos Presentación. Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 1 Referencias Básicas Distributed

Sistemas Operativos Distribuidos36

Fernando Pérez CostoyaJosé María Peña

Sánchez

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 ficheros y nombrado distribuido.– 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, ...

Page 37: Sistemas Operativos Distribuidos Presentación. Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 1 Referencias Básicas Distributed

Sistemas Operativos Distribuidos37

Fernando Pérez CostoyaJosé María Peña

Sánchez

Servicios de Comunicación

• Modelos de interacción:– Cliente/servidor: (2-niveles, 3-niveles o n-niveles)– Peer-to-peer: Equilibrio de roles.– Intermediarios: Proxy, Dispacher, Caches, ...– Unicast vs Multicast– Fiabilidad.– Síncronos vs Asíncronos

• Tecnologías de comunicación:– Paso de mensajes: Berkeley sockets.– Llamada a procedimientos remotos: RPC.– Tecnologías de objetos distribuidos: CORBA, DCOM, EJB– Código móvil: Entornos de agentes.

Page 38: Sistemas Operativos Distribuidos Presentación. Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 1 Referencias Básicas Distributed

Sistemas Operativos Distribuidos38

Fernando Pérez CostoyaJosé María Peña

Sánchez

Sistemas de Ficheros Distribuidos

Identificación, localización y acceso a elementos del entorno distribuido.

Comprende:– Sistemas de ficheros distribuidos (SFD): NFS, AFS.– Servicios de nombres: DNS, COS-Naming (CORBA).– Servicios de directorio: X.500, LDAP, JNDI.

Cuestiones:– Arquitectura de los servicios.– Almacenamiento intermedio: caching.– Replicación y coherencia.

Page 39: Sistemas Operativos Distribuidos Presentación. Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 1 Referencias Básicas Distributed

Sistemas Operativos Distribuidos39

Fernando Pérez CostoyaJosé María Peña

Sánchez

Servicios de Sincronización y Coordinación

Comprende los conceptos de:– Tiempo en entornos distribuidos: Sincronización de relojes y relojes

lógicos.– Concurrencia y Paralelismo: Exclusión mutua e interbloqueos.– Algoritmos distribuidos: Elección de líder, coordinación, ...– Transacciones: Propiedades ACID, modelos de commit/rollback.

Afecta a otros servicios:– Nombrado e identificación.– Seguridad y fiabilidad.– Comunicaciones.– ...

Page 40: Sistemas Operativos Distribuidos Presentación. Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 1 Referencias Básicas Distributed

Sistemas Operativos Distribuidos40

Fernando Pérez CostoyaJosé María Peña

Sánchez

Memoria Compartida Distribuida (DSM)

Hardware:– Memoria físicamente compartida.– Memoria distribuida (lógicamente compartida).– Acceso uniforme vs acceso no uniforme.

Distributed Shared Memory:– Basada en páginas.– Basada en variables compartidas.– Basada en objetos.

Modelos de consistencia

Page 41: Sistemas Operativos Distribuidos Presentación. Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 1 Referencias Básicas Distributed

Sistemas Operativos Distribuidos41

Fernando Pérez CostoyaJosé María Peña

Sánchez

Gestión de Procesos

• Taxonomía de los procesos:– Niveles de granularidad.– Congelación de procesos (persistencia).– Migración de procesos (estado/código).

• Planificación de procesos:– Planificación interna: Procesos y threads.– Planificación global.– Migración y equilibrado de carga.– Aprovechamiento de máquinas inactivas.

Page 42: Sistemas Operativos Distribuidos Presentación. Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 1 Referencias Básicas Distributed

Sistemas Operativos Distribuidos42

Fernando Pérez CostoyaJosé María Peña

Sánchez

Servicio de Seguridad

Tipología de los ataques:– Privacidad y confidencialidad.– Autenticación (spoofing).– Denegación de servicio.

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 seguros: e.g. Kerberos.

Page 43: Sistemas Operativos Distribuidos Presentación. Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 1 Referencias Básicas Distributed

Sistemas Operativos Distribuidos43

Fernando Pérez CostoyaJosé María Peña

Sánchez

Notación

La asignatura tiene dos partes:– Parte de la asignatura dependiente de “ciertas“ tecnologías:

• API de sockets.• RPCs.• CORBA.• DCOM.• Java: RMI, EJB y Jini.

– Parte de la asignatura independiente de tecnologías:• Conceptos.• Técnicas.• Algoritmos.• Estrategias de diseño.

Page 44: Sistemas Operativos Distribuidos Presentación. Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 1 Referencias Básicas Distributed

Sistemas Operativos Distribuidos44

Fernando Pérez CostoyaJosé María Peña

Sánchez

Notación y Formalismos

• Objetivo de la notación: No atar ninguna solución a una tecnología concreta.

• Notaciones y formalismos usados:– Pseudocódigo: Algoritmos y ejemplos.– Objetos: Escenarios de interacción, patrones distribuidos.– Formalismos matemáticos: Seguridad, sincronización.– Metodologías y arquitecturas: Nomenclatura y semántica.

• Se optará por el más apropiado en cada caso. • No debe ser un impedimento para entender el concepto.

Page 45: Sistemas Operativos Distribuidos Presentación. Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 1 Referencias Básicas Distributed

Sistemas Operativos Distribuidos45

Fernando Pérez CostoyaJosé María Peña

Sánchez

Wrapper Facade

Patrón de diseño que encapsula los factores y características dependientes de las APIs de desarrollo del sistema operativo o tecnología usada. [SSR00]

Escenario:Aplicación

API FunciónA

API FunciónB

API FunciónC

Wrapper Facade

Datos

método1()...metodoN()

método1(){ funciónA(); funciónB();}

método1(){ funciónA(); funciónB();}

métodoN(){ funciónC();}

métodoN(){ funciónC();}

llamadas

llamadas

llamadas

llamadas

Page 46: Sistemas Operativos Distribuidos Presentación. Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 1 Referencias Básicas Distributed

Sistemas Operativos Distribuidos46

Fernando Pérez CostoyaJosé María Peña

Sánchez

Wrapper Facade

Ejemplo:– Semáforo genérico.

Protege un región de exclusión mútua

– acquire(): entrada en la región.

– release(): salida de la región.

– Implementación: Depende del SO.

class Thread_Mutex{public:

Thread_Mutex();Thread_Mutex();void acquire();void release();

};