Download Sistemas Operativos Distribuidos

Document related concepts

Computación distribuida wikipedia , lookup

Middleware wikipedia , lookup

Distributed Computing Environment wikipedia , lookup

Distributed Shared Memory wikipedia , lookup

MINIX wikipedia , lookup

Transcript
Sistemas Operativos Distribuidos
Referencias Básicas
Sistemas Operativos Distribuidos
• Distributed Operating Systems
A. S. Tanenbaum
Prentice-Hall, 1995
Presentación
• 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
Sistemas Operativos Distribuidos
1
Índice del Curso
• 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
Sistemas Operativos Distribuidos
2
Fernando Pérez Costoya
José María Peña Sánchez
Objetivos
– 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.
•Jini
•RMI
•EJB
Fernando Pérez Costoya
José María Peña Sánchez
Información Actualizada:
• Página de la asignatura:
– http://laurel.datsi.fi.upm.es/~ssoo/SOD/
– <[email protected]>
• José María Peña Sánchez
– Tecnologías y entornos de desarrollo distribuidos.
– Herramientas de desarrollo.
– “Guía de referencias”.
1 - Introducción
Sistemas Operativos Distribuidos
3
Tecnologías
•CORBA
•DCOM
•DCE
•Java:
Profesores Responsables:
• Fernando Pérez Costoya
• Técnicas (Objetivo Secundario)
Sistemas Operativos Distribuidos
4
• 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
Direcciones de Contacto
• Conceptos (Objetivo Principal)
•
•
•
•
Índice de Temas
Entornos Distribuidos
y
Casos de Estudio
Referencias Básicas
Fernando Pérez Costoya
José María Peña Sánchez
– <[email protected]>
Fernando Pérez Costoya
José María Peña Sánchez
Sistemas Operativos Distribuidos
5
Fernando Pérez Costoya
José María Peña Sánchez
1
Sistemas Operativos Distribuidos
Contenidos del Tema
Sistemas Operativos Distribuidos
Introducción y
Conceptos
• 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.
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
Fernando Pérez Costoya
José María Peña Sánchez
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)
• Entornos científicos:
– Ejecución eficiente de aplicaciones
– Uso de supercomputadores
• Capacidad global de procesamiento disponible para:
• Uso ocasional de la red:
– Servicio a múltiples usuarios
– Ejecución paralela de una aplicación
– Transferir ficheros o logins remotos
• Interfaz de usuario poco amigable
– Interfaces gráficas gastan muchos recursos
Sistemas Operativos Distribuidos
8
Fernando Pérez Costoya
José María Peña Sánchez
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
Sistemas Operativos Distribuidos
9
Fernando Pérez Costoya
José María Peña Sánchez
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.
• Factores comerciales:
– Comercio electrónico: e-comerce.
– Información distribuida (WWW).
– Reducción de costes.
Sistemas Operativos Distribuidos
10
1 - Introducción
Tradicionalmente (1972):
– Clasificación de Flynn: SISD, SIMD, MISD, MIMD
Fernando Pérez Costoya
José María Peña Sánchez
Sistemas Operativos Distribuidos
11
Fernando Pérez Costoya
José María Peña Sánchez
2
Sistemas Operativos Distribuidos
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.
Evolución de los Sistemas Operativos
• Sistemas Operativos
Centralizados.
• Sistemas Operativos
en Red
• Sistemas Operativos
Distribuidos
Sistema
Sistema Operativo Compartición de recursos,
en Red
(Interoperabilidad)
Vista única de varias
Sistema Operativo
computadoras
Distribuido
(Transparencia)
Sistema
Cooperativa
• Sistemas
Cooperativos
Sistemas Operativos Distribuidos
12
Fernando Pérez Costoya
José María Peña Sánchez
Capas de un Sistema Operativo
La visión esquemática de un sistema operativo comprende los
siguientes niveles:
Objetivos
Gestión de recursos,
Sistema Operativo
“Máquina extendida”,
Centralizado
(Virtualidad)
Trabajo cooperativo,
(Autonomía)
Sistemas Operativos Distribuidos
13
Fernando Pérez Costoya
José María Peña Sánchez
Responsabilidades del Kernel
Kernels Monolíticos:
Muchas funcionalidades dentro del kernel:
planificador, gestión de memoria, drivers,...
Servicios
Kernel
Computadora
•
•
•
•
•
Hardware.
Núcleo (kernel).
Servicios del sistema.
Programas de aplicación.
Usuarios.
Usuarios
Aplicaciones
Servicios
Kernel
Hardware
µ−Kernels
µ−Kernels:
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
µ−Kernel
Kernel
µ−
Sistemas Operativos Distribuidos
14
Fernando Pérez Costoya
José María Peña Sánchez
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:
1 - Introducción
µ−Kernel
Kernel
µ−
µ−Kernel
µ−Kernel
Computadora
Servicios Distribuidos:
Estructura de sistema distribuido. Dependiendo
del nivel se habla de: Sistema Operativo
Distribuido, Sistema en Red o (Cooperativo).
Sistemas Operativos Distribuidos
15
Fernando Pérez Costoya
José María Peña Sánchez
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.
– Extensibilidad de los sistemas distribuidos.
– Especialización de los servidores.
Sistemas Operativos Distribuidos
16
µ−Kernel
Kernel
µ−
Servicios
• Compartir recursos y datos.
Fernando Pérez Costoya
José María Peña Sánchez
Sistemas Operativos Distribuidos
17
Fernando Pérez Costoya
José María Peña Sánchez
3
Sistemas Operativos Distribuidos
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
Sistemas Operativos Distribuidos
18
Fernando Pérez Costoya
José María Peña Sánchez
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 >
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
Sistemas Operativos para SMPs
Arquitecturas de varios procesadores (2 a 8) con memoria
compartida de acceso uniforme (SMP: Simetric Multiprocesors)
Características:
• 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 Distribuidos
20
Fernando Pérez Costoya
José María Peña Sánchez
Fernando Pérez Costoya
José María Peña Sánchez
“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
21
Fernando Pérez Costoya
José María Peña Sánchez
Sistemas Operativos Distribuidos (SOD)
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”.
Problemática:
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
22
1 - Introducción
Fernando Pérez Costoya
José María Peña Sánchez
– 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.
Sistemas Operativos Distribuidos
23
Fernando Pérez Costoya
José María Peña Sánchez
4
Sistemas Operativos Distribuidos
Evolución de los SOD
Sistemas Operativos en Red
• 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 Distribuidos
24
Fernando Pérez Costoya
José María Peña Sánchez
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.
Sistemas Operativos Distribuidos
25
Sistemas Cooperativos
Middleware
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.
Sistemas Operativos Distribuidos
26
Fernando Pérez Costoya
José María Peña Sánchez
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).
– ...
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.
Middleware
SO
SO
SO
Hardware
Hardware
Hardware
Sistemas Operativos Distribuidos
27
Objetivos de un Sistema Distribuido
–
–
–
–
–
–
Fernando Pérez Costoya
José María Peña Sánchez
Fernando Pérez Costoya
José María Peña Sánchez
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
Sistemas Operativos Distribuidos
28
1 - Introducción
Fernando Pérez Costoya
José María Peña Sánchez
Sistemas Operativos Distribuidos
29
Fernando Pérez Costoya
José María Peña Sánchez
5
Sistemas Operativos Distribuidos
Fiabilidad
Rendimiento
Fiabilidad como disponibilidad:
–
–
–
–
Rendimiento para un servicio multiusuario:
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:
– Objetivo: Rendimiento proporcional a procesadores empleados
Factores:
– Mayor número de procesadores
– Elementos críticos:
– Se dificulta con la redundancia: inconsistencias
La fiabilidad está relacionada con la seguridad (otro objetivo).
Sistemas Operativos Distribuidos
30
– Objetivo: Rendimiento no peor que un sistema centralizado
Rendimiento para la ejecución paralela de aplicaciones:
Fernando Pérez Costoya
José María Peña Sánchez
• 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.
Sistemas Operativos Distribuidos
31
Capacidad de Crecimiento
Diseño de un sistema distribuido debe evitar “cuellos de botella”:
– Componentes centralizados
– Tablas centralizadas
– Algoritmos centralizados
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
Sistemas Operativos Distribuidos
32
Fernando Pérez Costoya
José María Peña Sánchez
Flexibilidad
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).
Sistemas Operativos Distribuidos
34
1 - Introducción
Capacidad para ampliarlo o extenderlo con nuevas
funcionalidades de forma sencilla.
– 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.
Sistemas Operativos Distribuidos
33
Fernando Pérez Costoya
José María Peña Sánchez
Componentes de un Sistema Distribuido
Un elemento fundamental de la flexibilidad son los sistemas
abiertos.
–
–
–
–
–
Flexibilidad
Definición de responsabilidades:
Problemática agravada por el número de elementos:
–
–
–
–
Fernando Pérez Costoya
José María Peña Sánchez
Fernando Pérez Costoya
José María Peña Sánchez
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, ...
Sistemas Operativos Distribuidos
35
Fernando Pérez Costoya
José María Peña Sánchez
6
Sistemas Operativos Distribuidos
Servicios de Comunicación
• Modelos de interacción:
–
–
–
–
–
–
Sistemas de Ficheros Distribuidos
Identificación, localización y acceso a elementos del entorno
distribuido.
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
Comprende:
– Sistemas de ficheros distribuidos (SFD): NFS, AFS.
– Servicios de nombres: DNS, COS-Naming (CORBA).
– Servicios de directorio: X.500, LDAP, JNDI.
• 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 Operativos Distribuidos
36
Fernando Pérez Costoya
José María Peña Sánchez
Servicios de Sincronización y
Coordinación
Comprende los conceptos de:
Sistemas Operativos Distribuidos
37
Memoria Compartida Distribuida (DSM)
– Memoria físicamente compartida.
– Memoria distribuida (lógicamente compartida).
– Acceso uniforme vs acceso no uniforme.
Distributed Shared Memory:
Nombrado e identificación.
Seguridad y fiabilidad.
Comunicaciones.
...
Modelos de consistencia
Fernando Pérez Costoya
José María Peña Sánchez
Sistemas Operativos Distribuidos
39
Gestión de Procesos
Fernando Pérez Costoya
José María Peña Sánchez
Servicio de Seguridad
• Taxonomía de los procesos:
Tipología de los ataques:
– Niveles de granularidad.
– Congelación de procesos (persistencia).
– Migración de procesos (estado/código).
– Privacidad y confidencialidad.
– Autenticación (spoofing).
– Denegación de servicio.
• Planificación de procesos:
–
–
–
–
Fernando Pérez Costoya
José María Peña Sánchez
– Basada en páginas.
– Basada en variables compartidas.
– Basada en objetos.
Afecta a otros servicios:
Sistemas Operativos Distribuidos
38
– Arquitectura de los servicios.
– Almacenamiento intermedio: caching.
– Replicación y coherencia.
Hardware:
– 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.
–
–
–
–
Cuestiones:
Modelos y herramientas de seguridad:
Planificación interna: Procesos y threads.
Planificación global.
Migración y equilibrado de carga.
Aprovechamiento de máquinas inactivas.
–
–
–
–
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.
Sistemas Operativos Distribuidos
40
1 - Introducción
Fernando Pérez Costoya
José María Peña Sánchez
Sistemas Operativos Distribuidos
41
Fernando Pérez Costoya
José María Peña Sánchez
7
Sistemas Operativos Distribuidos
Notación
Notación y Formalismos
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.
• Notaciones y formalismos usados:
–
–
–
–
– Parte de la asignatura independiente de tecnologías:
•
•
•
•
• Objetivo de la notación: No atar ninguna solución a una
tecnología concreta.
Conceptos.
Técnicas.
Algoritmos.
Estrategias de diseño.
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.
Sistemas Operativos Distribuidos
42
Fernando Pérez Costoya
José María Peña Sánchez
Sistemas Operativos Distribuidos
43
Wrapper Facade
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
Wrapper Facade
llamadas Datos
método1(){
método1(){
funciónA();
funciónA();
funciónB();
funciónB();
}}
llamadas
llamadas
llamadas
método1()
...
metodoN()
Sistemas Operativos Distribuidos
44
1 - Introducción
Fernando Pérez Costoya
José María Peña Sánchez
API FunciónA
API FunciónB
API FunciónC
métodoN(){
métodoN(){
funciónC();
funciónC();
}}
Fernando Pérez Costoya
José María Peña Sánchez
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.
Sistemas Operativos Distribuidos
45
class Thread_Mutex
{
public:
Thread_Mutex();
Thread_Mutex();
void acquire();
void release();
};
Fernando Pérez Costoya
José María Peña Sánchez
8