buena soa.ppt

Upload: hilda-poxon

Post on 02-Mar-2016

88 views

Category:

Documents


0 download

TRANSCRIPT

  • Sistemas Operativos Distribuidos Presentacin

  • Referencias BsicasDistributed Operating SystemsA. S. TanenbaumPrentice-Hall, 1995Distributed Systems: Concepts and DesignG. Coulouris, J. Dollimore, T. KindbergAddison-Wesley, 2001Pattern-Oriented Software Architecture: Patterns for Concurrent and Networked Objects (Vol 2).D. Schmidt, M. Stal, H. Rohnert, F. BruschmannWiley, 2000Sistemas Operativos Distribuidos*

  • Referencias BsicasDistributed Operating Systems: Concepts & PracticeD. L. GalliPrentice-Hall, 2000Distributed Operating Systems & AlgorithmsR. Chow, T. JohnsonAddison-Wesley, 1997

    Traduccin al CastellanoSistemas Operativos DistribuidosA. S. TanenbaumPrentice-Hall, 1996Sistemas Operativos Distribuidos*

  • ndice del Cursondice de TemasIntroduccin y conceptosComunicacin en sistemas distribuidosSistemas de ficheros distribuidos y servicios de directorio.Sincronizacin y coordinacinSistemas de memoria distribuidaGestin de procesosSeguridad en sistemas distribuidosSistemas Operativos Distribuidos*TecnologasCORBADCOMDCEJava:JiniRMIEJBEntornos DistribuidosyCasos de Estudio

  • ObjetivosConceptos (Objetivo Principal)Diseo de sistemas distribuidos (No slo sistemas operativos).Problemtica de sistemas distribuidos:Transacciones y concurrencia.Nombrado y organizacin.Seguridad.Configuracin y optimizacin.

    Tcnicas (Objetivo Secundario)Tecnologas y entornos de desarrollo distribuidos.Herramientas de desarrollo.Gua de referencias.Sistemas Operativos Distribuidos*

  • Direcciones de ContactoInformacin Actualizada:Pgina de la asignatura:http://laurel.datsi.fi.upm.es/~ssoo/SOD/

    Profesores Responsables:Fernando Prez Costoya

    Jos Mara Pea Snchez

    Sistemas Operativos Distribuidos*

  • Sistemas Operativos Distribuidos Introduccin y Conceptos

  • Contenidos del TemaEvolucin de los sistemas operativos:Definicin de sistema centralizado.Definicin 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.Notacin y formalismos.Sistemas Operativos Distribuidos*

  • Arquitectura de Sistemas Centralizadosnico computador (caro y de gran potencia) con terminales alfanumricos directamente conectados.Entornos de empresa:Soporte multiusuarioUso de mainframes o minicomputadoresEntornos cientficos:Ejecucin eficiente de aplicacionesUso de supercomputadoresUso ocasional de la red:Transferir ficheros o logins remotosInterfaz de usuario poco amigableInterfaces grficas gastan muchos recursosSistemas Operativos Distribuidos*

  • Arquitectura de Sistemas DistribuidosConjunto de procesadores conectados por una redCada usuario tiene capacidad de procesamiento local que permite interfaces de usuario sofisticadas.Uso intensivo de la red para compartir recursos:dispositivosdatosprocesadores (migracin de procesos)Capacidad global de procesamiento disponible para:Servicio a mltiples usuariosEjecucin paralela de una aplicacin

    Sistemas Operativos Distribuidos*

  • Nacimiento de los Sistemas DistribuidosCausas:Tecnologa de microprocesadores: relacin potencia/coste.

    Tecnologas de comunicaciones:Protocolos de comunicaciones.Redes de rea local (LAN): Coste y prestaciones.Internet

    Factores comerciales:Comercio electrnico: e-comerce.Informacin distribuida (WWW).Reduccin de costes.Sistemas Operativos Distribuidos*

  • Caractersticas de un Sistema DistribuidoDefinicin: [Tan95] Un sistema distribuido es una coleccin de computadoras independientes que aparece ante los usuarios del sistema como una nica computadora.

    Recursos distribuidos para un trabajo comn. N computadoras Un servicio nico a los usuarios.

    Tradicionalmente (1972):Clasificacin de Flynn: SISD, SIMD, MISD, MIMDSistemas Operativos Distribuidos*

  • Caractersticas de un Sistema DistribuidoUn sistema distribuido implica las siguientes consecuencias:No existe un reloj comn: Afecta a cualquier aspecto de coordinacin 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.

    Sistemas Operativos Distribuidos*

  • Evolucin de los Sistemas OperativosSistemas Operativos Centralizados.

    Sistemas Operativos en Red

    Sistemas Operativos Distribuidos

    Sistemas CooperativosSistemas Operativos Distribuidos*SistemaObjetivosSistema OperativoCentralizadoGestin de recursos,Mquina extendida,(Virtualidad)Sistema Operativoen RedComparticin de recursos,(Interoperabilidad)Sistema OperativoDistribuidoVista nica de variascomputadoras(Transparencia)SistemaCooperativaTrabajo cooperativo,(Autonoma)

  • Capas de un Sistema OperativoLa visin esquemtica de un sistema operativo comprende los siguientes niveles:Sistemas Operativos Distribuidos*Hardware.Ncleo (kernel).Servicios del sistema.Programas de aplicacin.Usuarios.

  • Responsabilidades del KernelSistemas Operativos Distribuidos*KernelServiciosm-KernelServiciosComputadoraComputadoram-Kernelm-Kernelm-KernelServiciosKernels Monolticos:Muchas funcionalidades dentro del kernel:planificador, gestin de memoria, drivers,...m-Kernels:Se sacan funcionalidades del kernel. Slo quedan: (i) comunicacin entre procesos, (ii) administracin de memoria, (iii) administracin y planificacin de bajo nivel y (iv) entrada/salida de bajo nivelServicios Distribuidos:Estructura de sistema distribuido. Dependiendodel nivel se habla de: Sistema Operativo Distribuido, Sistema en Red o (Cooperativo).

  • Heterogeneidad de un Sistema DistribuidoUn 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 porttiles (redes mviles: GSM, WAP y ...)Minicomputadores.Supercomputadores.Multiprocesadores con memoria compartida o no.Servidores especializados (de almacenamiento, de impresin, ...).Sistemas empotrados.Fomentada por los siguientes factores:Extensibilidad de los sistemas distribuidos.Especializacin de los servidores.Sistemas Operativos Distribuidos*

  • Ventajas de los Sistemas DistribuidosEconoma: Buena relacin rendimiento/costeLey de Grosch (obsoleta):Prestaciones = cte x (Precio)2Alto rendimiento: Procesamiento paralelo.Soporte de aplicaciones inherentemente distribuidas.Por ejemplo: empresa distribuida geogrficamenteCapacidad de crecimiento: Escalabilidad.Fiabilidad y disponibilidad: Tolerancia a (ciertos) fallos.Carcter abierto y heterogneo:Estndares de interoperabilidad.Compartir recursos y datos.Sistemas Operativos Distribuidos*

  • Desventajas de los Sistemas DistribuidosNecesidad 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

    Sistemas Operativos Distribuidos*

  • Aplicaciones de los Sistemas DistribuidosServicios Internet: correo, noticias, Web, ... nuevos servicios.Redes corporativas e intranets.Procesamiento paralelo: Procesamiento masivo (solucin a la eficiencia).Topologa distribuida (problemas de naturaleza distribuida) Sistemas distribuidos de gestin de bases de datos y explotacin de los mismos: e.g. Data Warehousing.Aplicaciones multimedia.Sistemas industriales distribuidos y aplicaciones de control.Sistemas distribuidos de tiempo real...... < y muchos ms >Sistemas Operativos Distribuidos*

  • Distribucin 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 dbilmente acopladoSistema operativo en red:Software dbilmente acoplado sobre Hardware dbilmente acopladoSistemas Operativos Distribuidos*

  • Sistemas Operativos para SMPsArquitecturas de varios procesadores (2 a 8) con memoria compartida de acceso uniforme (SMP: Simetric Multiprocesors)

    Caractersticas:Ligeras variaciones sobre versiones tradicionales.Slo hay una copia del sistema operativo.Concurrencia se traduce en paralelismo real ( tiempo compartido).Comercialmente aceptados (Linux, WinNT, Solaris, AIX, ...).Plantea retos para: la ejecucin del ncleo en varios procesadores (llamadas al sistema concurrentes) , los mecanismos de sincronizacin (spin-locks), optimizacin y planificacin (afinidad al procesador), ...Sistemas Operativos Distribuidos*

  • Sistemas Operativos Distribuidos (SOD)Definicin: [Gal00]Un sistema operativo distribuido es un conjunto de procesadores interconectados por redes que ocultan dicha caracterstica mostrando una visin al usuario de uniprocesador virtual.

    Caractersticas:Ejecuta sobre un sistema distribuido haciendo creer a los usuarios que se trata de un sistema centralizado.Trasparencia: Debe ocultar factores derivados de la distribucin.Es fcil de decir pero no de hacer.Cada sistema alcanza hasta cierto punto esta meta.Los fracasos pueden generar frustraciones en los usuarios.Sistemas Operativos Distribuidos*

  • Sistemas Operativos Distribuidos (SOD)Problemtica:Cada nodo tiene su copia del sistema operativo: Qu tareas se realizan localmente y cules son globales?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 la falta de reloj nico, la presencia de fallos o la heterogeneidad.Principal aportacin:Se han desarrollado nuevos conceptos y planteamientos que se han podido trasladar a los otros modelos de sistemas distribuidos.Sistemas Operativos Distribuidos*

  • Evolucin de los SODPrimeros SO de red:Incluir servicios de red en SO convencionalEjemplo: UNIX 4BSD (1980)Paulatina incorporacin de ms funcionalidad:ONC de Sun (1985): incluye NFS, RPC, NISPrimeros SOD:Nuevos SO pero basados en arquitecturas convencionales (monolticas) Ejemplo: Sprite de la Universidad de Berkeley (1988)SOD basados en m-kernel. Ejemplos:Mach de CMU (1986)Amoeba diseado por Tanenbaum (1984)Chorus de INRIA en Francia (1988)Sistemas Operativos Distribuidos*

  • Sistemas Operativos en RedDefinicin: [Cho97]Red de computadoras dbilmente acopladas en las que no existe un control externo directo sobre el hardware/software de cada computadora para la comparticin de recursos.

    Caractersticas:No dan la visin de uniprocesador virtual (mquinas independientes).Cada una ejecuta una copia de sistema operativo (distinto).Sistema operativo convencional + utilidades de red.Protocolos de comunicacin para intercambio de recursos y acceso a servicios de alto nivel.Desde rcp/rlogin hasta Open Network Computing (ONC) de Sun.Sistemas Operativos Distribuidos*

  • Sistemas CooperativosDefinicin: [Cho97]Sistemas software orientados a servicios de alto nivel que requieren el soporte de mecanismos de comunicacin en base a los cuales los protocolos de comunicaciones de alto nivel se construyen.

    Caractersticas:Se mantiene el grado de trasparencia sacrificando la visin de nico sistema. Son sistemas autnomos independientes.Se construyen en base a middlewares (CORBA, DCE, DCOM, ...)Los sistemas resultan de la integracin de mltiples servicios proporcionados por diferentes elementos de la red.Sistemas Operativos Distribuidos*

  • MiddlewareMiddleware: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*HardwareSOHardwareSOHardwareSOMiddleware

  • Objetivos de un Sistema DistribuidoEn general el desarrollo de sistemas distribuidos intenta poner solucin 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 Operativos Distribuidos*

  • TransparenciaExisten varios perfiles de trasparencia: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.

    Es buena tanta transparencia?A veces el usuario precisa conocer cmo es el sistema subyacente Sistemas Operativos Distribuidos*

  • FiabilidadFiabilidad como disponibilidad:Tericamente: OR-lgico de sus componentes.En ciertos casos: AND-lgico de varios componentes.Mecanismos: redundancia y evitar componentes crticos.Tolerancia a fallos: Los componuentes pueden no caerse pero funcionan de forma errnea.Fiabilidad como coherencia:Se dificulta con la redundancia: inconsistencias

    La fiabilidad est relacionada con la seguridad (otro objetivo).Sistemas Operativos Distribuidos*

  • RendimientoRendimiento para un servicio multiusuario:Objetivo: Rendimiento no peor que un sistema centralizadoRendimiento para la ejecucin paralela de aplicaciones:Objetivo: Rendimiento proporcional a procesadores empleados

    Factores:Mayor nmero de procesadoresElementos crticos: Especialmente la red: Latencia de la comunicacin, uso de caches, ...Grano de paralelismo (relacin proceso/comunicacin).Replicacin de elementos/tareas.Equilibrado de carga.Sistemas Operativos Distribuidos*

  • Capacidad de CrecimientoDiseo de un sistema distribuido debe evitar cuellos de botella: Componentes centralizadosTablas centralizadasAlgoritmos centralizados

    Problemtica agravada por el nmero de elementos:Ninguna mquina tiene informacin completa del estado del sistemaLas decisiones se basan slo en informacin disponible localmenteEl fallo de una mquina no debe invalidar el algoritmoNo debe asumir la existencia de un reloj globalSistemas Operativos Distribuidos*

  • FlexibilidadCapacidad para ampliarlo o extenderlo con nuevas funcionalidades de forma sencilla.

    Definicin de responsabilidades:Sistemas con m-kernel:Comunicacin entre procesos.Cierta administracin de memoria.Administracin y planificacin de procesos (limitada y de bajo nivel).Entrada/salida de bajo nivel.

    El resto, servicios a nivel de usuario.Sistemas Operativos Distribuidos*

  • FlexibilidadUn elemento fundamental de la flexibilidad son los sistemas abiertos.

    El desarrollo de estos sistemas requiere:Sus interfaces y protocolos deberan ser pblicos.Contrario a tecnologa propietaria.Uso de estndares siempre que sea posible.Disponibilidad de su cdigo fuente (libremente o no).Regulacin por parte de un colectivo (usuarios u organizaciones) y no por particulares (fabricantes).

    Sistemas Operativos Distribuidos*

  • Componentes de un Sistema DistribuidoEl desarrollo de un sistema distribuido complejo requiere el uso de las siguientes funciones y servicios:Servicios de comunicacin.Sistemas de ficheros y nombrado distribuido.Servicios de sincronizacin y coordinacin. Memoria compartida distribuida.Gestin de procesos.Servicio de seguridad.

    Estas funcionalidades se plasman en elementos concretos del sistema: componentes, protocolos, algoritmos, soporte hardware/software, ...Sistemas Operativos Distribuidos*

  • Servicios de ComunicacinModelos de interaccin:Cliente/servidor: (2-niveles, 3-niveles o n-niveles)Peer-to-peer: Equilibrio de roles.Intermediarios: Proxy, Dispacher, Caches, ...Unicast vs MulticastFiabilidad.Sncronos vs Asncronos

    Tecnologas de comunicacin:Paso de mensajes: Berkeley sockets.Llamada a procedimientos remotos: RPC.Tecnologas de objetos distribuidos: CORBA, DCOM, EJBCdigo mvil: Entornos de agentes.Sistemas Operativos Distribuidos*

  • Sistemas de Ficheros DistribuidosIdentificacin, localizacin 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.Replicacin y coherencia.Sistemas Operativos Distribuidos*

  • Servicios de Sincronizacin y CoordinacinComprende 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, coordinacin, ...Transacciones: Propiedades ACID, modelos de commit/rollback.

    Afecta a otros servicios:Nombrado e identificacin.Seguridad y fiabilidad.Comunicaciones....

    Sistemas Operativos Distribuidos*

  • Memoria Compartida Distribuida (DSM)Hardware:Memoria fsicamente compartida.Memoria distribuida (lgicamente compartida).Acceso uniforme vs acceso no uniforme.

    Distributed Shared Memory:Basada en pginas.Basada en variables compartidas.Basada en objetos.

    Modelos de consistencia

    Sistemas Operativos Distribuidos*

  • Gestin de ProcesosTaxonoma de los procesos:Niveles de granularidad.Congelacin de procesos (persistencia).Migracin de procesos (estado/cdigo).

    Planificacin de procesos:Planificacin interna: Procesos y threads.Planificacin global.Migracin y equilibrado de carga.Aprovechamiento de mquinas inactivas.

    Sistemas Operativos Distribuidos*

  • Servicio de SeguridadTipologa de los ataques: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: Firewalls.

    Entornos seguros: e.g. Kerberos.Sistemas Operativos Distribuidos*

  • NotacinLa asignatura tiene dos partes:Parte de la asignatura dependiente de ciertas tecnologas:API de sockets.RPCs.CORBA.DCOM.Java: RMI, EJB y Jini.Parte de la asignatura independiente de tecnologas:Conceptos.Tcnicas.Algoritmos.Estrategias de diseo.

    Sistemas Operativos Distribuidos*

  • Notacin y FormalismosObjetivo de la notacin: No atar ninguna solucin a una tecnologa concreta.

    Notaciones y formalismos usados:Pseudocdigo: Algoritmos y ejemplos.Objetos: Escenarios de interaccin, patrones distribuidos.Formalismos matemticos: Seguridad, sincronizacin.Metodologas y arquitecturas: Nomenclatura y semntica.

    Se optar por el ms apropiado en cada caso. No debe ser un impedimento para entender el concepto.Sistemas Operativos Distribuidos*

  • Wrapper FacadePatrn de diseo que encapsula los factores y caractersticas dependientes de las APIs de desarrollo del sistema operativo o tecnologa usada. [SSR00]

    Escenario:Sistemas Operativos Distribuidos*AplicacinAPI FuncinAAPI FuncinBAPI FuncinCWrapper FacadeDatosmtodo1()...metodoN()mtodo1(){ funcinA(); funcinB();}mtodoN(){ funcinC();}llamadasllamadasllamadasllamadas

  • Wrapper FacadeEjemplo:Semforo genrico. Protege un regin de exclusin mtuaacquire(): entrada en la regin.release(): salida de la regin.

    Implementacin: Depende del SO.Sistemas Operativos Distribuidos*class Thread_Mutex{public:Thread_Mutex();Thread_Mutex();void acquire();void release();};

    Sistemas Operativos DistribuidosSistemas Operativos Distribuidos1 - Introduccin*1 - IntroduccinSistemas Operativos DistribuidosSistemas Operativos Distribuidos1 - Introduccin*1 - Introduccin