Monografias.com > Computación > General
Descargar Imprimir Comentar Ver trabajos relacionados

Sistemas operativos distribuidos




Enviado por Pablo Turmero



    Monografias.com

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

    Monografias.com

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

    Monografias.com

    Sistemas Operativos Distribuidos
    2
    Í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

    Monografias.com

    Sistemas Operativos Distribuidos
    3
    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”.

    Monografias.com

    Sistemas Operativos Distribuidos
    4
    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
    < fperez@fi.upm.es>
    José María Peña Sánchez
    < jmpena@fi.upm.es>

    Monografias.com

    Sistemas Operativos Distribuidos
    Introducción y Conceptos

    Monografias.com

    Sistemas Operativos Distribuidos
    6
    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.

    Monografias.com

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

    Monografias.com

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

    Monografias.com

    Sistemas Operativos Distribuidos
    9
    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.

    Monografias.com

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

    Monografias.com

    Sistemas Operativos Distribuidos
    11
    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.

    Monografias.com

    Sistemas Operativos Distribuidos
    12
    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”,
    (Virtualidad)
    Sistema Operativo
    en Red
    Compartición de recursos,
    (Interoperabilidad)
    Sistema Operativo
    Distribuido
    Vista única de varias
    computadoras
    (Transparencia)
    Sistema
    Cooperativa
    Trabajo cooperativo,
    (Autonomía)

    Monografias.com

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

    Monografias.com

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

    Monografias.com

    Sistemas Operativos Distribuidos
    15
    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.

    Monografias.com

    Sistemas Operativos Distribuidos
    16
    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.

    Monografias.com

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

    Monografias.com

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

    Monografias.com

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

    Monografias.com

    Sistemas Operativos Distribuidos
    20
    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), …

    Monografias.com

    Sistemas Operativos Distribuidos
    21
    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.

    Monografias.com

    Sistemas Operativos Distribuidos
    22
    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.

    Monografias.com

    Sistemas Operativos Distribuidos
    23
    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)

    Monografias.com

    Sistemas Operativos Distribuidos
    24
    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.

    Monografias.com

    Sistemas Operativos Distribuidos
    25
    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.

    Monografias.com

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

    Monografias.com

    Sistemas Operativos Distribuidos
    27
    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.

    Monografias.com

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

    Monografias.com

    Sistemas Operativos Distribuidos
    29
    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).

    Monografias.com

    Sistemas Operativos Distribuidos
    30
    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.

    Monografias.com

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

    Monografias.com

    Sistemas Operativos Distribuidos
    32
    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.

    Monografias.com

    Sistemas Operativos Distribuidos
    33
    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).

    Monografias.com

    Sistemas Operativos Distribuidos
    34
    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, …

    Monografias.com

    Sistemas Operativos Distribuidos
    35
    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.

    Monografias.com

    Sistemas Operativos Distribuidos
    36
    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.

    Monografias.com

    Sistemas Operativos Distribuidos
    37
    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.

    Monografias.com

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

    Monografias.com

    Sistemas Operativos Distribuidos
    39
    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.

    Monografias.com

    Sistemas Operativos Distribuidos
    40
    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.

    Monografias.com

    Sistemas Operativos Distribuidos
    41
    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.

    Monografias.com

    Sistemas Operativos Distribuidos
    42
    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.

    Monografias.com

    Sistemas Operativos Distribuidos
    43
    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étodoN(){
    funciónC();
    }
    llamadas
    llamadas
    llamadas
    llamadas

    Monografias.com

    Sistemas Operativos Distribuidos
    44
    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();
    };

    Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

    Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

    Categorias
    Newsletter