Académique Documents
Professionnel Documents
Culture Documents
Distribuidos
Presentación
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
Traducción al Castellano
• Sistemas Operativos Distribuidos
A. S. Tanenbaum
Prentice-Hall, 1996
Sistemas Operativos Distribuidos Fernando Pérez Costoya
3 José María Peña
Índice del Curso
Índice de Temas
• Introducción y conceptos
Entornos Distribuidos
• Comunicación en sistemas
Casos de Estudio
distribuidos Tecnolo
• Sistemas de ficheros gías
distribuidos y servicios de •CORBA
directorio. •DCOM
y
• Sincronización y
coordinación
•DCE
• Sistemas de memoria •Java:
distribuida •Jini
• Gestión de procesos •RMI
• Seguridad en sistemas •EJB
distribuidos
Sistemas Operativos Distribuidos Fernando Pérez Costoya
4 José María Peña
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.
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>
Introducción y
Conceptos
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.
Sistemas Operativos Distribuidos Fernando Pérez Costoya
8 José María Peña
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
Sistemas Operativos Distribuidos Fernando Pérez Costoya
9 José María Peña
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
• 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.
Sistemas Operativos Distribuidos Fernando Pérez Costoya
11 José María Peña
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.
Tradicionalmente (1972):
– Clasificación de Flynn: SISD, SIMD, MISD, MIMD
• Hardware.
Usuarios
• Núcleo (kernel).
• Servicios del sistema. Aplicaciones
• Programas de aplicación.
Servicios
• Usuarios.
Kernel
Hardware
µ −Kernels:
Se sacan funcionalidades del kernel. Servicios
Sólo quedan: (i) comunicación entre µ −Kernel
procesos, (ii) administración de
memoria, (iii) administración y Computadora
planificación de bajo nivel y (iv)
entrada/salida de bajoServicios
nivel Distribuidos:
Servicios Estructura de sistema distribuido. Dependie
del nivel se habla de: Sistema Operativo
µ −Kernel µ −Kernel µ −Kernel
Distribuido, Sistema en Red o (Cooperativo)
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), ...
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.
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.
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.
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.
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.
• 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 Fernando Pérez Costoya
37 José María Peña
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.
Modelos de consistencia
• Planificación de procesos:
– Planificación interna: Procesos y threads.
– Planificación global.
– Migración y equilibrado de carga.
– Aprovechamiento de máquinas inactivas.
Escenario:
Wrapper Facade llamadas
API FunciónA
llamadas Datos llamadas
Aplicación API FunciónB
llamadas
API FunciónC
método1(){ método1()
método1(){
funciónA();
funciónA();
... métodoN(){
métodoN(){
funciónB();
funciónB(); metodoN() funciónC();
funciónC();
}} }}
Ejemplo:
– Semáforo
genérico. Protege class Thread_Mutex
un región de {
exclusión mútua public:
– acquire():
entrada en la Thread_Mutex();
región. Thread_Mutex();
– release(): salida
void acquire();
de la región.
void release();
– Implementación: };
Depende del SO.