Date post: | 22-Jan-2018 |
Category: |
Engineering |
Upload: | victor-zapata |
View: | 284 times |
Download: | 2 times |
“Valora las alternativas y ventajas para la implantación
de un sistema distribuido (Compartir Recursos) ”
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
Una definición de sistema distribuido
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
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)
“A distributed system is a collection of independent computers that appears to
its users as a single coherent system”
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
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
Desventajas respecto a un 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
Un sistema operativo de red es un sistema operativo de computadora diseñadopara administrar y apoyar a las estaciones de trabajo, computadoras personales yservidores 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 sulocalización)
Sistema operativo
Lenguajes de programación
Aplicaciones
Red de interconexión
Hardware
Sistema operativo
Lenguajes de programación
Aplicaciones
Hardware
Factores que empezaron con el desarrollo e implementación de los sistemas
operativos de red para:
Redes de área local. (LAN)
Redes de área amplia. (WAN)
Cada computadora tiene su sistema operativo privado.
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.
El deseo de mejorar el desempeño de las computadoras.
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.
UNIX
Los 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 potecció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.
Los sistemas operativos realizan muchas funciones, como:
Planificar la distribución entre los usuarios.
Evitar que los usuarios se interfieran.
Proporcionar la interfaz con el usuario.
Permitir que los usuarios compartan entre sí el hardware - datos.
Administración de recursos compartidos
Facilitar la entrada y salida.
Recuperarse de los errores.
Organizar los datos para lograr un acceso rápido y seguro.
El sistema de archivos de un sistema operativo es el administrador
de ficheros.
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.
Están dirigidas a la obtención del mejor uso posible del recurso del
almacenamiento principal .
Se dividen en las siguientes categorías:
Estrategias de: búsqueda por demanda o de búsqueda anticipada.
Estrategias de colocación.
Estrategias de reposición.
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.
Visión de sistema único (Single System Image)
Propiedades deseables:
Transparencia
Fiabilidad y tolerancia a fallos
Escalabilidad
Consistencia
Consistencia
Problemas relacionados con la replicación
La red de interconexión es una nueva fuente de fallos
La seguridad del sistema es más vulnerable
Problemas para mantener la consistencia
Distribución física: varias copias, cada una con su estado
Errores y/o retardos en las comunicaciones
Ausencia de reloj global: ¿cómo ordenar eventos?
Para un rendimiento aceptable: relajar consistencia
Transparencia
Es la ocultación al usuario que los componentes de este sistema distribuido están separados.
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 la transparencia a nivel de acceso y la transparencia a nivel de localización.
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.
Fiabilidad
Capacidad para realizar correctamente y en todo momento las funciones
para las que se ha diseñado
Disponibilidad
• Fracción de tiempo que el sistema está operativo (%)
Parámetros: MTBF (Mean Time Between Failures).
Tolerancia a fallos
• Capacidad para seguir operando correctamente ante el fallo de alguno de
sus componentes.
Debe ser de fácil ampliación sin quepara ello los usuarios debanmodificar su protocolo decomunicación ni se afecte laEFICIENCIA del sistema.
a) visión del usuario b) estructura del sistema (visión del diseñador)
Aplicaciones Aplicaciones Aplicaciones
Servicios
Middleware
Servicios
Middleware
Servicios
Middleware
Sistema
Operativ
o
Sistema
Operativ
o
Sistema
Operativ
o
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…
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 distribuido
Lenguajes de programación
Aplicaciones
Red de interconexión
Hardware Hardware
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 mediante un esquema de nominación apropiada el servidor
que contiene el archivo
Se debe efectuar la transferencia de datos para satisfacer la solicitud de
acceso remoto del usuario.
Una de las formas más comunes de servicio remoto RPC, fue diseñado como una
forma de abstraer el mecanismo de llamadas a procedimientos para usarse entre
sistemas con conexiones de red.
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. Al igual que una llamada a procedimiento ordinario o local, un RPC es una
operación que requiere el programa síncrono solicitando ser suspendido hasta que se
devuelven los resultados del procedimiento remoto. Sin embargo, el uso de procesos
ligeros o de hilos que comparten el mismo espacio de direcciones permite a varios PCs
que se ejecutan simultáneamente.
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 interconectadaspor 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 queproporcionan un tipo particular de función
Servidor: software de servicio en una sola máquina Unservidor es un proceso que implementa servicios
Cliente: proceso que puede invocar un servicio a través deun conjunto de operaciones que forman su interfaz de cliente
PUNTOS
CLAVES
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 prestacioneso 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 losclientes cuando son actualizadas, la recuperación después de un fallo en el servidor o en elcliente,
Un alto rendimiento en la lectura y escritura de archivos de todos los tamaños.
Arquitecturas Cliente-Servidor
Sistemas de Archivo Distribuidos basados en Cluster
Modelo de Acceso Remoto Modelo de Carga y Descarga
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.
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.
Network File System (Licencia abierta (GPL) Desarrollado en 1987.)
Cuenta con bastantes características muy deseables para un sistema
distribuido (especialmente para un cluster)
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.
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.
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
Método de acceso a la data Los volúmenes de Clúster se pueden acceder de diversas maneras, se
puede utilizar NFS para exportar o también el protocolo nativo de
Clúster que es el más recomendado. Este protocolo 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
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
Servicio uniforme de nombres para todos los objetos: 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.
Diferentes esquemas para diferentes archivos. (Varios servidores)
Escalabilidad: Facilidad de crecimiento
Replicación
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
La coutilización
La semántica de coutilización es 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.
Semántica UNIX
Las modificaciones a un archivo abierto son visibles de inmediato por los
demás usuarios.
El archivo tiene una sola imagen que intercala todos los accesos, sea cual sea
su origen.
Semántica de 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 Acceso a Archivos
Modelo carga/descarga
Transferencias completas del archivo
Localmente se almacenan en memoria o discos locales
Normalmente utilizan semántica de 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.
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
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 (stateless)
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 debe ser auto contenida. Operaciones idempotentes
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
Es necesario en invalidaciones iniciadas por el servidor
Ventajas de los servidores sin estado
Más tolerante a fallos
No son necesarios open y close. Se reduce el nº de mensajes
No se gasta memoria en el servidor para almacenar el estado
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
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
Caché de metadatos del sistema 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
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
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
Depende de las características de las aplicaciones
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
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)
Write-on-close
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.
El problema surge cuando se coutiliza un archivo en escritura:
Coutilización en escritura secuencial
Típico en entornos y aplicaciones distribuidas.
Coutilización en escritura concurrente
Típico en aplicaciones paralelas.
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)
No utilizar caché en los clientes para datos compartidos en escritura (Sprite).
Accesos remotos sobre una única copia asegura semántica UNIX
Empleo de protocolos de coherencia de caché
• Aplicaciones paralelas Muchas tareas a la vez
• Objetivo principal: 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
• Bajo tiempo de respuesta: WWW, sistemas de ficheros.
• La consistencia es importante, pero no crítica
• Movilidad, ubicuidad: aplicaciones AmI
Es un aplicación con distintos componentes que seejecutan en entornos separados, normalmente endiferentes plataformas conectadas a través de la red.
La distribución se refiere a la construcción desoftware por partes, a cada parte se le asignauna serie de responsabilidades entero de unsistema.
La distribución habla de que las partes ocomponentes se ejecutan en diferentesmáquinas (física) Separación en Niveles
Programáticamente también es posible separar o agrupar loscomponentes (lógica). Separación en CAPAS:
• Las capas dentro de una arquitectura son un conjunto deSERVICIOS especializados que pueden ser accesibles pormúltiples clientes y deben ser fácilmente reutilizables.”
• Cada capa tiene N componentes
• Cada componente :
• Es un elemento de software que encapsula una serie defuncionalidades
• Es una unidad independiente que puede ser usado enconjunto otras para formar un sistema mas complejo.
• Esta compuesto por clases o recursos complementarios. Paquete o Modulo
Aplicaciones Cliente-Servidor: el servidor seproporciona y procesa los datos solicitados por elcliente; el cliente maneja la aplicación, y susfunciones son solicitar datos al servidor.
Middleware: Un conjunto de controladores, API uotro software que mejora la conectividad entrelas aplicaciones de cliente y un servidor.
¿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
Procesadores con base en buses
Constan 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é.
Procesadores con conmutador
El 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”
MIMD: grado de acoplamiento e interconexión
grado de acoplamiento
interconexión
memoria física compartidaespacios de memoria física
independientes
bus compartido multiprocesadores multicomputadores, redes LAN
red de interconexiónmultiprocesadores
UMA y NUMA
multicomputadores, redes WAN
(Internet)
Procesadores Conectados por redes Lan
Computadores de memória distribuídas son muy utilizadas.
Presisan de red de interconexion entre los processos.
Los procesadores tienen su propia memoria local y esta memoria está
dirigida únicamente por el procesador local, de deste 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.
the res t of
em ail server
Web server
Desktopcomputers
File serv er
router/ f irewall
print and other serv ers
other servers
Local area
network
em ail server
the Internet
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
Para llevar a cabo la ejecución remota o
la migración de procesos , es necesario el
sistema tenga políticas de asignación de
procesadores.
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 mutua
4. El interbloqueo
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.
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.
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 vaemigrar.
• Si el objetivo es llegar a un recurso en especifico, el procesos puedemigrar por si mismo según la necesidad
Al ser este un movimiento se lo destruye en el sistema origen y locrea en el destino. Se mueve la imagen del proceso mismo juntocon su bloque de control.
Cuando el proceso migra por si solo selecciona la maquina destino yle envía un mensaje de tarea remota. El mensaje lleva la imagen delproceso y la información de archivos abiertos.
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
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.
Estado Global. Estado combinado de todos los
procesos.
Instantánea Distribuida Es un
conjunto de instantáneas una para
cada proceso
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.
Un proceso tan sólo puede conocer el estado actual de todos los procesos en el
sistema local, accediendo a los bloques de control de proceso en memoria.
Para los procesos remotos, un proceso tan sólo puede conocer información de
estado que se reciba vía mensajes, lo que representa el estado del proceso remoto
en algún momento del pasado.
El problema es que el estado global real no puede determinarse debido al lapso de
tiempo asociado con la transferencia de los mensajes.
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 Distribuida
Un 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:
G =(S,L)
S ={ S1 ,S2 ,S3 .. Sm Estado interno de M procesadores
L ={ 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
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
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
secion critica
durante UN tiempo
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
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
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.
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:
1. Prevenir
2. Predecir
3. Detectar
• 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.
Supuestos Cumple con
Se 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 Inanicion: Una vez se hubiera terminado una
sección critica el proceso emitirá el mensaje de
Liberaciòn..
Algoritmo de Cola 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
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 para dominios específicos incluyen:
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.
Servicio Comunicación
Servicio Acceso a datos
Servicio de Planificación de
ejecuciónServicio de Seguridad
Servicio de Directorio
Servicios 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.
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
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.
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
Capa de NegocioSi nos quedamos con 2 capas, seria muy complicado
tener que crear aplicaciones por separado sistemas
operativos distintos
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
Sistemas Operativos. Willian Stallings. 5ta Ed.
http://www.dia.eui.upm.es/Asignatu/Sis_dis/Paco/SOD.pdf