Professional Documents
Culture Documents
NACIONAL
ESCUELA DE INGENIERA
1 MECNICA Y ELCTRICA
UNIDAD CULHUACN
INGENIERA EN COMPUTACIN
PROFESORA:
SALAS JIMNEZ VERNICA
ALUMNO:
RAMREZ RAYGOZA JUAN JOS
SIGNATURA:
SISTEMAS DISTRIBUIDOS
GRUPO:
8CM12
TEMA:
SISTEMAS DISTRIBUIDOS
FECHA:
6 DE MARZO DEL 2017
SISTEMAS DISTRIBUIDOS
NDICE
CAPITULO 1
1.1 Introduccin a los sistemas distribuidos
1.2 Caractersticas de un sistema distribuido
2 Heterogeneidad
1.2.1
1.2.2 Extensibilidad
1.2.3 Seguridad
1.2.4 Escalabilidad
1.2.5 Control de errores
1.2.6 Concurrencia
1.2.7 Transparencia
1.3 Modelos arquitectnicos
1.4 Modelo fundamentales
1.5 Recursos de comunicacin
1.5.1 Protocolos TCP/IP
1.5.2 Servicios y puertos
1.5.3 Procesos y demonios
CAPTULO 2
2.1 Introduccin a los sistemas de multiprocesamiento
2.2 Clasificacin de los sistemas de multiprocesamiento
2.2.1 Fuertemente acoplados
2.2.2 Dbilmente acoplados
2.3 Sistemas de cluster
2.3.1 Multiprocesamiento dedicado
2.3.2 Multiprocesamiento compartido
2.4 Protocolos de comunicacin
2.5 Paso de mensajes
2.6 Objetos remotos
2.7 Procedimientos remotos
CAPTULO 3
3.1 Almacenamiento de alta disponibilidad
3.2 Servicios locales de alta disponibilidad
3.2.1 Arreglos de discos
3.2.2 Manejo de transacciones
3.3 Servicios distribuidos de alta disponibilidad
3.3.1 Servicios de almacn de archivos
3.3.2 Servicios de distribucin de informacin
3.4 Servicios de Directorio y Bsqueda
3.5 Servicios de archivos en red
SISTEMAS DISTRIBUIDOS
3.6 Replicacin
CAPTULO 1
SISTEMAS DISTRIBUIDOS
1.1 INTRODUCCIN A LOS SISTEMAS
DISTRIBUIDOS
4
La Computacin Distribuida, se puede definir para referirse a cualquier
sistema en el que mltiples agentes autnomos, cada uno con capacidades
de cmputo individual, se comunican entre s y afectan mutuamente su
comportamiento. Los agentes, usualmente llamados procesadores, procesos
o nodos, pueden ser desde computadoras completas hasta autmatas
celulares con capacidad de cmputo y memoria muy limitados que se
pueden comunicar mediante mensajes.
SISTEMAS DISTRIBUIDOS
varios procesadores autnomos que no comparten memoria principal, pero
cooperan mediante el paso de mensajes sobre una red de comunicaciones''.
Y segn Schroeder, todo sistema distribuido tiene tres caractersticas
bsicas. La existencia de varias computadoras, en general, cada una con su
propio procesador, memoria local, subsistema de entrada/salida y quizs
incluso memoria persistente.
1.2.1 HETEROGENEIDAD
Al hablar de heterogeneidad nos referimos a la variedad y diferencia que
podemos encontrar en los elementos que componen una red de
computadoras sobre la que se ejecuta un sistema distribuido, dicha
heterogeneidad no slo se aplica a las redes y al hardware de las
computadoras, sino tambin a los sistemas operativos, los lenguajes de
programacin y las implementaciones en las que trabajan los diferentes
desarrolladores.
SISTEMAS DISTRIBUIDOS
Un ejemplo de esto lo podemos ver muy claro en Internet, ya que es una red
que est conformada por muchos tipos de redes cuyas diferencias se
encuentran enmascaradas, puesto que todas las computadoras que se
conectan a este utilizan los protocolos de Internet para comunicarse una con
otra, as una computadora conectada a una red Ethernet puede comunicarse
con otra computadora conectada a una red TokenRing, basta con que se
haga una
SISTEMAS DISTRIBUIDOS
1.2.2 EXTENSIBILIDAD
La portabilidad por su parte caracteriza a que nivel puede ser ejecutada una
aplicacin desarrollada para un sistema distribuido A sobre un sistema
distribuido B que implementa las mismas interfaces del sistema A, pero sin
hacerle modificaciones.
SISTEMAS DISTRIBUIDOS
Uno de los principales objetivos que se persiguen al desarrollar un sistema
operativo abierto, es que este sea flexible, lo que implica que dicho sistema
puede ser integrado por diferentes componentes (tanto de hardware como de
software), posiblemente de diferentes proveedores, que nuevos componentes
pueden agregarse al sistema y que componentes existentes pueden ser
reemplazados sin afectar el funcionamiento de los componentes ya existentes,
8
en otras palabras, un sistema distribuido abierto debe de ser extensible.
1.2.3 SEGURIDAD
SISTEMAS DISTRIBUIDOS
El alto valor de que tiene la informacin es la razn principal por la que esta se
puede ver amenazada de muchas formas, entre las principales podemos
encontrar:
Interrupcin: Destruye la
informacin o la inutiliza. Ataca la
disponibilidad.
9
Modificacin: Modifica la
informacin. Ataca la integridad.
Sin embargo, estas tcnicas parecen no ser suficientes para evitar que intrusos
logren interferir con el flujo de informacin ptimo de un sistema, ya que
encuentran formas de brincarse las barreras de seguridad de muchas
organizaciones y adems siguen ideando nuevas formas de atacar y amenazar
la informacin. Como hoy en da la capacidad de los sistemas distribuidos ha
crecido mucho, en ocasiones resulta muy difcil o incluso imposible bloquear el
servicio utilizando una sola computadora atacante, por lo que ahora se han
desarrollado los ataques de denegacin de servicio distribuidos, los cuales
hacen uso de miles o incluso millones de computadoras para generar las
peticiones al sistema que se desea bloquear, por lo que bloquear un ataque de
esta magnitud resulta sumamente complicado.
SISTEMAS DISTRIBUIDOS
Si bien no podemos asegurar que un sistema distribuido sea cien por ciento
seguro, es importante contar con un esquema de seguridad lo ms robusto
posible que, a pesar de no ser inmune a todo tipo de ataques, si ser capaz de
frenar la gran mayora de dichos ataques.
SISTEMAS DISTRIBUIDOS
La tecnologa de encriptacin de informacin destinada a pasar a travs de la
red ha evolucionado bastante, hacindose popular el trmino VPN para hacer
referencia a canales que encriptan la informacin de un modo ms o menos
transparente. Hay soluciones propietarias, as como estndares relativamente
implementados como IP Sec. Ciertas aplicaciones estndares han recibido
soluciones de encriptacin tambin estndar. El caso del Web encriptado bajo
SSL11(HTTPS) junto con la industria de certificados digitales es el caso ms
conspicuo. De igual modo los estndares para correo electrnico PGP (o
derivados) y S/MIME son integrados cada vez con mayor frecuencia en las
aplicaciones de los usuarios finales. Hay muchas ms recomendaciones de
seguridad como, por ejemplo:
o No confiar en la autenticacin estndar.
o No usar la configuracin "estndar".
o Educar a los usuarios.
o Ejecutar slo los servicios imprescindibles-
o Mantenerse al da con las actualizaciones y hacer chequeos regulares.
o Establecer planes de contingencia y sistemas de respaldo.
o Mantener contacto con el proveedor de lneas de comunicacin.
o No permitir conexiones directas desde la red interna a Internet.
o Hacer uso de una red perimtrica o zona desmilitarizada.
o Prcticas de programacin segura,
o Vigilancia.
o Establecimiento de polticas, etc.
1.2.4 ESCALABILIDAD
SISTEMAS DISTRIBUIDOS
Cuando se necesita escalar un sistema a un nivel ms alto es muy comn que
surja algn tipo de problema. Si consideramos la escalabilidad con respecto al
tamao de un sistema, nos encontramos con las limitaciones que presentan los
servicios, los datos y los algoritmos centralizados.
En muchos sistemas distribuidos es comn encontrar servicios centralizados,
es decir, que son implementados en un mismo servidor, lo que puede
12
ocasionar un problema muy obvio: este servidor puede convertirse en un cuello
de botella si el nmero de usuarios crece, y a pesar de tener una capacidad de
procesamiento y almacenamiento virtualmente ilimitada, la comunicacin con
este servidor puede llegar a tener un lmite y eventualmente impedir el
crecimiento del sistema. Desafortunadamente el uso de un slo servidor puede
ser inevitable, ya que por lo general tenemos servicios que trabajan con
informacin muy sensible y que tiene que ser lo ms segura posible, por lo que
el tener esta informacin almacenada en diferentes servidores puede llegar a
poner la informacin en riesgo y hacer el sistema ms vulnerable.
El uso de algoritmos centralizados es en teora la solucin ptima a un
problema de computacin distribuida, sin embargo, en la prctica podemos ver
que el uso de este tipo de algoritmos en un sistema distribuido grande no es
una buena idea, ya que colectar y transportar los datos de entrada y salida del
sistema hacia un slo punto en el que se computan dichos datos pudiese
sobrecargar parte de la red con todos los mensajes que necesita enviar y
recibir, adems de que el computo de toda la informacin en una sola mquina
tiene ms riesgo a fallos y puede resultar ms tardada. La solucin a este
problema es el uso de algoritmos descentralizados, los cuales cuentan con
ciertas caractersticas que los diferencian de los algoritmos centralizados, entre
las que podemos mencionar:
SISTEMAS DISTRIBUIDOS
difusiones o transmisiones de tipo broadcast, lo que hace mucho ms fcil
el desarrollo de sistemas distribuidos.
La escalabilidad con respecto a la localizacin o rea de implementacin est
directamente relacionada con los problemas de soluciones centralizadas
comentados anteriormente.
13
Finalmente, podemos mencionar los problemas que acarrea la escalabilidad de
la administracin de un sistema distribuido. Este problema se da cuando un
sistema distribuido de expande a otro dominio, que por lo general contar con
diferentes polticas de uso y pago de recursos, administracin y seguridad. Por
lo general cuando esto pasa se deben de tomar al menos dos tipos de medidas
de seguridad:
o El sistema distribuido tiene que protegerse de ataques malignos
provenientes del nuevo dominio, y restringir el acceso a los servicios y datos
que no estn a disponibilidad de los usuarios del mismo.
o El nuevo dominio tiene que protegerse de ataques malignos provenientes
del sistema distribuido. Bsicamente, el nuevo dominio no sabe qu tipo de
informacin puede esperar del cdigo enviado por el nuevo dominio por lo
que pudiera decidir limitar los permisos de acceso a dicho cdigo.
Tcnicas de Escalabilidad
Como los problemas de escalabilidad de los sistemas distribuidos se
manifiestan como problemas de rendimiento causados por la capacidad
limitada de servidores y de las redes de comunicaciones, existen solamente
tres tcnicas de escalabilidad:
o Eliminar la latencia de las comunicaciones: es til en el caso de querer
lograr la escalabilidad geogrfica de un sistema, la idea bsica es
simple: tratar de evitar la espera de respuestas a las peticiones que se
hagan a servicios remotos lo ms que se pueda.
o La distribucin, que consiste en tomar un elemento, separarlo en partes
pequeas y distribuir esas partes en todo el sistema.
o La replicacin aumenta la disponibilidad de los componentes del sistema
y adems ayuda a balancear la carga entre los componentes que se
replican, con lo que se logra una mejora del rendimiento del sistema.
El tratamiento
14 de fallos en un sistema distribuido es una tarea difcil, pero que
se puede lograr si se utilizan las tcnicas adecuadas, segn el sistema que se
desee proteger. Algunas de las tcnicas ms comunes son las siguientes:
Recuperacin Frente a Fallos: Una vez que fue detectado un fallo y que se
ha decidido arreglarlo, hay que encontrar la mejor manera de hacerlo, y
adems, de recuperar el estado del sistema antes de que ocurriera el fallo;
esto requiere del software adecuado para poder reconstruir o bien retractar los
cambios que no fueron completados al momento en que fue interrumpido el
sistema.
1.2.6 CONCURRENCIA
1.2.7 TRANSPARENCIA
Se dice que un sistema distribuido es transparente, cuando este es capaz de
presentarse ante los usuarios y las aplicaciones como si fuese un sistema que
corre en una sola computadora, y no como un sistema cuyos procesos y
recursos estn distribuidos fsicamente en varias computadoras.
SISTEMAS DISTRIBUIDOS
Tipos de Transparencia:
Segn el Manual de Referencia ANSA y el Modelo de Referencia para el
Procesamiento Distribuido Abierto de la Organizacin Internacional de
Estndares (ISO 1995), el concepto de transparencia de puede aplicar a 8
aspectos diferentes de un sistema distribuido:
o Transparencia de Acceso: oculta las diferencias entre la representacin de
16
los datos y la manera en que los recursos son accedidos.
o Transparencia de Ubicacin: oculta la localizacin de los recursos y permite
el acceso a los mismos sin la necesidad de conocer su localizacin.
o Transparencia de Migracin: oculta que un recurso o un cliente del sistema
sea reubicado, lo que permite hacer dichas reubicaciones sin afectar la
operacin de los usuarios y los servicios.
o Transparencia de Recolocacin: oculta que un recurso o un cliente del
sistema pueda moverse a una ubicacin diferente mientras estn en uso.
o Transparencia de Replicacin: oculta la existencia de mltiples ejemplares
del mismo recurso.
o Transparencia de Concurrencia: oculta que un recurso sea compartido por
varios usuarios sin interferir entre ellos mismos.
o Transparencia Frente a Fallos: oculta el fallo y recuperacin de un recurso
dentro del sistema, dejando que los usuarios terminen sus tareas a pesar de
los fallos de hardware o software que pudieran presentarse.
o Transparencia de Persistencia: oculta si un recurso (de software) est
almacenado en memoria o en disco.
Grado de Transparencia.
SISTEMAS DISTRIBUIDOS
A pesar de que la transparencia es una caracterstica generalmente deseable
para cualquier sistema distribuido, hay situaciones en las que el pretender
enmascarar todos los aspectos relacionados con la distribucin de los
componentes del sistema puede no ser lo ms ptimo; en algunas ocasiones es
mejor hacer del conocimiento del usuario que el sistema est compuesto por
varios elementos y que por ms ptima que sea la transmisin de mensajes o
17
la distribucin y replicacin de componentes, habr cierto tiempo de respuesta
mnimo entre cada transaccin que es imposible evitar. Hay tambin una
relacin directa entre el nivel de transparencia y el rendimiento de un sistema
distribuido, por lo que lo ideal es encontrar un bien equilibrio entre ambos
factores.
Los sistemas distribuidos(SD) son los sistemas software ms complejos. Con los
modelos arquitectnicos tratamos de simplificar estos sistemas viendo la
colocacin de las partes y las relaciones entre ellas. Incluye tambin el control
global de estructura, los protocolos para comunicacin, sincronizacin, y
acceso a datos, la asignacin de funcionalidad, distribucin fsica, escalamiento
y desempeo, dimensiones de evolucin y seleccin de alternativas de diseo.
o Capas de software.
o Arquitectura de Sistemas.
o Interface y Objetos.
o Arquitectura multiprocesador
Capa de software.
SISTEMAS DISTRIBUIDOS
o Capas: grupo de funcionalidades
fuertemente y altamente coherentes.
o Servicios: funcionalidades proporcionales
a capas superiores.
Este modelo funciona bien para muchos tipos de aplicaciones. Sin embargo,
limita la flexibilidad de los diseadores del sistema ya que ellos deben decidir
donde se proporciona cada servicio.
SISTEMAS DISTRIBUIDOS
proporcionan una interfaz a un conjunto de servicios que ellos suministran.
Otros objetos realizan llamadas a estos servicios sin hacer ninguna distincin
lgica entre un cliente (el receptor de un servicio) y un servidor (el proveedor
de un servicio).
19
Interface y Objetos
SISTEMAS DISTRIBUIDOS
mdulo simplificado de sistema de control de trfico. Un conjunto de sensores
distribuidos recoge informacin sobre el flujo de trfico y la procesan
localmente entes de enviarla a una sala de control. Los operadores toman
decisiones usando informacin y dan instrucciones a un proceso de control de
diversas luces de trfico. En este ejemplo, hay varios procesos lgicos para
gestionar los sensores, la sala de control y los semforos. Estos procesos
lgicos
20 pueden ser procesos individuales o un grupo de procesos.
Cliente servidor
Proxy
SISTEMAS DISTRIBUIDOS
Es un servidor que se emplea como intermediario entre las peticiones de re-
cursos que realiza un cliente a otro servidor. Por ejemplo, si una computadora
A solicita un recurso a una computadora C, lo har mediante una peticin a la
computadora B que, a su vez, trasladar la peticin a la computadora C. De
esta manera, la computadora C no sabr que la peticin procedi original-
mente de la computadora A.
21
Esta situacin estratgica de punto intermedio suele ser aprovechada para
soportar una serie de funcionalidades, como:
o Proporcionar cach.
o Control de acceso.
o Registro del trfico.
o Prohibir cierto tipo de trfico.
o Mejorar el rendimiento.
o Mantener el anonimato.
Peer-to-peer
Los sistemas peer-to-peer (p2p) son sistemas descentralizados en los que los
clculos pueden llevarse a cabo en cualquier nodo de la red y, al menos en
principio, no se hacen distinciones entre clientes y servidores. En las
aplicaciones peer-to-peer, el sistema en su totalidad se disea para aprovechar
la ventaja de la potencia computacional y disponibilidad de almacenamiento a
travs de una red de computadoras potencialmente enorme. Los estndares y
protocolos que posibilitan las comunicaciones a travs de los nodos estn
embebidos en la propia aplicacin, y cada nodo debe ejecutar una copia de
dicha aplicacin.
SISTEMAS DISTRIBUIDOS
Se puede ver la arquitectura de las aplicaciones p2p desde dos puntos de vista.
La arquitectura lgica de la red es la distribucin de la arquitectura del sistema,
mientras que la arquitectura de la aplicacin es la organizacin genrica de los
componentes en cada tipo de aplicacin.
En 22
principio, en los sistemas peer-to-peer cada nodo en la red podra conocer
cualquier otro nodo, podra conectarse con l, y podra intercambiar datos. En
la prctica, por supuesto, esto es imposible, ya que los nodos se organizan
dentro de localidades con algunos nodos que actan como puentes a otras
localidades de nodos.
Applets
SISTEMAS DISTRIBUIDOS
a) A solicitud del cliente el
servidor web, responde con el
cdigo del applet.
o Java applets.
o Animaciones Flash.
o Windows media player.
o Modelos 3D.
Clster
o Alto rendimiento.
SISTEMAS DISTRIBUIDOS
o Alta disponibilidad.
o Escalabilidad.
o Balanceo de carga.
Grid
SISTEMAS DISTRIBUIDOS
o Explotacin de recursos infrautilizados.
o Capacidad de CPU paralelos.
o Recursos virtuales y organizaciones virtuales para la colaboracin.
o Acceso a recursos adicionales.
o Balanceo de recursos.
o
25 Fiabilidad.
o Mejor gestin de infraestructuras de TI ms grandes y distribuidos.
Modelo de interaccin
SISTEMAS DISTRIBUIDOS
Problemas presentados en las prestaciones del canal:
26
o Latencia: retardo entre el envo y recepcin del mensaje Tiempo de acceso a
la red (ej., retardos de transmisin Ethernet).
Tiempo para que el primer bit viaje desde la interfaz de la red
transmisora hasta la interfaz de red receptora.
Tiempo procesado dentro del proceso de envo y recepcin.
o Caudal: nmero de unidades (ej., paquetes) entregadas por unidad de
tiempo.
o Ancho de banda: cantidad de informacin (ej., bits) transmitida por
unidad de tiempo.
o Variacin de retardo: variacin en retardos entre diferentes mensajes del
mismo tipo.
Modelo de fallo
SISTEMAS DISTRIBUIDOS
Posibles causas:
Fallas arbitrarias
27
o Proceso: omite pasos esperados del proceso o lleva a cabo no deseados
o Canal de comunicacin: ej., sin entrega, corrupcin o Duplicidad
Tipos de fallos
Modelo de seguridad
Comunicacin Fiable
Amenazas:
Los hilos se diferencian de los procesos en que los primeros comparten los
mismos recursos del programa que las contiene, en tanto los procesos tienen
de manera separada su cdigo, as como sus datos. Se pueden identifi car hilos
de dos tipos de flujo:
SISTEMAS DISTRIBUIDOS
En un sistema multihilos, cada tarea se inicia y termina tan pronto como sea
posible, esto facilita la entrada de datos en sistemas en tiempo real,
especialmente si estos datos provienen de diferentes fuentes. En un programa
multihilo se tiene el hilo principal del programa en ejecucin, quien a su vez
tiene otros hilos o tareas paralelas en ejecucin.
Cliente
Servidores
FTP: Define la manera en que los datos deben ser transferidos a travs de una
red TCP/IP. El objetivo del protocolo FTP es:
ARP: Tiene un papel clave entre los protocolos de capa de Internet relacionados
con el protocolo TCP/IP, ya que permite que se conozca la direccin fsica de
una tarjeta de interfaz de red correspondiente a una direccin IP. Por eso se
llama Protocolo de Resolucin de Direccin (en ingls ARP significa Address
Resolution Protocol).
SISTEMAS DISTRIBUIDOS
capas cercanas. Por lo tanto, el protocolo ICMP es usado por todos los
routers para indicar un error (llamado un problema de entrega).
UDP: (Protocolo de datagrama de usuario) es un protocolo no orientado a
conexin de la capa de transporte del modelo TCP/IP. Este protocolo es muy
simple ya que no proporciona deteccin de errores (no es un protocolo
31
orientado a conexin).
Cada una de estas aplicaciones puede serle asignada una direccin nica en
equipo, codificada en 16 bits. La combinacin de direcciones IP +puerto es n
socket.
o Los puertos del 0 al 1023 son los "puertos conocidos" o reservados. Son
reservados para procesos del sistema (demonio) o programas ejecutados
SISTEMAS DISTRIBUIDOS
por usuarios privilegiados. Sin embargo, un administrador de red puede
conectar servicios con puertos de su eleccin.
o Los puertos del 1024 al 49151 son los "puertos registrados".
o Los puertos del 49152 al 65535 son los "puertos dinmicos y/o privados".
32
SISTEMAS DISTRIBUIDOS
33
CAPTULO 2
SISTEMAS DISTRIBUIDOS
34
2.1 INTRODUCCIN A LOS SISTEMAS
DE MULTIPROCESAMIENTO
o SISD: Flujo de una sola instruccin, flujo de un solo dato. Esta categora
incluye a los computadores serie convencionales.
o SIMD. Flujo de una sola instruccin, flujo de mltiples datos. Estos son
tpicamente los procesadores vectoriales y los computadores en array en los
cuales una sola instruccin puede operar sobre diferentes datos en diferentes
unidades de ejecucin.
o MISD. Flujo de mltiples instrucciones, flujo de un solo datos. Esta es una
organizacin raras veces utilizada en la cual mltiples instrucciones operan
sobre un nico flojo de datos en paralelo.
o MIMD. Flujo de mltiples instrucciones, flujo de mltiples datos. La ejecucin
simultanea de mltiples instrucciones que operan sobre varios flujos de datos.
Esta clase incluye los multiprocesadores de diferentes tipos.
SISTEMAS DISTRIBUIDOS
35
En los sistemas individuales existe slo una copia del sistema operativo y la
comunicacin entre CPUs es muy rpida.
SISTEMAS DISTRIBUIDOS
como la creciente necesidad de potencia computacional para aplicaciones que
la requieran.
o Alto rendimiento
o Alta disponibilidad
o Balanceo de carga
o Escalabilidad
Para que un clster funcione como tal, no basta solo con conectar entre s los
ordenadores, sino que es necesario proveer un sistema de manejo del clster,
el cual se encargue de interactuar con el usuario y los procesos que corren en
l para optimizar el funcionamiento.
SISTEMAS DISTRIBUIDOS
Suelen ser aplicaciones no especialmente intensivas computacionalmente,
pero que demandan alta disponibilidad y respuesta inmediata, con lo que los
servicios se estn ejecutando continuamente y no controlados por un sistema
de colas
2.3.1 MULTIPROCESAMIENTO
DEDICADO
2.3.2 MULTIPROCESAMIENTO
COMPARTIDO
Los microprocesadores del sistema comparten los recursos del sistema, como
la entrada salida de memoria y disco. Se distribuye uniformemente la carga de
SISTEMAS DISTRIBUIDOS
trabajo a los procesadores disponibles, de modo que uno no est inactivo
mientras otro tiene un exceso de trabajo con una tarea especfica. Las
prestaciones se incrementan para todas las tareas al aadir
microprocesadores, su desventaja es que los sistemas operativos que soportan
este tipo de multiprocesamiento son ms difciles de disear.
39
o Cliente - servidor.
o Llamada a un procedimiento remoto (RPC).
o Comunicacin en grupo.
Debe tenerse en cuenta que los datos en los programas suelen estar
representados mediante estructuras de datos, mientras que en un mensaje la
informacin debe ser una secuencia de bytes; por lo tanto, se debe establecer
un mecanismo para aplanar o serializar los parmetros y pasarlos al
mensaje. Aplanar significa tomar cualquier estructura de datos y reordenarla
como una secuencia de bytes. Esto debe hacerse tambin con las estructuras
de datos dinmicas (listas enlazadas), que deben pasarse a una serie de
valores formando una secuencia de bytes.
SISTEMAS DISTRIBUIDOS
Aunque el aplanamiento (marshalling, en ingls) de los parmetros podra ser
una tarea fcil, no lo es. Por desgracia, los lenguajes utilizados para programar
los distintos procesos de la red y los procesadores en los que se ejecutan,
utilizan diferentes representaciones de los datos que manipulan (distinto
tamao y representacin para los enteros complemento a uno o complemento
a dos,
40 distintas fronteras de alineamiento, distintos cdigos de caracteres
ASCII o EBCDIC, ...). Esto quiere decir que, si un dato lo aplanamos en un
proceso, lo ponemos en un mensaje y se lo enviamos a otro proceso de la red
(en una mquina distinta), es muy posible que el formato en el que se reciben
los datos no sea el que espera el receptor, por lo que el contenido del mensaje
podra no entenderse o ser malinterpretado.
Para evitar este problema del formato de representacin de los datos, los
procesos comunicantes deben ponerse previamente de acuerdo en el formato
en el que se van intercambiar los datos. Hay tres alternativas en el tipo de
acuerdo a tomar:
SISTEMAS DISTRIBUIDOS
42
Terminologa:
Notar que los roles de cliente y servidor aplican slo a un llamado. Un objeto
servidor luego puede ser cliente al hacer un llamado remoto.
RMI posee un mecanismo para cargar clases dinmicamente desde otro lugar.
SISTEMAS DISTRIBUIDOS
2.7 PROCEDIMIENTOS REMOTOS
SISTEMAS DISTRIBUIDOS
una mquina remota se denomina Llamada a Procedimiento Remoto o RPC
(Remote Procedure Call).
44
CAPTULO 3
SISTEMAS DISTRIBUIDOS
45
3.1 ALMACENAMIENTO DE ALTA
DISPONIBILIDAD
Clculo de la Disponibilidad
SISTEMAS DISTRIBUIDOS
que un nuevo componente. Durante su vida til, uno de los componentes
puede ser considerado en uno de estos estados: Funcionando o en Reparacin.
El estado funcionando indica que el componente est operacional y el en
reparacin significa que ha fallado y todava no ha sido sustituido por un nuevo
componente.
En 46
caso de defectos, el sistema va de funcionando en modo reparacin, y
cuando se hace la sustitucin volver al estado funcionando. Por lo tanto,
podemos decir que el sistema tiene durante su vida, una media de tiempo para
presentar fallas (MTTF) y un tiempo medio de reparacin (MTTR). Su tiempo de
la vida es una sucesin de MTTFs y MTTRs, a medida que este va fallando y
siendo reparado. El tiempo de vida til del sistema es la suma de MTTFs en
ciclos MTTF + MTTR ya vividos.
SISTEMAS DISTRIBUIDOS
Servidores
o Esttico.
o Dinmico.
o Servidores de datos.
o Servidores de archivos.
o Servidores de impresin.
o Servidores de correo.
o Servidores de programas.
o Servidores de bases de datos.
o Servidores de fecha y hora.
o Servidores de multimedia.
o Servidores de transacciones.
o Servidores web.
o Cliente - servidor.
o Llamada a un procedimiento remoto (RPC).
o Comunicacin en grupo.
SISTEMAS DISTRIBUIDOS
o Los datos tienen que ser aplanados antes de ser enviados.
o Los datos tienen que ser representados de la misma manera en la fuente y
destino.
o Los datos tienen que empaquetarse para ser enviados.
o Usar operaciones de send para enviar y receive para recibir.
o Especificar la comunicacin, ya sea en modo bloqueante o no bloqueante.
o Abstraccin del mecanismo de paso de mensaje.
48
o La confiabilidad de la comunicacin. Por ejemplo, usar TCP en lugar de UDP.
RAID nivel 0 requiere al menos dos platinas de disco para poder ser
implementado.
Funcionamiento
RAID 0 implementa un arreglo de discos en franjas en donde los datos son
divididos en bloques y cada bloque es almacenado en un disco distinto.
Ventajas
En esta configuracin un arreglo de discos mejora el desempeo de
entrada/salida al distribuir la carga de escritura y lectura a travs de varios
SISTEMAS DISTRIBUIDOS
canales y platinas de disco. El mejor desempeo es alcanzado cuando los datos
son distribuidos en varios controladores con slo un disco por controlador.
o Diseo simple
49
o Sencillez de implementacin.
Desventajas
Recomendaciones
RAID nivel 1 requiere al menos dos platinas de disco para poder ser
implementado. Para mejor desempeo, el controlador debe de ser capaz de
realizar dos lecturas concurrentes independientes por par espejo o dos
escrituras duplicadas por par de discos en espejo.
Funcionamiento
RAID 1 implementa un arreglo de discos en espejo en donde los datos son
ledos y escritos de manera simultnea en dos discos distintos.
SISTEMAS DISTRIBUIDOS
Ventajas
En esta configuracin un arreglo de discos puede realizar una escritura o dos
lecturas por par en espejo, duplicando la tasa de transaccional de lectura de
discos simples con la misma tasa transaccional de escritura que los discos
tradicionales. Una redundancia total de datos significa que no es necesaria la
reconstruccin
50 en caso de falla de algn disco, sino slo una copia.
o Sencillez de implementacin.
Desventajas
o Es el que tiene mayor derroche de disco de todos los tipos de RAID, con
el 100% de derroche.
Recomendaciones
SISTEMAS DISTRIBUIDOS
RAID 2: Cdigo de Correccin de Errores con cdigo de Hamming
51
RAID nivel 2 requiere al menos dos platinas de disco para poder ser
implementado. Para mejor desempeo, el controlador debe de ser capaz de
realizar dos lecturas concurrentes independientes por par espejo o dos
escrituras duplicadas por par de discos en espejo.
Funcionamiento
Cada bit de cada palabra es escrito a un disco, 4 en el ejemplo grfico. Cada
palabra tiene su Cdigo Hamming de Correccin de Errores (CHCE) almacenada
en los discos CHCE. Durante la lectura el CHCE verifica y corrige los datos o
errores especficos en los discos.
Ventajas
En esta configuracin un arreglo de discos puede realizar una escritura o dos
lecturas por par en espejo, duplicando la tasa de transaccional de lectura de
discos simples con la misma tasa transaccional de escritura que los discos
tradicionales. Una redundancia total de datos significa que no es necesaria la
reconstruccin en caso de falla de algn disco, sino slo una copia.
Desventajas
o Puede tener una alta relacin de los discos CHCE a los discos de datos
con tamaos de palabra pequeos, tornando el sistema ineficiente.
o Costo de nivel de entrada muy alto, requiere de una muy alta tasa de
transferencia para justificarlo.
SISTEMAS DISTRIBUIDOS
o No existen implementaciones comerciales ya que comercialmente no es
viable.
Funcionamiento
El bloque de datos es subdividido en bandas y escrito en los discos de datos.
Las bandas de paridad son generadas durante la escritura, almacenadas en los
discos de paridad y verificado durante la lectura
Ventajas
Desventajas
Recomendaciones
SISTEMAS DISTRIBUIDOS
o Edicin de imgenes.
o Edicin de vdeo.
53
o Cualquier tipo de aplicacin que requiera alta densidad de transferencia
de datos.
Funcionamiento
Cada bloque completo es escrito en un disco de datos. La paridad para bloques
del mismo rango es generada durante las escrituras y almacenado en el disco
de paridad, y verificado durante las lecturas.
Ventajas
Desventajas
SISTEMAS DISTRIBUIDOS
o Reconstruccin de datos compleja e ineficiente en caso de falla de disco.
Funcionamiento
Cada bloque de datos completo es escrito en un disco de datos; la paridad para
los bloques en el mismo rango es generada durante las escrituras, almacenada
en locaciones distribuidas y verificada durante las lecturas.
Ventajas
o Baja relacin entre los discos de paridad contra los discos de datos
ofreciendo una alta eficiencia.
Desventajas
55
o Servidores Web, correo electrnico y noticias.
o Servidores de Intranet.
En general, en los sistemas distribuidos se realizan dos acciones que se pue den
considerar como contrastantes. La primera accin consiste en que los clientes no
deben intervenir en las acciones que realiza otro cliente, mientras que la segunda
accin consiste en que el servidor debe ser usado por los clientes para compartir e
intercambiar informacin entre ellos.
Para el manejo de este tipo de situaciones en los datos compartidos existe una
herramienta conceptual muy til conocida como transaccin, la cual es una
unidad indivisible de manipulacin de informacin.
Modelo de transacciones
Por medio de este se puede modelar con mayor precisin las transacciones a
travs del uso de procesos independientes. Entre los puntos a considerar estn:
SISTEMAS DISTRIBUIDOS
o Primitivas de transaccin: Son proporcionadas por el sistema operativo o
compilador, como begin-transaction, end - transaction, abort- transaction,
read, write.
o Propiedades de las transacciones: Son las propiedades fundamentales de las
transacciones y se indican como ACID, si se cumple con lo siguiente:
Atomicidad: Las transacciones se ejecutan completamente o
se abortan.
56 Consistencia: El resultado de una transaccin no debe de
depender del nmero de clientes concurrentes.
Aislamiento: Los efectos intermedios de las transacciones no
deben de ser visibles a otras.
Durabilidad: La informacin debe de guardarse en disco una
vez que la transaccin se ejecuta exitosamente.
o Si una transaccin se aborta, es necesario un procedimiento de
recuperacin para eliminar las operaciones ya realizadas.
Recuperacin de transacciones
Transacciones anidadas
SISTEMAS DISTRIBUIDOS
57
Transacciones distribuidas
SISTEMAS DISTRIBUIDOS
o SSI provee una visin centralizada de los recursos del cluster.
o Maximiza el aprovechamiento de recursos mediante resource poolsy
administracin.
o Brinda mayor escalabilidad y abstraccin
Beneficios de SSI
Servicios de SSI
Servicios de Disponibilidad:
o Acceso.
o Localizacin.
o Concurrencia.
o Falla.
o Desempeo.
Servicios de archivos
SISTEMAS DISTRIBUIDOS
Los usuarios de archivos se pueden dividir en dos tipos:
SISTEMAS DISTRIBUIDOS
o Encontrar una direccin en la red en donde se encuentre el servicio
funcionando.
o Encontrar una ruta donde la solicitud del servicio encuentre la direccin
donde se ubica.
Todo sistema de nombres debe contener una estructura definida que garantice
el acceso ms ptimo hacia los elementos que integran el sistema distribuido.
Estas estructuras comnmente son implementadas dentro de los servidores de
nombres y sus tipos son:
o Jerrquico.
o Centralizado.
o Replicado.
o Descentralizado.
o Distribuida.
NFS utiliza un sistema de archivos virtuales VFS que puede distinguir entre
archivos locales y archivos remotos. Usa un v-node en lugar de un i-node. Al v-
node se le aade un identificador de sistema. NFS emula la semntica del
sistema de archivos de UNIX integrndolo en el ncleo, por lo que no se
requiere recompilar libreras. El cach de clientes tiene el problema de las
diferentes versiones de archivos, ya que la escritura de un cliente no se
traduce en la inmediata modificacin de copias del cach en los otros clientes.
Las estampillas de tiempo son usadas por el NFS para validar bloques de
cach.
SISTEMAS DISTRIBUIDOS
Este sistema de archivos distribuido fue desarrollado en Carnegie Mellon
University (CMU) en 1986. El objetivo de AFS es compartir informacin a gran
escala (10,000 estaciones de trabajo). Al igual que en Network File Systems
(NFS), en AFS no hay que modificar programas de UNIX.
Entre las principales caractersticas del sistema AFS, se pueden indicar las
siguientes:
SISTEMAS DISTRIBUIDOS
64
3.6 REPLICACIN
SISTEMAS DISTRIBUIDOS
Entre las caractersticas con respecto al rendimiento del sistema distribuido
que deben de ser observadas al replicar datos se pueden mencionar las
siguientes:
Alta disponibilidad
Tolerancia a fallas
SISTEMAS DISTRIBUIDOS
o Transparencia.
o Consistencia.
o Gestor de rplicas.
o Frontal (front-end).
Los tipos de ordenacin para que los gestores manipulen las rplicas son:
SISTEMAS DISTRIBUIDOS
o Ordenamiento FIFO.
o Ordenamiento casual.
o Ordenamiento total.
o Se ejecuta la peticin, la cual podra ser realizada de manera tentativa.
o Se llega a un acuerdo o consenso antes de consumar la ejecucin.
o Uno o ms gestores de rplicas entrega una respuesta al frontal.
67
Servicios de tolerancia a fallas basados en replicacin
Replicacin pasiva
o Peticin.
o Coordinacin.
o Ejecucin.
o Acuerdo.
o Respuesta.
SISTEMAS DISTRIBUIDOS
Replicacin activa
En la replicacin activa todos los gestores de rplicas tienen el mismo rol. Los
frontales multidifunden las peticiones a todos los gestores y todos los frontales
procesan la peticin de manera idntica pero independiente.
68
Al igual que la replicacin pasiva, una replicacin activa tiene las siguientes
fases de ejecucin:
o Peticin.
o Coordinacin.
o Ejecucin.
o Acuerdo.
o Respuesta.
SISTEMAS DISTRIBUIDOS