Ve r
si
Bibliografa utilizada: Apuntes de sistemas operativos distribuidos - Carlos Neetzel Sistemas operativos distribuidos Andrew S. Tanenbaum Sistemas Distribuidos George Coulouris y otros
Pr e
Autor: Fabio E. Rivalta / Carlos Neetzel Material: dictado de clases Fecha: 04/2007
lim
in a
Ve r
si
Definicin 3: Un SD es aqul en el que los componentes localizados en computadores, conectados en red, comunican y coordinan sus acciones nicamente mediante el paso de mensajes.
Pr e
Definicin 2: Un SD es un sistema de procesamiento descentralizado de datos que ejecutan sobre un conjunto de procesadores dbilmente acoplados, interconectados por una red cuyos nodos estn dispersos geogrficamente.
lim
Definicin 1: Un SD es una coleccin de computadoras independientes que aparecen ante los usuarios del sistema como una nica computadora.
in a
Segn el paso del tiempo la definicin de SOD fue cambiando, tomemos algunos ejemplos:
Tipos de procesamiento:
in a lim
PROCESAMIENTO
PARALELO DISTRIBUIDO
CENTRALIZADO
NO COOPERATIVO
COOPERATIVO
Ve r
si
CLIENT/SERVER
PEER TO PEER
Pr e
r
TIEMPO REAL
in a
SISD (Single Instruction Stream, Single Data Stream SIMD (Single Instruction Stream, Multiple Data Stream MISD (Multiple Instruction Stream, Single Data Stream
El problema de esta clasificacin es que todo lo que nos interesa entra en una sola clasificacin.
Ve r
SISD: Computadoras tradicionales de un solo procesador SIMD: Tienen una unidad de control y varias unidades de datos. Las bsquedas de operandos de las instrucciones se hacen en paralelo. Muy poco usado slo algunas supercomputadoras. MISD: Clasificacin sin sentido para qu serviran mltiples instrucciones y un solo dato?? MIMD: Todos los SD pertenecen a esta clasificacin.
si
Pr e
P L A T A F O R M A
lim
MIMD
Ve r
si
Pr e
lim
in a
Multicomputadoras (mem. Priv.)
Con conmutador (hipercubo)
Ve r
si
Pr e
lim
in a
SMP:
Poseen desde 2 a 64 procesadores y pueden ser considerados como una arquitectura que comparte todo. En estos sistemas todos los procesadores comparten todos los recursos globales disponibles (bus del sistema, memoria, sistemas de I/O, etc.); Una copia sencilla del Sistema Operativo corre en estos sistemas.
CC-NUMA:
Ve r
Es un sistema multiprocesador escalable. Como en SMP, cada procesador en un sistema CC-NUMA tiene una vista global de toda la memoria. Este tipo de sistema consigue su nombre (NUMA) a partir de los tiempos no uniformes que le toma para acceder ya sea a la parte memoria ms cercana, as como a la ms remota.
si
Pr e
lim
in a
MPP:
Cluster:
Grid:
Un gran conjunto de Sitios que estn conectadas mediante una red global de alta velocidad (10 Gb/s) que tienen una alta capacidad de procesamiento (entre 1000 a 10000 GFLOPS) y un gran capacidad de almacenamiento (entre 1000 a 10000 TB) Los Sitios interconectados utilizan Procesamiento Distribuido y P2P (Peer to Peer Architecture) con desarrollos de SW novedosos adicionales con interfases estndar abiertas. Utiliza nuevas tcnicas de Autoadministracin, autoescalabilidad y autoreparacin (tolerante a fallas)
Ve r
si
Una coleccin de estaciones de trabajo o PCs que estn conectadas mediante alguna tecnologa de red. Para fines de computacin paralela estas PCs o estaciones de trabajo estarn conectadas mediante una red de muy alta velocidad. Un cluster trabaja como una coleccin integrada de recursos y pueden tener una imagen simple del sistema abarcando todos sus nodos.
Pr e
lim
in a
Ve r
si
Pr e
lim
in a
Ve r
si
Pr e
lim
in a
Por que sistemas operativos distribuidos? (Parte III) Razones para construir
Economa: Estos sistemas tienen en potencia una proporcin precio/desempeo mucho mejor que la de un nico sistema centralizado. Se puede afirmar que un conjunto de microprocesadores proporciona un mejor ndice de precio/rendimiento que un mainframe puede brindar Distribucin Inherente: Existen muchas aplicaciones que son distribuidas en s mismas, para lo cual necesitan de una plataforma que soporte este tipo de procesamiento. Por ejemplo, cuando se conectan todas las sucursales de un banco se tiene un sistema distribuido. Confiabilidad: Si en un sistema distribuido hay un error en una instalacin, las restantes pueden potencialmente continuar trabajando. Crecimiento por Incrementos modulares: Con un sistema distribuido, podran aadirse simplemente ms procesadores o nodos al sistema, lo que permite un desarrollo gradual conforme a las necesidades. Compartir recursos: (Procesadores, Datos y Perifricos): Compartir recursos proporciona mecanismos para utilizar archivos en instalaciones remotas, procesar informacin en una base de datos distribuida, imprimir archivos en instalaciones remotas y otras operaciones.
Ve r
si
Pr e
lim
in a
Por que sistemas operativos distribuidos? (Parte IV) Razones para construir
Flexibilidad: Los sistemas distribuidos permiten distribuir la carga de trabajo entre las computadoras de una manera ms eficaz. Proveen mas potencia de calculo o una especializacin en su procesamiento (ejemplo comunicaciones), con este tipo de equipamiento es relativamente mas fcil ampliar o especializar para que las aplicaciones se ejecuten mas eficientemente. Aceleracin de clculos: Si un clculo puede dividirse en varios subclculos que pueden ejecutarse concurrentemente en un sistema distribuido distribuir estos clculos entre varias instalaciones y ejecutarlos en forma concurrente. Comunicacin: Si varias instalaciones estn conectadas por medio de una red, los usuarios pueden intercambiar informacin, transferir de archivos, intercambiar mensajes y compartir recursos caros como ser impresoras, almacenamientos de distintos tipos, etc..
Ve r
si
Pr e
lim
in a
Se ve como un uniprocesador virtual? Todos ejecutan el mismo SO? Cuntas copias del SO existen?
Pr e
No No N
Elemento
SO Red
lim
Si No
in a
SO Distribuido
Si Si N Mensajes Si Si (No) Si
SO Multiprocesador
Si Si 1 Mem. Compartida
Existe una nica cola de ejecucin? Existe una semntica bien definida para los archivos compartidos?
Ve r
si
No Si Si
Por lo general no
Ve r
si
Pr e
Modelo Cliente Servidor Modelo de estacin de trabajo. Modelo de la pila de procesadores Cluster de procesadores. Grids
lim
in a
Pr e
Pedido Respuesta Protocolo
Ve r
Plataforma deHW
si
lim
Aplicacin Lgica (Parte de Servidor) Software de Comunicacin Sistema Operativo del Servidor Plataforma deHW
in a
Request Reply Acknowledge Are you Alive? I am alive Try Again Address Unknown
lim
Respuesta del servidor para un cliente. El paquete enviado ha sido recibido. Prueba si el funcionamiento. Indica que el funcionamiento. servidor servidor sigue sigue en en
si
Ve r
Cliente
Pr e
REQ ACK AYA IAA REP ACK
in a
El modelo de cliente servidor se caracteriza por la comunicaciones que existen entre ambas partes. Los mensajes tpicos existentes (y considerados mnimos) son:
Servidor
Ve r
si
Pr e
lim
in a
Two-Tier
Three-Tier
Ve r
si
Pr e
en progreso. La flexibilidad en el particionado puede ser tan fcil como un drag and drop de mdulos de aplicaciones en diferentes computadoras. Generalmente se implementan mediante Middleware.
lim
in a
Two-Tier
Three-Tier
Ve r
si
Pr e
lim
in a
Ve r
si
Pr e
lim
in a
Ve r
si
Pr e
lim
in a
Ve r
si
Pr e
lim
in a
in a
3 1 S 4
r
C 2 SN
lim
(c)
Red
Pr e
(b)
(a)
(a) Direccionamiento mquina.proceso (b) Direccionamiento de procesos con transmisin (c) Bsqueda de direccionamiento de un servidor de nombres
Ve r
si
Ve r
si
Pr e
lim
in a
Ve r
si
Pr e
lim
in a
Ve r
si
Pr e
lim
in a
Ve r
Las estaciones de trabajo pueden ser con o sin disco. Sin disco: El FS debe ser implantado mediante uno o varios servidores de archivos en la red. Las solicitudes de lectura o escritura, se envan a un servidor de archivos, el cual realiza el trabajo y enva de regreso los resultados como respuestas. Las estaciones de trabajo sin discos, proporcionan simetra y flexibilidad. Un usuario puede utilizar cualquier estacin de trabajo y entrar al sistema.
si
Pr e
lim
in a
r
ESTACIN DE TRABAJO
INACTIVA
Ve r
si
Pr e
lim
in a
Ve r
si
Una carga aun menor en la red; tambin reduce la carga en los servidores de archivos
Pr e
Reduce la carga de la red Un costo alto debido al gran comparado con el caso sin discos nmero de discos necesarios Alto costo; problemas de consistencia del cach Alto costo; problemas de consistencia del cach
Escasa carga en la red; elimina la Prdida de transparencia necesidad de los servidores de archivos
lim
in a
Ventajas
Gran uso de la red; los servidores de archivos se pueden convertir en cuellos de botella
Desventajas
in a
P IL A D E PROCESADORES
T E R M IN A L X
T E R M IN A L X
T E R M IN A L X
Una solucin consiste en dar a cada Usuario un multiprocesador. Este es un diseo ineficiente y muy costos. Otra consiste en construir una pila de procesadores, repleta de CPUs, en una sala de servidores o mquinas, las cuales se pueden asignar de manera dinmica a los usuarios segn la demanda (este es el modelo de los mainframes actuales).
Ve r
si
Pr e
lim
r
S E R V ID O R DE A R C H IV O S
Pr e
Red Privada LAN Administrador
Ve r
si
Usuarios
lim
in a
Escalabilidad absoluta: Se pueden crear grandes clusters que sobrepasan por mucho el poder de la mquina solitaria ms potente. Un cluster puede estar formado por docenas de mquinas, cada una de las cuales puede ser un multiprocesador. Escalabilidad incremental: Cada cluster se configura de manera tal que sea posible el agregado de sistemas nuevos al cluster. Alta disponibilidad: Ya que cada nodo en un cluster es una mquina solitaria, la falla de uno de los nodos no resulta en la cada del sistema. Relacin precio/ rendimiento ms conveniente: Se puede armar un cluster con igual o mayor poder de cmputo que el de una mquina solitaria a un costo mucho ms bajo. Implementar clustering junto a niveles RAID que respalden los datos aseguran la disponibilidad de los sistemas.
Ve r
si
Pr e
lim
in a
Ve r
si
Pr e
lim
in a
Ve r
si
Pr e
lim
in a
Objetivo Buscado
Mismas operaciones en objetos locales y remotos No es necesario conocer dnde se encuentran los recursos Accesos en paralelo sin causar inconsistencia Mltiples ejemplares de un objeto que se presentan como un solo ejemplar Posibilidad de completar tareas ante cadas de equipos o redes a travs de otros nodos del SOD
Ve r
si
Crecimiento incremental (o contraccin) sin afectar a las aplicaciones (puede afectar los tiempos de procesamiento)
Pr e
lim
in a
Directorios
Ve r
si
Transacciones Sincroniza el acceso a archivos compartidos. Asegura que los cambios se hacen en una secuencia estricta
Pr e
Archivos
El servidor mantiene: la relacin entre {identificadores} <--> {bloques} Provee facilidades para crear y destruir archivos , y para leer y escribir en ellos. Puede haber varios File System compartiendo el disco sobre un nico servidor de bloques
lim
Provee facilidades para asignar y liberar bloques de disco y para leer y escribir en ellos. La correspondencia con los identificadores de archivos la mantiene el cliente.
in a
El Kernel de un SO distribuido
Al igual que el kernel de un SO tradicional, el kernel de un SOD es una parte ms importante de todo el SO. Podemos resumir como sus principales caractersticas a las siguientes:
Suelen basarse en Procesos Ligeros (LWP o threads). El ncleo se encarga de la planificacin de las threads. Son los que comparten todo su espacio de direccionamiento. Los ncleos son livianos (en cuanto a tamao y velocidad). Minimizan el software del sistema. Permiten el uso del mismo ncleo en las estaciones y los servidores. Utilidad en los servidores: Cuando el servidor se bloquea, no atiende ms peticiones. Esto se soluciona: programarlo como una coleccin de LWP's, ya que cuando uno se bloquea, los dems siguen sirviendo solicitudes. Utilidad en las estaciones: Con LWP's, las aplicaciones pueden compartir la pantalla la conmutacin entre ellas es rpida el ncleo no necesita dar soporte al sistema de ventanas dan soporte a las threads y a la IPC Amoeba: Su modelo de arquitectura es hbrido se basa en clusters de threads. Los threads son independientes y se comunican por memoria compartida. Un thread corre hasta que se bloquea en espera de un evento externo. Ncleo mnimo: servicios fuera del ncleo Sistema de proteccin basado en capabilities (credenciales) V-System: Modelo puro de Estaciones y Servidores (Sun). Sobre Ethernet Backplane Software: base para construir sistemas da soporte a los LWP's y gestiona la IPC los procesos se "enchufan" al backplane se comunican con los otros usando la IPC el diseo interno de un proceso es invisible al sistema. Teams: Clusters de threads, creados dinmicamente.
Ve r
si
Pr e
lim
in a