Sistemas Operativos Distribuidos - PowerPoint PPT Presentation

About This Presentation
Title:

Sistemas Operativos Distribuidos

Description:

Sistemas Operativos Distribuidos Presentaci n Referencias B sicas Distributed Operating Systems A. S. Tanenbaum Prentice-Hall, 1995 Distributed Systems: Concepts ... – PowerPoint PPT presentation

Number of Views:85
Avg rating:3.0/5.0
Slides: 47
Provided by: Felixy
Category:

less

Transcript and Presenter's Notes

Title: Sistemas Operativos Distribuidos


1
Sistemas Operativos Distribuidos
Presentación
2
Referencias Básicas
  • Distributed Operating Systems
  • A. S. Tanenbaum
  • Prentice-Hall, 1995
  • Distributed Systems Concepts and Design
  • G. Coulouris, J. Dollimore, T. Kindberg
  • Addison-Wesley, 2001
  • Pattern-Oriented Software Architecture Patterns
    for Concurrent and Networked Objects (Vol 2).
  • D. Schmidt, M. Stal, H. Rohnert, F. Bruschmann
  • Wiley, 2000

3
Referencias Básicas
  • Distributed Operating Systems Concepts
    Practice
  • D. L. Galli
  • Prentice-Hall, 2000
  • Distributed Operating Systems Algorithms
  • R. Chow, T. Johnson
  • Addison-Wesley, 1997
  • Traducción al Castellano
  • Sistemas Operativos Distribuidos
  • A. S. Tanenbaum
  • Prentice-Hall, 1996

4
Í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

Entornos Distribuidos y Casos de Estudio
5
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.

6
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
  • ltfperez_at_fi.upm.esgt
  • José María Peña Sánchez
  • ltjmpena_at_fi.upm.esgt

7
Sistemas Operativos Distribuidos
1
Introducción y Conceptos
8
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.

9
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

10
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

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

12
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

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

14
Evolución de los Sistemas Operativos
  • Sistemas Operativos Centralizados.
  • Sistemas Operativos en Red
  • Sistemas Operativos Distribuidos
  • Sistemas Cooperativos

Sistema
Objetivos
Sistema Operativo Centralizado
Gestión de recursos, Máquina extendida, (Virtual
idad)
Sistema Operativo en Red
Compartición de recursos, (Interoperabilidad)
Sistema Operativo Distribuido
Vista única de varias computadoras (Transparencia)
Sistema Cooperativa
Trabajo cooperativo, (Autonomía)
15
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.

Usuarios
Aplicaciones
Servicios
Kernel
Hardware
16
Responsabilidades del Kernel
Kernels Monolíticos Muchas funcionalidades
dentro del kernel planificador, gestión de
memoria, drivers,...
Servicios
Kernel
Computadora
m-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
m-Kernel
Computadora
Servicios Distribuidos Estructura de sistema
distribuido. Dependiendo del nivel se habla de
Sistema Operativo Distribuido, Sistema en Red o
(Cooperativo).
Servicios
m-Kernel
m-Kernel
m-Kernel
17
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.

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

19
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

20
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.
  • ..... lt y muchos más gt

21
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

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

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

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

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

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

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

28
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
29
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.

30
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.
  • HeterogeneidadCarácter heterogéneo no afecta a
    los usuarios.
  • Es buena tanta transparencia?
  • A veces el usuario precisa conocer cómo es el
    sistema subyacente

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

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

33
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

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

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

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

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

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

39
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.
  • ...

40
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

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

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

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

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

45
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

llamadas
Wrapper Facade
API FunciónA
Datos
llamadas
llamadas
Aplicación
API FunciónB
llamadas
API FunciónC
método1() ... metodoN()
método1() funciónA() funciónB()
métodoN() funciónC()
46
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()
Write a Comment
User Comments (0)
About PowerShow.com