Upload
luis-yallerco
View
1.095
Download
0
Embed Size (px)
Citation preview
Sistemas Operativos Distribuidos
Luis Alberto Yallerco Q.Luis Alberto Yallerco Q.
Arquitectura de SistemasCentralizados
• Único computador (caro y de gran potencia) con terminales alfanuméricosdirectamente 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
Arquitectura de SistemasDistribuidos
• 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
Nacimiento de los SistemasDistribuidos
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.
Características de un SistemaDistribuido
Definición:Un sistema distribuido es una colección de computadoras independientes queaparece 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
Características de un SistemaDistribuido
Un sistema distribuido implica las siguientesconsecuencias:
• No existe un reloj común: Afecta a cualquier aspecto decoordinación y mensajes.
• Concurrencia global: Los elementos del sistema seejecutan realmente en paralelo.
• Fallos independientes: Los modos de fallo del sistemapueden ser locales a un subconjunto de sus componentes.
Evolución de los SistemasOperativos
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)
Capas de un Sistema Operativo
La visión esquemática de unsistema operativo comprendelos siguientes niveles:
Hardware
Kernel
Servicios
Aplicaciones
Usuarios
Responsabilidades del Kernel
KernelServicios
m-KernelServicios
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ónde memoria, (iii) administración y planificación debajo nivel y (iv) entrada/salida de bajo nivel
Servicios Distribuidos:Estructura de sistema distribuido. Dependiendodel nivel se habla de: Sistema OperativoDistribuido, Sistema en Red o (Cooperativo).
Heterogeneidad de un SistemaDistribuido
Un sistema distribuido puede estar formado por multitud de elementosconectados 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.
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.
Desventajas de los SistemasDistribuidos
• 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
Aplicaciones de los SistemasDistribuidos
• 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 delos mismos: e.g. Data Warehousing.
• Aplicaciones multimedia.• Sistemas industriales distribuidos y aplicaciones de control.• Sistemas distribuidos de tiempo real.
Distribución de los SistemasOperativos
• Sistemas operativos para multiprocesadores con memoriacompartida (SMP):
• Software fuertemente acoplado• sobre Hardware fuertemente acoplado
• Sistema operativo distribuido (SOD):• Software fuertemente acoplado• sobre Hardware débilmente acoplado
• Sistema operativo en red:• Software débilmente acoplado• sobre Hardware débilmente acoplado
Sistemas Operativos para SMPs
Arquitecturas de varios procesadores (2 a 8) con memoriacompartida de acceso uniforme (SMP: Simetric Multiprocesors)
Características:• “Ligeras” variaciones sobre versiones tradicionales.• Sólo hay una copia del sistema operativo.• Concurrencia se traduce en paralelismo real ( tiempo compartido).• Comercialmente aceptados (Linux, WinNT, Solaris, AIX, ...).• Plantea retos para: la ejecución del núcleo en varios procesadores
(llamadas al sistema concurrentes) , los mecanismos de sincronización(spin-locks), optimización y planificación (afinidad al procesador), ...
Sistemas Operativos Distribuidos(SOD)
Definición:Un sistema operativo distribuido es un conjunto de procesadores interconectados porredes que ocultan dicha característica mostrando una visión al usuario de“uniprocesador virtual”.
Características:• Ejecuta sobre un sistema distribuido haciendo creer a los usuarios que se
trata de un sistema centralizado.• Trasparencia: Debe ocultar factores derivados de la distribución.• Es fácil de decir pero no de hacer.• Cada sistema alcanza hasta cierto punto esta meta.• Los fracasos pueden generar frustraciones en los usuarios.
Sistemas 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.
Evolución de los SOD
• Primeros SO de red:• Incluir servicios de red en SO convencional
• Ejemplo: UNIX 4BSD (1980)
• Paulatina incorporación de más funcionalidad:• ONC de Sun (1985): incluye NFS, RPC, NIS
• Primeros SOD:• Nuevos SO pero basados en arquitecturas convencionales (monolíticas)
• Ejemplo: Sprite de la Universidad de Berkeley (1988)
• SOD basados en m-kernel. Ejemplos:• Mach de CMU (1986)
• Amoeba diseñado por Tanenbaum (1984)
• Chorus de INRIA en Francia (1988)
Sistemas Operativos en Red
Definición:Red de computadoras débilmente acopladas en las que no existe un control externodirecto sobre el hardware/software de cada computadora para la compartición derecursos.
Características:• No dan la visión de uniprocesador virtual (máquinas independientes).• Cada una ejecuta una copia de sistema operativo (distinto).• Sistema operativo convencional + utilidades de red.• Protocolos de comunicación para intercambio de recursos y acceso a servicios
de alto nivel.• Desde rcp/rlogin hasta Open Network Computing (ONC) de Sun.
Sistemas Cooperativos
Definición:Sistemas software orientados a servicios de alto nivel que requieren elsoporte de mecanismos de comunicación en base a los cuales los protocolosde 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.
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).
• ...Hardware
SO
Hardware
SO
Hardware
SO
Middleware
Objetivos de un Sistema Distribuido
En general el desarrollo de sistemas distribuidos intenta ponersolución a los siguientes objetivos:
• Transparencia.• Fiabilidad.• Rendimiento.• Capacidad de crecimiento.• Flexibilidad.• Seguridad.
Sistemas operativos distribuidos, sistemas en red y sistemascooperativos requieren diferentes facetas de estos objetivos.
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
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).
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.
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
Flexibilidad
Capacidad para ampliarlo o extenderlo con nuevas funcionalidades deforma 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.
Flexibilidad
Un elemento fundamental de la flexibilidad son los sistemasabiertos.
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).
Componentes de un SistemaDistribuido
El desarrollo de un sistema distribuido complejo requiere el uso de lassiguientes 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, ...
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.
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.
Servicios de Sincronización yCoordinació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.
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
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.
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.
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.
Notación y Formalismos
• Objetivo de la notación: No atar ninguna solución a una tecnologíaconcreta.
• 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.
Graciaspor su atención…
Sistemas Operativos Distribuidos
Yallerco