Sistemas Distribuidos
CAPITULO 2
Ing. Mary Dunnia López N.
UNIVERSIDAD AUTONOMA GABRIEL RENE MORENOFICCT
Semestre I/2016
INF413
“Valorar las alternativas y ventajas para la implantación
de un sistema distribuido (Compartir Recursos) ”
Objetivo
C O N T E N I D O
Estructuras de Sistemas Distribuidos
Sistema de Archivos Distribuidos
Gestión Distribuida de procesos
Sistema de Ejecución Distribuida
Introducción2.0
2.1
2.2
2.3
2.4
INTRODUCCION
“A distributed system is a collection of independent computers that appears to its users as a single coherent system”
Tipos de sistemas (evolución histórica) Sistemas por lotes: proceso diferido, secuencial Sistemas centralizados de tiempo compartido: terminal Sistemas de teleproceso: red telefónica Sistemas personales: estaciones de trabajo, PCs Sistemas en red: cliente/servidor, protocolos (TCP/IP) Sistemas distribuidos: transparencia (GUI)
Conjunto de computadores interconectados igual que un sistema en red que comparten un estado ofreciendo una visión de sistema único (SSI) igual que un sistema centralizado
INTRODUCCION
A distributed system organized as middleware. The middleware layer extends over multiple machines, and offers each application the same interface.
Un sistema Distribuido es software Middleware
INTRODUCCION
Ventajas del Sistema distribuido con respecto a:• Sistema centralizado
• Bajo coste: puede estar compuesto de PCs estándar• Escalabilidad: consecuencia de su modularidad• Flexibilidad: reutilización de máquinas “viejas”• Disponibilidad: mediante replicación de recursos• Ofrecen la posibilidad de paralelismo• Permiten acceder a recursos remotos
• Sistema en red• Uso más eficiente de los recursos (migración)• Acceso transparente a los recursos
INTRODUCCION
Desventajas del Sistema distribuido con respecto a:• Sistema centralizado
• Un sistema centralizado del mismo coste es más eficiente que cada uno de los componentes del sistema distribuido.
• Si la distribución de recursos es inadecuada algunos recursos pueden estar desbordados mientras otros están libres
• Mantener la consistencia puede ser muy “costoso” en el sistema distribuido.
• La red de interconexión es una fuente de problemas• La gestión de la seguridad es más compleja
Estructuras de Sistemas Distribuidos
2.1.1 Sistemas operativos de red
2.1.2 Sistemas operativos distribuidos
2.1.3 Servicios Remotos
Estructura de un Sistema Operativo en Red
Un sistema operativo de red es un sistema operativo de computadora diseñado para administrar y apoyar a las estaciones de trabajo, computadoras personales y servidores normalmente conectados a una red de área local.
El usuario ve un conjunto de máquinas independientes: No hay transparencia Se debe acceder de forma explícita a los recursos de otras máquinas (conocer su
localización)
Sistema operativo
Lenguajes de programaciónAplicaciones
Red de interconexión
Hardware
Sistema operativo
Lenguajes de programaciónAplicaciones
Hardware
Características de un SO de Red
Cada computadora tiene su sistema operativo privado. Responde a la necesidad de compartir recursos. Cada usuario normalmente trabaja en su propia computadora
o en una computadora designada; usando una computadora diferente invariablemente requiere algún tipo de "login" remoto.
Tipos de SO de Red
NetWare Este sistema se diseñó con la finalidad de que lo usarán grandes compañías que deseaban sustituir sus enormes máquinas conocidas como mainframe por una red de PCs que resultara más económica y fácil de manejar.
UNIXLos sistemas UNIX satisfacen necesidades de los programadores que crean software y de los administradores que deben controlar las labores de desarrollo de programas.
Windows NT Las letras NT significan Nueva Tecnología. Fue diseñado para uso de compañías grandes, por lo tanto realiza muy bien algunas tareas tales como la protección por contraseñas.
IBM OS/2 LAN SERVER
El Server de OS/2 opera a 32 bits y trabaja en conjunción con el Sistema Operativo multitarea OS/2. El LAN Server se encuentra disponible en versión para principiantes (Entry), es una solución de bajo costo y permite el uso de un servidor no dedicado.
Linux Linux es un sistema operativo para computadoras personales basadas en Intel.
Básicamente hay dos tipos de RED: Redes de área local. (LAN) Redes de área amplia. (WAN)
Administración de Recursos de un SO de Red
Los sistemas operativos realizan funciones tales como: Facilitar la entrada y salida.
Planificar la distribución entre los usuarios.
Evitar que los usuarios se interfieran.
Proporcionar la interfaz con el usuario.
Organizar los datos para lograr un acceso rápido y seguro
Permitir que los usuarios compartan entre sí hardware - datos. Recuperarse de los errores.
Administrador de Archivos de un SO de Red
Ofrece funciones para compartir información, mantenerla privada, obtener acceso a ella, respaldarla, recuperarla, hacerla independiente del dispositivo y cifrarla.
El acceso a los archivos se logra mediante funciones de los sistemas operativos llamadas métodos de acceso.
Las estrategias de administración del almacenamiento buscan obtener el mejor aprovechamiento y desempeño posibles del recurso de almacenamiento principal.
Administrador de Dispositivos de un SO de Red
El administrador de dispositivos se encarga de las comunicaciones entre las aplicaciones y los dispositivos.
Los dispositivos son componentes de hardware como unidades de disco, impresoras y puertos de comunicación capaces de enviar información al sistema operativo o recibir información de él.
El administrador de dispositivos se comunica con los manejadores de dispositivos.
Estructuras de Sistemas Distribuidos
2.1.1 Sistemas operativos en Red
2.1.2 Sistemas operativos distribuidos
2.1.3 Servicios Remotos
Estructura de un Sistema Distribuido
a) visión del usuario b) estructura del sistema (visión del diseñador)
Aplicaciones Aplicaciones Aplicaciones
Servicios Middleware
Servicios Middleware
Servicios Middleware
Sistema Operativo
Sistema Operativo
Sistema Operativo
Hardware distribuido y red de comunicaciones
Aplicaciones
Servicios del sistema
Hardware distribuido y
red
Servicios Middleware: soporte RPC/RMI, soporte a comunicación uno-a-muchos, sincronización de tiempos y ordenación de eventos, consistencia (replicación), servicios de nombres, de seguridad…
Estructura de un Sistema Distribuido
Se comporta como un SO único (visión única) Distribución con transparencia Se construyen normalmente como micro núcleos que ofrecen servicios básicos de
comunicación Todos los computadores deben ejecutar el mismo Sistema Operativo Distribuido Ejemplos : Cluster, Grid, etc.
Sistema operativo distribuidoLenguajes de programación
Aplicaciones
Red de interconexión
Hardware Hardware
Estructura de un SO Distribuido
En un sistema operativo modular se observa:- Los servicios no básicos son ejecutados por procesos- Las comunicaciones son por paso de mensajes
Tiene que estar el proceso del servicio S1 en la misma maquina ?
En un sistema operativo distribuido se observa:- Para modificar o alterar los servicios No se necesita parar la
MAQUINA.- Se consigue: Transparencia, tolerancia a fallos, Sistema mas
abierto.
Objetivo de un SO Distribuido
Integrar en un único sistema los recursos y servicios distribuidos en distintos equipos.Debe gestionar recursos de forma global:- Procesadores - Memoria- Sistema de Archivos- Dispositivos de E/S
Debe ocuparse de las comunicacionesLos mensajes se atrasan o se
pierdenPuede no estar actualizada
Siendo que la informaciónno esta centralizadaEl usuario tiene una visión de sistema centralizado
Procesos de Usuario
Servicios DisponiblesS.O. DistribuidoProcesadores distribuidos
Recursos DistribuidosSistema de
Comunicaciones
Propiedades de los Sistemas Distribuidos
Transparencia Fiabilidad y tolerancia a fallos Escalabilidad Consistencia
Visión de sistema único (Single System Image)
Propiedades de los Sistemas Distribuidos
Transparencia El usuario percibirá que el sistema es un único sistema y no varios
compones separados.
Existen ocho formas de transparencia, las que más consideración tienen en un sistema distribuido son: De acceso: no hay preocupación de la distribución de los archivos.
Los programas deben acceder de igual forma archivos locales y remotos.
De localización: Los archivos deben poder cambiarse sin que cambie el nombre.
Propiedades de los Sistemas Distribuidos
Fiabilidad Capacidad para realizar correctamente y en todo momento las
funciones para las que se ha diseñado.
Disponibilidad: Medido por la Fracción de tiempo que el sistema está operativo (%) MTBF (Mean Time Between Failures).
Tolerancia a fallos: Capacidad para seguir operando correctamente ante el fallo de alguno de sus componentes.
Propiedades de los Sistemas Distribuidos
Debe ser de fácil ampliación sin que para ello los usuarios deban modificar su protocolo de comunicación ni se afecte la EFICIENCIA del sistema.
Escalabilidad
Al crecer un sistema pude tener varios problemas:
HARDWARE
• No se puede añadir mas equipos.
• Dimensionamiento de las direcciones
SOFTWARE
• Se pierden prestaciones,
• Centralización de datos y algoritmos.
Propiedades de los Sistemas Distribuidos
Consistencia
Problemas relacionados con la replicaciónLa red de interconexión es una nueva fuente de fallosLa seguridad del sistema es más vulnerable
Problemas para mantener la consistenciaDistribución física: varias copias, cada una con su estadoErrores y/o retardos en las comunicacionesAusencia de reloj global: ¿cómo ordenar eventos?
Para un rendimiento aceptable: relajar consistencia
Estructuras de Sistemas Distribuidos
2.1.1 Sistemas operativos en Red
2.1.2 Sistemas operativos Distribuidos
2.1.3 Servicios Remotos
Servicios Remotos
Un acceso remoto es poder acceder desde una computadora a un recurso ubicado físicamente en otra computadora que se encuentra geográficamente en otro lugar, a través de una red local o externa (como Internet).
En caso de que un usuario solicita el acceso a un archivo remoto: Se localiza el servidor que contiene el archivo mediante un esquema de
nominación apropiada. Se debe efectuar la transferencia de datos para satisfacer la solicitud de
acceso remoto del usuario.
Servicios Remotos
Una de las formas más comunes de servicio remoto RPC, consiste en abstraer el
mecanismo de llamadas a procedimientos para usarse entre sistemas con
conexiones de red.
La llamada a procedimiento remoto es un protocolo que un programa puede
utilizar para solicitar un servicio de un programa ubicado en otro ordenador en
una red sin tener que comprender detalles de la red.
RPC utiliza el modelo cliente / servidor. El programa solicitante es un cliente y el
programa de prestación de servicios es el servidor.
Un RPC es una operación síncrona que necesita que el programa solicitante sea
suspendido hasta que se devuelven los resultados del procedimiento remoto.
Que son los Sistemas de Archivos Distribuidos ?
Permite a los procesos
Acceso transparente
Archivos
Servidores remotos
Que son los DFS?
Un sistema de archivos distribuidos, (DFS), es una implementación distribuida del clásico modelo de tiempo compartido de un sistema de archivos, donde varios usuarios comparten archivos y almacenan recursos.
Sistema Distribuido: colección de máquinas interconectadas por una red de comunicación.
Recursos locales: recursos con los que cuenta la máquina Recursos remotos: el resto de las máquina y sus recursos Máquina: puede ser una estación o un mainframe Servicio: software ejecutándose en una o más máquinas que
proporcionan un tipo particular de función Servidor: software de servicio en una sola máquina. Un
servidor es un proceso que implementa servicios Cliente: proceso que puede invocar un servicio a través de
un conjunto de operaciones que forman su interfaz de cliente
PUNTOS CLAVES
Que son los DFS?
Las maquinas clientes no tiene en general acceso a los bloques de almacenamiento de forma directa si no que pueden acceder a los datos a través de la red por medio de algún protocolo de red.
Los sistemas de archivos distribuidos almacena archivos en una o más maquinas denominadas servidores y los hace accesibles a otros maquinas denominadas clientes, donde se manipulan como si fueran locales.
Es soportar la misma clase de comportamiento cuando los archivos están dispersos físicamente entre los diversos sitios de un sistema distribuido
• Se caracterizan por:• La utilización efectiva de la memoria caché en el cliente para conseguir
iguales prestaciones o mejores que las de los sistemas de archivos locales• El mantenimiento de la consistencia entre múltiples copias de archivos en las
cachés de los clientes cuando son actualizadas, la recuperación después de un fallo en el servidor o en el cliente,
• Un alto rendimiento en la lectura y escritura de archivos de todos los tamaños.
Arquitecturas: Cómo se organizan?
Arquitecturas Cliente-Servidor
Sistemas de Archivo Distribuidos basados en Cluster
Modelo de Acceso Remoto Modelo de Carga y Descarga
Tendencias de los Sistemas Distribuidos
Usuario
Sistema de Archivos
NFS
CODA
OPEN GFS
GLUSTERFS
Disco
Arquitectura Cliente Servidor (I)
Uno de los sistemas de archivos más populares que trabaja con la arquitectura de acceso remoto es NFS (Network File System).
La idea básica de NFS es que cada servidor de archivos �proporcione una visión estandarizada (interfaz) de su sistema de archivos local, independientemente de la implementación de este último.
El NFS cuenta con un protocolo de comunicación que permite a los clientes acceder a los archivos guardados en el servidor. Luego, es posible que un conjunto heterogéneo de procesos (quizás ejecutándose en máquinas diferentes con SO diferentes) compartan archivos.
Implementación de NFS (I)
Un cliente accede al FS usando la interfaz local
La interfaz de Unix es reemplazada por VFS (Virtual File System)
El VFS es hoy un estándar para comunicarse con Sistemas de Archivo diferentes.
Todos los sistemas operativos modernos proporcionan un VFS
El VFS transfiere las operaciones a un sistema de archivos local o a un servidor remoto.
Replica
Arquitectura de NFS
NFS = Network File System (Originalmente desarrollado por Sun Microsystems en 1984.) Permite compartir datos entre varios ordenadores de una forma sencilla. Es un sistema de archivos distribuido para un entorno de red de área local. Posibilita que distintos sistemas conectados a una misma red accedan a
ficheros remotos ficheros remotos como si se tratara de locales. Soportar un sistema heterogéneo en donde los clientes y servidores podrían
ejecutar distintos S. O. en hardware diverso, por ello es esencial que la interfaz entre los clientes y los servidores esté bien definida.
NFS logra este objetivo definiendo dos “protocolos cliente - servidor”.
Por ejemplo: Un usuario validado en una red no necesitará hacer login a un ordenador específico: vía NFS, accederá a su directorio personal (que llamaremos exportado) en la máquina en la que esté trabajando.
CODA (II)Network File System (Licencia abierta (GPL) Desarrollado en 1987.)
Cuenta con bastantes características muy deseables para un sistema distribuido (especialmente para un clúster)
El cliente es capaz de funcionar sin problemas desconectado del servidor, ya sea porque estamos trabajando en un portátil que desconectamos de la red, por un fallo en la comunicación, o por una caída del servidor.
Replicación automática de servidores. Coda proporciona los mecanismos necesarios para realizar réplicas automáticas entre servidores, y para que los clientes puedan acceder a uno u otro de forma transparente para el usuario si alguno cae.
Modelo de seguridad propio e independiente del sistema operativo para la identificación de usuarios.
Sistemas de Archivos basados en Clúster (II)
Distribución de un archivo entre varios servidores ( Ver figura b) Técnicas de Distribución de Archivos: indican cómo se puede distribuir un archivo �
a través de múltiples servidores. Distribuyendo un archivo grande entre varios servidores es posible buscar sus
diferentes partes en paralelo. Ejemplos: GFS, Lustre �
a) Distribuye todos los archivos a través de varios servidores.b) Repartición de datos en varios discos para acceso en paralelo.
ARQUITECTURA CLUSTER- GLUSTERFS
Es un sistema de archivos de alta disponibilidad y escalabilidad que puede brindar almacenamiento a gran escala (petabytes) a bajo costo (opensource) y manejo de hasta miles de clientes
GlusterFS agrupa dispositivos de almacenamiento a través de la red y maneja la data como si fuese un solo bloque
ARQUITECTURA CLUSTER- GLUSTERFS
Método de acceso a la data: Los volúmenes de Clúster se pueden acceder de diversas maneras
Por NFS para exportar (su desventaja es que la información no es disponible si el servidor NFS se pone en baja)
Por protocolo nativo de Clúster (recomendado). Esta basado en FUSE (Fileystem user space) por lo cual hay que asegurarse que este modulo este cargado en el kernel. FUSE permite levantar el sistema de archivo de Gluster en el user space (espacio de memoria donde trabajan las aplicaciones del usuario)
Algunas aplicaciones comerciales : Gluster Virtual Appliance for Amazon Web Services: Permite el desarrollo de un servidor de almacenamiento basado en Gluster en la nube de Amazon
Sistema de Archivos Distribuido
2.2.1 Nombres y Transparencia
2.2.2 Acceso a Archivos Remotos
2.2.3 Servicios con y sin estado
2.2.4 Replicación de archivos
Nombres y Transparencia
• Servicio uniforme de nombres : Nombres orientados al usuario
• Asociación entre nombre y posición dinámica: Propiedad más
exigente que la transparencia
• Transparencia de la posición: El nombre del objeto no permite obtener
directamente el lugar donde está almacenado
• Independencia de la posición: El nombre no necesita ser cambiado
cuando el objeto cambia de lugar.
Sistema de Archivos Distribuido
2.2.1 Nombres y Transparencia
2.2.2 Acceso a Archivos Remotos
2.2.3 Servicios con y sin estado
2.2.4 Replicación de archivos
Accesos y Archivos Remotos
• La coutilización : Concite en un conjunto de criterios que se toman en cuenta al
momento que un archivo es solicitado por varios usuarios y se desea mostrar las
actualizaciones hechas a este archivo.
Unix: Las modificaciones a un archivo abierto son visibles de inmediato por
los demás usuarios. El archivo tiene una sola imagen.
Por Sesión Las modificaciones a un archivo abierto no son visibles de inmediato por los
demás usuarios. Las modificaciones que sufre un archivo son visibles solo después de que se
cierra un archivo.
Métodos de Accesos y Archivos Remotos
Modelo carga/descarga Transferencias completas del archivo Localmente se almacenan en memoria o discos locales Normalmente Coutilizan por sesión Eficiencia en las transferencias Llamada open con mucha latencia Múltiples copias de un archivo
Modelo de servicios remotos El servidor debe proporcionar todas las operaciones sobre el archivo. Acceso por bloques
Modelo cliente/servidor Empleo de caché en el cliente Combina los dos modelos anteriores.
Sistema de Archivos Distribuido
2.2.1 Nombres y Transparencia
2.2.2 Acceso a Archivos Remotos
2.2.3 Servidores con y sin estado
2.2.4 Replicación de archivos
Servidores con Estado
Cuando se abre un archivo, el servidor almacena información y da al
cliente un identificador único a utilizar en las posteriores llamadas Por Ejemplo: La tabla que asocia los descriptores de archivos con
los archivos propiamente dichos. Pueden conocer qué datos están en el cache del cliente (permiten al
cliente mantener copias locales de datos compartidos). Cuando se cierra un archivo se libera la información
Servidores sin Estado
Cuando un cliente envía una solicitud a un servidor, éste la lleva a
cabo, envía la respuesta y elimina de sus tablas internas toda la
información relativa a dicha solicitud. Por ejemplo, no registra si un archivo ha sido abierto previamente. No guarda información del cliente entre solicitudes. No mantiene un
registro de las operaciones que van dejando los clientes Cada solicitud se puede hacer una y otra vez aunque ya se hubiera
hecho anteriormente.
Ventajas Servicios con y sin Estado
Ventajas de los servidores con estado Mensajes de petición más cortos Mejor rendimiento (se mantiene información en memoria) Facilita la lectura adelantada. El servidor puede analizar el patrón de
accesos que realiza cada cliente Ventajas de los servidores sin estado
Más tolerante a fallos No son necesarios open y close. Se reduce el numero de mensajes No se gasta memoria en el servidor para almacenar el estado
Sistema de Archivos Distribuido
2.2.1 Nombres y Transparencia
2.2.2 Acceso a Archivos Remotos
2.2.3 Servicios con y sin estado
2.2.4 Replicación de archivos
Replicación de Archivos
Caché de Bloques: El empleo de cache de bloques permite mejorar el rendimiento Explota el principio de proximidad de referencias:
Proximidad temporal Proximidad espacial
Lecturas adelantadas: Mejora el rendimiento de las operaciones de lectura, sobre todo si
son secuenciales Escrituras diferidas : Mejora el rendimiento de las escrituras
Otros tipos de caché : Caché de nombres de archivos Caché de metadatos (información real) del sistema de archivos
Replicación de Archivos
Localización de las Caché en un Sistema Archivos Distribuido Caché en los servidores
Reducen los accesos a disco Caché en los clientes
Reducen el tráfico por la red Reducen la carga en los servidores Mejora la capacidad de crecimiento Dos posibles localizaciones
En discos locales: Más capacidad, más lento, no volátil, facilita la recuperación
En memoria principal: Menor capacidad, más rápido, memoria volátil
Replicación de Archivos
Funcionamiento de una Cache de bloques
Cache
Cliente
Cache
Servidor
Disco
Proceso de usuario
read()Buscar bloque.Si no está, reservar uno.
read()Buscar bloque.Si no está, reservar uno.
read()
datos
Replicación de Archivos
Tamaño de la memoria cache Mayor tamaño puede incrementar la tasa de aciertos y mejorar la
utilización de la red., pero aumentan los problemas de coherencia En memoria caché grandes, es beneficioso emplear bloques grandes
(8 KB y más) En memorias pequeñas, el uso de bloques grandes es menos
adecuado
Replicación de Archivos
Políticas de Actualización: Escritura inmediata (write-through)
Buena fiabilidad En escrituras se obtiene el mismo rendimiento que en el modelo de
accesos remotos Las escrituras son más lentas
Escritura diferida (write-back) Escrituras más rápidas. Se reduce el tráfico en la red Los datos pueden borrarse antes de ser enviados al servidor Alternativas : Volcado (flush) periódico (Sprite) y Write-on-close
Replicación de Archivos
El problema de la Coherencia El uso de caché en los clientes de un sistema de archivos introduce el
problema de la coherencia de caché: Múltiples copias.
Solución al problema de la Coherencia No emplear caché en los clientes.: Solución trivial que no permite
explotar las ventajas del uso de caché en los clientes (reutilización,
lectura adelantada y escritura diferida) Accesos remotos sobre una única copia asegura semántica UNIX Empleo de protocolos de coherencia de caché
Aplicaciones Distribuidas
• Aplicaciones paralelas- Muchas tareas a la vez- Disminuir el tiempo de ejecución
• Aplicaciones distribuidas (motivaciones):- Alto rendimiento: cluster computing- Tolerancia a fallos: replicación, transacciones
‾ Sistemas informáticos bancarios‾ La gestión de la consistencia es crítica
- Alta disponibilidad: caching, mirroring (espejo)‾ Bajo tiempo de respuesta: WWW, sistemas de ficheros.‾ La consistencia es importante, pero no crítica
- Movilidad, ubicuidad
Que es una Aplicación Distribuida ?
Es un aplicación con distintos componentes que se ejecutan en entornos separados, normalmente en diferentes plataformas conectadas a través de la red.
La distribución se refiere a la construcción de software por partes, a cada parte se le asigna una serie de responsabilidades dentro de un sistema.
La distribución habla de que las partes o componentes se ejecutan en diferentes máquinas (física) Separación en Niveles
Que es una AD ?
Programáticamente también es posible separar o agrupar los componentes (lógica). Separación en CAPAS:
• Las capas dentro de una arquitectura son un conjunto de SERVICIOS especializados que pueden ser accesibles por múltiples clientes y deben ser fácilmente reutilizables.
• Cada capa tiene N componentes• Cada componente :
• Es un elemento de software que encapsula una serie de funcionalidades
• Es una unidad independiente que puede ser usado en conjunto otras para formar un sistema mas complejo.
• Esta compuesto por clases o recursos complementarios. Paquete o Modulo
Tipos de AD ?
Aplicaciones Cliente-Servidor: el servidor proporciona y procesa los datos solicitados por el cliente; el cliente maneja la aplicación, y sus funciones son solicitar datos al servidor.
Middleware: Un conjunto de controladores, API u otro software que mejora la conectividad entre las aplicaciones de cliente y un servidor.
Soporte de Hardware (I)
¿Qué se entiende por computador?
Datos
Instrucciones
Un dato a la vez Muchos datos a la vez
Una instrucción a
la vez
SISDarquitecturas Von Neumann clásicas
SIMDprocesadores vectoriales
Muchas instrucciones
a la vez
MISDno se ha implementado
MIMDmultiprocesadores, multicomputadores,
redes
Soporte de Hardware (I)Multiprocesadores
Procesadores con base en busesConstan de cierto número de CPU conectadas a un bus común, junto con un módulo de memoria.Todos los elementos precedentes operan en paralelo.Solo existe una memoria, la cual presenta la propiedad de la coherencia:Las modificaciones hechas por una CPU se reflejan de inmediato en las subsiguientes lecturas de la misma o de otra CPU.El problema de este esquema es que el bus tiende a sobrecargarse y el rendimiento a disminuir drásticamente; la solución es añadir una memoria caché de alta velocidad entre la CPU y el bus:El caché guarda las palabras de acceso reciente.Todas las solicitudes de la memoria pasan a través del caché.
Soporte de Hardware (I)Multiprocesadores
Procesadores con conmutadorEl esquema de multiprocesadores con base en buses resulta apropiado para hasta aproximadamente 64 procesadores. Para superar esta cifra es necesario un método distinto de conexión entre procesadores (cpu) y memoria.Una posibilidad es dividir la memoria en módulos y conectarlos a las cpu con un “conmutador de cruceta” (cross-bar switch):
• Cada cpu y cada memoria tiene una conexión que sale de él.• En cada intersección está un “conmutador del punto de cruce” (crosspoint switch)
electrónico que el hardware puede abrir y cerrar:• Cuando una cpu desea tener acceso a una memoria particular, el conmutador del
punto de cruce que los conecta se cierra momentáneamente.• La virtud del conmutador de cruceta es que muchas cpu pueden tener acceso a la
memoria al mismo tiempo. Aunque no a la misma memoria simultáneamente.• Lo negativo de este esquema es el alto número de conmutadores: para “n” cpu y
“n” memorias se necesitan “n” x “n”
Soporte de Hardware (II)
MIMD: grado de acoplamiento e interconexión
grado de acoplamiento
interconexión
memoria física compartida
espacios de memoria física independientes
bus compartido multiprocesadores multicomputadores, redes LAN
red de interconexión multiprocesadoresUMA y NUMA
multicomputadores, redes WAN (Internet)
Soporte de Hardware (II)Multiprocesadores
Procesadores Conectados por redes Lan Computadores de memoria distribuidas son muy utilizadas. Precisa de red de interconexión entre los procesos. Los procesadores tienen su propia memoria local y esta memoria está
dirigida únicamente por el procesador local, de este modo un procesador no puede acceder a la memoria de otro equipo directamente.
Cada procesador funciona de manera independiente de los otros. Cuando un procesador necesita acceder a los datos que se encuentra
en la memoria de otro procesador, este acceso es a través de la red de interconexión de estas máquinas mediante el intercambio de mensajes. Esta red puede ser una red dedicada, o incluso una red ETHERNET sencilla.
Intranet Típica
the rest of
email server
Web server
Desktopcomputers
File server
router/firewall
print and other servers
other servers
Local areanetwork
email server
the Internet
Gestión Distribuida de procesos
2.3.1 Migración de procesos
2.3.2 Estados globales distribuidos
2.3.3 Gestión distribuida de procesos – exclusión Mutua
2.3.4 Interbloqueo distribuido
Gestión Distribuida de Procesos
Un proceso es un programa en Ejecución
Si dos procesos se solapan en el tiempo
Sobre un procesador Sobre Varios procesadores
Multiprogramación Ejecución en Paralelo
Memoria Compartida Unidos por una red
Sistema Multiprocesador Procesamiento Distribuido
La gestión distribuida de procesos distribuye los recursos de proceso entre todos los procesos de la red
Debe ofrecer medios para realizar operaciones con procesos locales y remotos
Debe minimizar los tiempos globales de respuesta
Reparto de la carga
- Ejecución remota- Migración
Asignación de Procesadores
Para planificación entre máquinas compatibles1. Algoritmos Deterministas/Heuristicos : Son apropiados si se pueden predecir
o se conocen todos los datos, caso contrario no es adecuado.2. Algoritmos Centralizados/Distribuidos: Mejor alternativa, Menos robusto,
sobrecarga del nodo central, mas fácil.3. Algoritmos Óptimos/Cuasi-Optimos: Es mucho mas trabajoso porque no será
suficiente una solución buena simplemente.4. Política de transferencia:
- Donde crear un proceso? Equipo local o remoto- Como se toma la decisión? Según la carga local y global- Algoritmos globales son levemente mejor pero a un coste mayor.
5. Política de Ubicación- En caso de ejecución remota . ¿a qué procesador se envía el proceso?- Esta política debe ser global, ya que se requiere información del nivel de
carga de los demás procesadores.
Gestión Distribuida de Procesos
A continuación se analizaran algunos mecanismos clave utilizados en los sistemas operativos distribuidos:
1. La migración de procesos, que es el movimiento de un proceso activo de una máquina a otra.
2. El cómo procesos en diferentes sistemas pueden coordinar sus actividades cuando cada uno está gobernado por un reloj local y cuando hay un retardo en el intercambio de información.
3. La exclusión mutua4. El interbloqueo
Migración de Procesos
La migración de procesos es la transferencia de suficiente cantidad del estado de un proceso de
un computador a otro para que el proceso ejecute en la máquina destino.
La migración de procesos con la capacidad de expulsar un proceso en una máquina y reactivarlo posteriormente en otra (expulsiva) es posible, aunque con una sobrecarga y
alta complejidad. Este coste llevó a que algunos observadores concluyesen que la migración de procesos no
era práctica. Actualmente existen nuevos desarrollos en esta área.
Migración de Procesos
La migración de procesos es deseable en sistemas distribuidos por:
• Compartición de carga. Moviendo procesos de un sistema muy cargado a otro poco cargado, la carga puede equilibrarse para mejorar el rendimiento global. Datos empíricos sugieren que son posibles mejoras del rendimiento.
• Disponibilidad. Se puede necesitar que los procesos de larga duración se muevan para sobrevivir en el caso de fallos que puedan ser conocidos anticipadamente o anticipándose a paradas del sistema planificadas. Si el sistema operativo proporciona la información, un proceso que desea continuar puede bien migrar a otro sistema o asegurarse que podrá re arrancarse en el sistema actual en algún momento posterior.
• Rendimiento de las comunicaciones. Los procesos que interaccionan intensivamente pueden llevarse al mismo nodo para reducir el coste de las comunicaciones mientras dure su interacción.
Migración de Procesos
Mecanismos de la migración:• ¿Quién inicia la migración?
• ¿Qué parte del proceso se migra?
• ¿Qué sucede con los mensajes y señales pendientes?
• Depende del objetivo del servicio de la migración.• Este modulo es el responsable de expulsar o indicar el proceso que
va emigrar.• Si el objetivo es llegar a un recurso en especifico, el procesos puede
migrar por si mismo según la necesidad
Al ser este un movimiento se lo destruye en el sistema origen y lo crea en el destino. Se mueve la imagen del proceso mismo junto con su bloque de control.
Cuando el proceso migra por si solo selecciona la maquina destino y le envía un mensaje de tarea remota. El mensaje lleva la imagen del proceso y la información de archivos abiertos.
Gestión Distribuida de procesos
2.3.1 Migración de procesos
2.3.2 Estados globales distribuidos
2.3.3 Gestión distribuida de procesos – exclusión Mutua
2.3.4 Interbloqueo distribuido
Estados Globales DistribuidosConceptos Básicos
Canal. Existe un canal entre dos procesos si intercambian mensajes. Los canales son caminos por los cuales el mensaje se
transfiere. Este es unidireccional por lo que al intercambiar mensajes los procesos necesitan al menos 2 canales.
Estado. Es la secuencia de mensajes que se haya enviado y recibido a
través de los canales que llegan al proceso
Instantánea. Una instantánea registra el estado de un
proceso. Cada instantánea incluye un registro de todos los
mensajes enviados y recibidos en todos los canales desde la
última instantánea.
Estados Globales DistribuidosConceptos Básicos
Estado Global. Estado combinado de todos los procesos.
Instantánea Distribuida Es un conjunto de instantáneas una para
cada proceso
Estados Globales Distribuidos
Las estrategias de diseño en estas áreas se complican por el hecho de que no existe un estado global del sistema. Esto es, no es posible para el sistema operativo ni para ningún proceso, conocer el estado actual de todos los procesos en un sistema distribuido.
Se puede intentar definir un estado global recolectando instantáneas de todos los procesos. una
instantánea distribuida puede indicar que un mensaje se ha recibido pero todavía no se ha enviado.
El Algoritmo de Instantánea DistribuidaUn algoritmo de instantánea distribuida registra un estado global consistente. El algoritmo asume que los mensajes se entregan en el orden en que se envían y que no se pierden mensajes. Un protocolo de transporte fiable (ej., TCP) satisface estos requisitos. El algoritmo hace uso de un mensaje de control especial denominado marcador. El algoritmo termina para un proceso una vez que ha recibido el marcador de cada canal entrante:
Estados Globales Distribuidos
G =(S,L)S ={ S1 ,S2 ,S3 .. Sm Estado interno de M procesadoresL ={ L i,j | | i,j E 1 .. M Estado de los canales unidirecc. C i,j entre procesadores. El estado del canal son los mensajes en el encolados
Gestión Distribuida de procesos
2.3.1 Migración de procesos
2.3.2 Estados globales distribuidos
2.3.3 Gestión distribuida de procesos – exclusión Mutua
2.3.4 Interbloqueo distribuido
Gestión distribuida de procesos exclusión mutua
Si dos o mas procesos compiten por el uso de los recursos del sistema, es necesario un mecanismo
que haga cumplir la exclusión mutua
Para el uso exitoso de la concurrencia entre procesos es necesaria la
capacidad de definir secciones críticas y hacerlas cumplir
La exclusión mutua debe hacerse cumplir: en un instante dado, solo deja entrar un proceso a una sección critica para el mismo recurso u
objeto compartido.
Un proceso solo puede estar en la
sección critica durante UN tiempo
Gestión distribuida de procesos – exclusión mutua
Los sistemas de exclusión mutua pueden ser centralizados o distribuidos.1. Centralizado (sencillo)
El nodo de control es el que aprueba una petición de un recurso hasta que sea liberado
Problema: Si falla no funcionan las asignaciones, puede llegar a ser como cuello de botella.
2. Distribuido: • Todos los nodos disponen de una cantidad igual de información, por termino medio.• Cada nodo tiene una representación parcial del sistema total, esto para tomar decisiones• Todos los nodos tienen igual responsabilidad en la decisión final.
Problema: No existe un reloj común para regular los sucesos y hacen mas difícil idear ALGORTMOS
DISTRIBUIDOS de exclusión mutua e Interbloqueo
Gestión Distribuida de procesos
2.3.1 Migración de procesos
2.3.2 Estados globales distribuidos
2.3.3 Gestión distribuida de procesos – exclusión Mutua
2.3.4 Interbloqueo distribuido
Interbloqueo Distribuido
El manejo del interbloqueo se complica en un sistema distribuido porque ningún nodo tiene conocimiento preciso del estado actual del sistema global y porque la transferencia de cada mensaje entre procesos involucra un retardo impredecible.La literatura ha prestado atención a dos tipos de interbloqueo distribuido: aquellos que surgen en la ubicación de recursos, y aquellos que surgen con la comunicación de mensajes.
En los interbloqueos por recursos, los procesos intentan acceder a recursos, tales como objetos en una base de datos o recursos de E/S en un servidor; el interbloqueo sucede si cada proceso de un conjunto de procesos solicita un recurso que tiene otro proceso del conjunto.
En los interbloqueos en comunicaciones, los mensajes son los recursos por los cuales esperan los procesos; el interbloqueo sucede si cada proceso de un conjunto está esperando un mensaje de otro proceso en el conjunto y ningún proceso en el conjunto envía nunca un mensaje.
Interbloqueo Distribuido
Este fenómeno se produce debido a:1. Exclusion mututa: Solo 1 procesos puede usar 1 recurso en 1 instante.2. Retencion y espera: Un proceso puede usar los recursos asignados mientras
espera se le asigne otros.3. No expulsión: No se puede quitar un recurso a un proceso q lo esta
utilizando.4. Circulo visioso de espera: Existe una cadena cerrada de procesos, tal que
cada procesos retiene al menos un proceso que necesita el siguiente proceso de la cadena.
El manejo del interbloqueo es complicado pero se puede:5. Prevenir6. Predecir7. Detectar
Algoritmo de la cola distribuida
• Debido a la falta de un reloj común o sincronizador se propuso el método : Registro de tiempo o Marca de Tiempo.
• El esquema de marca de tiempo busca ordenar los sucesos (mensajes de envió no recepción).
• Para logar la gestión se ha de utilizar algoritmos tales como: Cola Distribuida y el Paso de Testigo.
Algoritmo de la cola distribuida
Supuestos Cumple conSe tienen N nodos numerados en forma única
Exclusión mutua: Las solicitudes de entrada en la sección crítica se manejan de acuerdo al orden de los mensajes impuesto por el mecanismo de marcas de tiempo
Los mensajes de un proceso a otro se reciben en el mismo orden en que fueron enviados
Equidad: Al estar ordenados por marcas de tiempo, todos tienen igual oportunidad.
Cada mensaje es entregado en un tiempo finito.
No hay Interbloqueo: Debido a que las marcas de tiempo son de forma consistente no puede ocurrir un interbloqueo.
Los mensajes son enviados en forma directa sin proceso intermedios.
No hay Inanición: Una vez se hubiera terminado una sección critica el proceso emitirá el mensaje de Liberación..
Algoritmo de Cola Distribuida
Sistema de Ejecución Distribuida
2.4.1 Soporte de software distribuido con Middleware
2.4.2 Programas de aplicación distribuidos clásicos
2.4.3 Soporte middleware => programación distribuida clásica
2.4.4 Programación distribuida en el WEB
Ejecución Remota
Estación Local Estación RemotaProgram
aServicio Remoto
Estación Remota
ImagenProgram
aEjecución Remoto
Cuándo es Conveniente- Reparto General Menor tiempo global de ejecución - Mejorar tiempo de ejecución en aplicaciones paralelas- Cuando se requieren servicios especiales- Volumen de datos remotos de entrada tamaño del proceso local
Requisitos- Debe existir algún mecanismo de informe del estado de la carga- Un proceso remoto puede abandonar la ejecución
Estación LocalProgram
a
Soporte de software distribuido con middleware
El software distribuido requerido para facilitar las interacciones cliente-servidor se denomina middleware.
El acceso transparente a servicios y recursos no locales distribuidos a través de una red se provee a través del middleware, que sirve como marco para la comunicaciones entre las porciones cliente y servidor de un sistema.
El middleware define: el API que usan los clientes para pedir un servicio a un servidor, la transmisión física de la petición vía red, y la devolución de resultados desde el servidor al cliente.
Ejemplos de middleware estándar : ODBC, para bases de datos, Lotus para groupware, HTTP y SSL para Internet y CORBA, DCOM y JAVA RMI para objetos distribuidos.
El middleware fundamental o genérico es la base de los sistemas cliente-servidor.
Soporte de software distribuido con middleware
Servicio Comunicación
Servicio Acceso a
datos
Servicio de Planificación de ejecución
Servicio de Seguridad
Servicio de Directorio
Servicios Middleware
Soporte de software distribuido con middleware
MOM
RPC DTPM
ORB
Para base de datos
Tipos Middleware
La Web
Soporte de software distribuido con middleware
Si dos aplicaciones se quieren comunicar, hay que resolver la comunicación entre los procesos.
Si las aplicaciones se conectan directamente a software de red, entonces no se necesita Middleware: Este enfoque dificulta el desarrollo de las aplicaciones: Puesto que se deben programar módulos de bajo nivel y esto se hace repetitivo para cada aplicación a conectar.
El software de Middleware permite realizar esta conexión a través de interfaces de alto nivel. A manera de ejemplo la invocación remota de un procedimiento, puede realizarse como si fuera local.
Sistema de Ejecución Distribuida
2.4.1 Soporte de software distribuido con Middleware
2.4.2 Programas de aplicación distribuidos clásicos
2.4.3 Soporte middleware => programación distribuida clásica
2.4.4 Programación distribuida en el WEB
Programas de aplicación distribuidos clásicos
Una aplicación distribuida que sigue el modelo cliente-servidor tiene:• Lado servidor: Programa que se ejecuta en un computador que está conectado
a una red. Esta a la escucha en un puerto, esperando las peticiones de los clientes; por ejemplo, un servidor Web escucha en el puerto 80.
• Lado cliente: Programa que ejecuta el usuario de la aplicación. El cliente hace sus peticiones al servidor a través de la red. Por ejemplo, un navegador Web.
Protocolo de aplicación propicia la comunicación entre el cliente y el servidor. El protocolo define el tipo de mensajes intercambiados: Por ejemplo, el protocolo de la capa de aplicación de la Web, HTTP, define el
formato y la secuencia de los mensajes transmitidos entre el navegador y el servidor Web.
Algunas de las aplicaciones distribuidas más conocidas son: Remote login Correo electrónico Navegación Web.
Sistema de Ejecución Distribuida
2.4.1 Soporte de software distribuido con Middleware
2.4.2 Programas de aplicación distribuidos clásicos
2.4.3 Programación distribuida clásica
2.4.4 Programación distribuida en el WEB
Programación DistribuidaArquitectura a 4 capas
Capa de NegocioSi nos quedamos con 2 capas, seria muy
complicado tener que crear aplicaciones por separado sistemas operativos distintos
Sistema de Ejecución Distribuida
2.4.1 Soporte de software distribuido con Middleware
2.4.2 Programas de aplicación distribuidos clásicos
2.4.3 Programación distribuida clásica
2.4.4 Programación distribuida en el WEB
Programación distribuida en el WEB
Un servicio web (en inglés, Web Service o Web services) es una tecnología que utiliza un conjunto de protocolos y estándares que sirven para intercambiar datos entre aplicaciones.
Distintas aplicaciones de software desarrolladas en lenguajes de programación diferentes, y ejecutadas sobre cualquier plataforma, pueden utilizar los servicios web para intercambiar datos en redes de ordenadores como Internet.
La interoperabilidad se consigue mediante la adopción de estándares abiertos.
Instalar y configurar un clúster OPEN
Taller 4
• Los clúster se presentan como una solución económica viable para obtener una gran capacidad computacional.
• En junio de 2005, el 60,8% de los 500 computadoras más veloces del mundo eran clúster.
• En nuestro país existe una gran cantidad de equipos que se dan de baja o se dejan de usar por que se consideran obsoletos; sin embargo, podrían usarse para construir un clúster que presente características de procesamiento realmente buenas, y el costo involucrado en la construcción sería relativamente bajo.
• La aplicación desarrollada fue concebida con la intención de demostrar las bondades del clúster. Utilizando el lenguaje C++ y la librería de paso de mensajes MPI, esta aplicación permite resolver Cadenas de Markov que involucran resolución de sistemas de ecuaciones, y operaciones entre matrices (multiplicación, potencia), haciendo uso de la capacidad computacional que el clúster ofrece.
Sistemas Operativos. Willian Stallings. 5ta Ed. http://www.dia.eui.upm.es/Asignatu/Sis_dis/Paco/SOD.pdf
Fuente de Datos
Recommended