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

Slides:



Advertisements
Presentaciones similares
Sistemas Operativos Distribuidos
Advertisements

Sistemas Operativos Distribuidos
Sistemas Operativos Distribuidos
Universidad Centroamericana
OMAR SANCHEZ ROBLES HECTOR PEREZ GARCIA. “Sistemas de cómputo compuesto por un gran número de CPU´s conectados mediante una red de alta velocidad”, Tanenbaum.
TEMA 10. SISTEMAS OPERATIVOS DISTRIBUIDOS
Introducción a los Sistemas Distribuidos. Prof. Yudith Cardinale Sept – Dic 2008 Universidad Simón Bolívar Departamento de Computación y T. I Sistemas.
Sistemas Distribuidos Conceptos Básicos Propiedades MSI. Nancy A. Olivares Ruiz.
Redes de comunicación. ¿ Qué son redes de comunicación ? Una red de comunicación es una conexión de diferentes computadoras que pueden comunicarse e intercambiar.
"Si he logrado ver más lejos ha sido porque he subido a hombros de gigantes" Isaac Newton
CI REDES DE COMPUTADORAS I. (*) (5 créditos) Conceptos básicos. Internet. Redes locales, de área ancha, etc. Protocolos de uso e implementación de.
1 Universidad Del Caribe Telemática Sistemas Operativos Distribuidos y de Tiempo Real “Modelos de Sistemas” Profesor: Joel Antonio Trejo Sánchez Integrantes:
¡LOS SERVIDORES DE FTP Y NUBE!
San Juan Bautista Tuxtepec, Oaxaca a 01 de Septiembre de 2016 INSTITUTO TECNOLÓGICO de Tuxtepec PROGRAMACION EN AMBIENTE CLIENTE-SERVIDOR CORBA PRESENTA:
Sistemas operativos Linux
“Los Sistemas Operativos”
Sistema de Base de datos
Procesos Concurrentes
U.T. 11: Introducción A Las Bases De Datos
Clasificación de Software
SISTEMAS OPERATIVOS PARALELOS Y MULTIPROCESADORES RICHARD GIOVANI MEDINA ESTEBA.
Sistemas Distribuidos
MODELO CLIENTE -SERVIDOR
Windows server 2008.
ARQUITECTURA DE COMPUTADORES
Clusters.
EQUIPO No 3.
Sesión 2 - Principios de la computación Redes y comunicaciones
Actividad 3. HERRAMIENTA TAREAS.
Novell Netware Autores: Cerrina Maria Josefina, Coto Marcelo,
SISTEMAS DISTRIBUÍDOS
Tarea 3: data warehouse y san
Modelo de 3 capas. Qué es la arquitectura de una aplicación? La arquitectura se refiere a la forma en la que es diseñada tanto física como lógicamente.
Definición de un Sistema Distribuido
PROVEEDOR DATA WAREHOUSE TERADATA
Unidad 1 Introducción al mundo de la computación.
INTRODUCCIÓN A JAVA.
SOL GUTIÉRREZ Y MARIANA HEINTZ 4°C Prof. Gustavo price
SISTEMAS OPERATIVOS APRENDICES Diana Carolina Chacón
Tipos de Relaciones de Red
SISTEMAS OPERATIVOS DISTRIBUIDOS. Es la unión de varios sistemas de computo compuestos posiblemente cada uno de varios CPU's, interconectados mediante.
“Grid Computing” Rogelio Ferreira Escutia.
ESTRUCTURA DE S.OPERATIVO
Redes de Área Local Conceptos Básicos. Contenido Redes: Conceptos Básicos Introducción Clasificación de redes Componentes de las redes LAN Topologías.
Diego Felipe Morales Cerón
ESTRUCTURA DE LOS SISTEMAS OPERATIVOS.
Curso: fundamentos de redes Profesor: Miguel farfan Sesion: 03
MIDDLEWARE Y PROGRAMACION WEB DISTRIBUIDA. ¿ QUE ES MIDDLEWARE?
FUNDAMENTOS DE PROGRAMACIÓN. INTRODUCCIÓN  Conceptos: Informática, Ordenador, Programa, Dato, Bit, Byte, Hardware, Software, Lenguaje de Programación,
Estructura de Sistemas Operativos CAMPOS CHACALTANA, ANTHONY.
Estructura de los sistemas Operativos 1. Componentes de un sistema operativo  Administración de procesos  Administración de memoria  Subsistema de Entrada/Salida.
ESTRUCTURA DE SISTEMAS OPERATIVOS Carbajal Rojas karla.
1 TEMA 10. SISTEMAS OPERATIVOS DISTRIBUIDOS Introducción Hardware Software Aspectos de diseño.
Estructura de los SISTEMAS OPERATIVOS.
UNIVERSIDAD PRIVADA SAN JUAN BAUTISTA FILIAL CHINCHA ESCUELA PROFESIONAL DE INGENIERÍA DE COMPUTACIÓN Y SISTEMAS Por: Nestares Torres Luis Jesús Enrique.
ESTRUCTURA DE LOS SISTEMAS OPERATIVOS
ESTRUCTURA DE SISTEMAS OPERATIVOS - ROY CANEPA JUAN FABIO
Estructura de Sistemas Operativos
Ha llegado el momento de dar una mirada al interior de los Sistemas Operativos. En las siguientes secciones examinaremos cuatro estructuras distintas.
ESTRUCTURA DE LOS SISTEMAS OPERATIVOS - MENDOZA MOLINA ARIANA
SISTEMA OPERATIVO Un sistema operativo es un programa o conjunto de programas de un sistema informático que gestiona los recursos de Hardware y provee.
ESTRUCTURA DE LOS SISTEMAS OPERATIVOS. Estos sistemas no tienen una estructura definida, sino que son escritos como una colección de procedimientos donde.
Estructura de los Sistemas Operativos
Estructura de los Sistemas Operativos por: Omar Saravia Tasayco
3.3 Terminales Móviles Objetivo básico: acceder a la red corporativa o a las redes globales (Internet) sin cables y con amplia libertad de movimientos.
Hilos de Procesamiento. Hilos Concepto Beneficios Hilos a nivel kérnel y a nivel usuario Modelos multihilos Hilos de Solaris 2 Hilos de Java.
Los sistemas operativos en el sistema informático
Transcripción de la 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 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

Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 2 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

Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 3 Í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

Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 4 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 ”.

Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 5 Direcciones de Contacto Información Actualizada: Página de la asignatura: – Profesores Responsables: Fernando Pérez Costoya – José María Peña Sánchez –

Sistemas Operativos Distribuidos Introducción y Conceptos

Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 7 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.

Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 8 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

Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 9 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

Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 10 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.

Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 11 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

Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 12 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.

Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 13 Evolución de los Sistemas Operativos Sistemas Operativos Centralizados. Sistemas Operativos en Red Sistemas Operativos Distribuidos Sistemas Cooperativos SistemaObjetivos 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)

Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 14 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

Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 15 Responsabilidades del Kernel Kernel Servicios  Kernel Servicios Computadora  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. Dependiendo del nivel se habla de: Sistema Operativo Distribuido, Sistema en Red o (Cooperativo).

Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 16 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.

Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 17 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.

Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 18 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

Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 19 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......

Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 20 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

Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 21 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),...

Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 22 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.

Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 23 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.

Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 24 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)

Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 25 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.

Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 26 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.

Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 27 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

Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 28 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.

Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 29 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

Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 30 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).

Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 31 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.

Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 32 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

Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 33 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.

Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 34 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).

Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 35 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,...

Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 36 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.

Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 37 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.

Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 38 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. –...

Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 39 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

Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 40 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.

Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 41 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.

Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 42 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.

Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 43 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.

Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 44 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

Fernando Pérez Costoya José María Peña Sánchez Sistemas Operativos Distribuidos 45 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(); void acquire(); void release(); };