Instituto
Politécnico Nacional
CECYT 9: “Juan de Dios Bátiz”
MATERIA: Sistemas
Distribuidos
NOMBRE DEL TRABAJO: Sistemas Distribuidos
INTEGRANTES:
Cruz
García Crisitina Yolotzin
Grupo: 5IM7
Sistemas
distribuidos
Introducción
Cuando a
finales de los años 50 los ordenadores empezaron a estar comercialmente
disponibles, los pocos que había resultaban caros y no se aprovechaban bien.
Los grandes ordenadores centralizados multiusuario
(años 60 y 70) resolvieron el problema del aprovechamiento. Aun así, pocas
empresas podían disponer de ellos. Pero a mediados de los años 80, surgió el
desarrollo de potentes microprocesadores y la aparición del PC, un ordenador
personal. Si bien éste era de precio asequible, el problema de los PC’s era la
carencia o dificultad para disponer de recursos como impresoras de alta
calidad, scanners, procesadores especializados, grandes sistemas de almacenamiento,
etc., pues éstos seguían siendo considerablemente caros y poco aprovechables.
La
solución vino de la mano de las redes de alta velocidad, que permitieron la
interconexión de todo tipo de ordenadores (grandes, medianos, pequeños, de uso
general y especializado) mediante una red de comunicaciones, lo cual les
permitió compartir y aprovechar recursos. Con la unión de los ordenadores
personales y las LAN nacieron los Sistemas en Red. Los usuarios de estos
sistemas pueden hacer uso de los recursos que les ofrece la red de ordenadores,
son conscientes de la multiplicidad de máquinas en la red y necesitan
conocerlas, pues para acceder a cada recurso deben saber en qué máquina está
ubicado tal recurso, y deben conectarse explícitamente a la máquina apropiada
para poder acceder al recurso deseado (o para transmitir datos de la máquina
local a la remota).
El
siguiente paso fue el de los Sistemas Distribuidos. Con estos sistemas, los usuarios
pueden saber que hay multiplicidad de estaciones y equipos en la red, pero no
necesitan conocerlos explícitamente (ni cuántos, ni cuáles), ellos solamente
saben que hay recursos en la red y conocen su nombre o identificador, de tal
forma que pueden acceder a ellos de igual manera que acceden a los recursos
locales (por su nombre), sin tener que conectarse (explícitamente) en ningún
caso a la máquina propietaria para utilizar el recurso. Es más, ni siquiera
necesita conocer el nombre de la máquina que alberga el recurso.
Como
podemos ver, la diferencia fundamental entre los sistemas en red y los sistemas
distribuidos es la transparencia. En el sistema distribuido, la composición y
estructura de la red le pasa desapercibida al usuario, es decir, ni la ve ni le
importa. Solamente le importan los recursos disponibles o, a veces, simplemente
el tipo de los recursos disponibles, sin tener en cuenta en qué máquina están
realmente ubicados.
Aunque el
concepto ya tiene bastantes años, todavía está en completo desarrollo, y hay
distintas ideas y opiniones sobre lo que debe ser un sistema distribuido. Una
de las definiciones más populares es la de Lamport: “Un Sistema Distribuido es
aquel que deja de funcionar cuando se estropea una máquina de la que ni
siquiera habíamos oído hablar”.
Más
formal es la definición que cita Tanenbaum: “Se trata de un conjunto de
ordenadores independientes e intercomunicados por una red y provistos de
software distribuido, tal que el usuario lo percibe como si se tratara de un
único ordenador”.
Por otro lado destacan la definición de Coulouris: “Aquel
sistema en el que los componentes localizados en una red de computadores se
comunican y coordinan sus acciones únicamente mediante el paso de mensajes”.
Y por último la descripción elaborada por Van
Steel: “Componente software que asegura que una colección de computadoras
independientes aparece ante los usuarios como un único sistema coherente”.
Desarrollo
Los recursos en un sistema distribuido están
físicamente encapsulados en una de las computadoras y sólo pueden ser accedidos
por otras computadoras mediante las comunicaciones (la red). Para que la
compartición de recursos sea efectiva, ésta debe ser manejada por un programa
que ofrezca un interfaz de comunicación permitiendo que el recurso sea
accedido, manipulado y actualizado de una manera fiable y consistente. Surge el
término genérico de gestor de recursos.
Un gestor de recursos es un módulo software que maneja un conjunto de recursos de un tipo en particular. Cada tipo de recurso requiere algunas políticas y métodos específicos junto con requisitos comunes para todos ellos. Éstos incluyen la provisión de un esquema de nombres para cada clase de recurso, permitir que los recursos individuales sean accedidos desde cualquier localización; la traslación de nombre de recurso a direcciones de comunicación y la coordinación de los accesos concurrentes que cambian el estado de los recursos compartidos para mantener la consistencia.
Un sistema distribuido puede verse de manera abstracta como un conjunto de gestores de recursos y un conjunto de programas que usan los recursos. Los usuarios de los recursos se comunican con los gestores de los recursos para acceder a los recursos compartidos del sistema. Esta perspectiva nos lleva a dos modelos de sistemas distribuidos: el modelo cliente-servidor y el modelo basado en objetos.
Un gestor de recursos es un módulo software que maneja un conjunto de recursos de un tipo en particular. Cada tipo de recurso requiere algunas políticas y métodos específicos junto con requisitos comunes para todos ellos. Éstos incluyen la provisión de un esquema de nombres para cada clase de recurso, permitir que los recursos individuales sean accedidos desde cualquier localización; la traslación de nombre de recurso a direcciones de comunicación y la coordinación de los accesos concurrentes que cambian el estado de los recursos compartidos para mantener la consistencia.
Un sistema distribuido puede verse de manera abstracta como un conjunto de gestores de recursos y un conjunto de programas que usan los recursos. Los usuarios de los recursos se comunican con los gestores de los recursos para acceder a los recursos compartidos del sistema. Esta perspectiva nos lleva a dos modelos de sistemas distribuidos: el modelo cliente-servidor y el modelo basado en objetos.
Los Sistemas Distribuidos
poseen principalmente las siguientes características:
CONCURRENCIA
Tanto los servicios como las
aplicaciones proporcionan recursos que pueden compartirse entre los clientes en
un sistema distribuido. Existe por lo tanto una posibilidad de que varios
clientes intenten acceder a un recurso compartido a la vez.
Cada objeto que represente un recurso
compartido en un sistema distribuido debe responsabilizarse de garantizar que
opera correctamente en un entorno concurrente. De este modo cualquier
programador que recoge una implementación de un objeto que no está concebido
para su aplicación en un entorno distribuido deberá realizar las modificaciones
necesarias para que sea seguro su uso en el entorno concurrente.
Para que un objeto sea seguro en un
entorno concurrente, sus operaciones deben sincronizarse de forma que sus datos
permanezcan consistentes. Esto puede lograrse mediante el empleo de técnicas
conocidas como los semáforos, que se usan en la mayoría de los sistemas
operativos.
TRATAMIENTO DE FALLOS.
Los sistemas computacionales a veces fallan, cuando
aparecen fallos en el hardware o el software, los programas pueden producir
resultados incorrectos o pudieran parar antes de haber completado el cálculo
pedido. Los
fallos en un sistema distribuido son parciales; es decir, algunos componentes
fallan mientras otros siguen funcionando.
Técnicas para tratar fallo:
Detección de fallos: se pueden utilizar
sumas de comprobación (cheksums) para detectar datos corruptos en un
mensaje o un archivo. Es difícil o incluso imposible detectar algunos fallos
que no pueden detectarse pero que sí pueden esperarse.
Enmascaramiento de fallos: algunos fallos que
han sido detectados pueden ocultarse o atenuarse. Ejemplos de ocultación de
fallos son:
1. Los mensajes pueden
retransmitirse cuando falla la recepción.
2. Los archivos con
datos pueden escribirse en una pareja de discos de forma que si uno está
deteriorado el otro seguramente está en buen estado.
Eliminar un mensaje
corrupto es un ejemplo de atenuar un fallo (pudiera retransmitirse de nuevo).
Tolerancia de fallo: la mayoría de los
servicios en internet exhiben fallo; es posible que no sea práctico para ellos
pretender detectar y ocultar todos los fallos que pudieran aparecer en una red
tan grande y con tantos componentes. Sus clientes pueden diseñarse para tolerar
ciertos fallos, lo que implica que también los usuarios tendrán que tolerarlos.
Recuperación frente a fallos: la recuperación
implica el diseño de software en el que, tras una caída del servidor, el estado
de los datos pueda reponerse o retractarse (roll back) a una situación
anterior. En general, cuando aparecen fallos los cálculos realizados por
algunos programas se encontrarán incompletos y al actualizar datos permanentes (archivos e información
ubicada ene el almacenamiento persistente) pudiera encontrarse en un estado
inconsciente.
EL RELOJ
La sincronización no tiene por qué ser exacta, y bastará con que
sea aproximadamente igual en todos los ordenadores. Hay que tener en cuenta,
eso sí, el modo de actualizar la hora de un reloj en particular. Es fundamental
no retrasar nunca la hora, aunque el reloj adelante. En vez de eso, hay que
ralentizar la actualización del reloj, frenarlo, hasta que alcance la hora
aproximadamente. Existen diferentes algoritmos de actualización de la hora.
Conclusión
Para terminar el estudio de este tema tan amplio a continuación
daré mi definición por lo que yo he entendido de este tema tan complejo y aun
inexplorado en el caso de mi situación.
Un sistema distribuido es un conjunto de elementos
de procesamiento conectados y comunicados entre si. Estan equipados con
programas que les permiten cordinar sus actividades y transferir datos para el
logro de tareas. Sus recursos pueden utilizarse simultáneamente y evita ñas
fallas globales ya que solo fallan localmente.
Los sistemas distribuidos constan de muchas
características pero principalmente de tres: Concurrencia, reloj individual y
tolerancia a fallos.
Referencias
·
http://www.dia.eui.upm.es/asignatu/sis_dis/Paco/Introduccion.pdf
[Consultada el 10 de Agosto de 2013 a las 15:28] Apuntes del curso de “Sistemas
Distribuidos” de la Universidad Politécnica de Madrid.
·
http://www.sc.ehu.es/acwlaroa/SDI/Apuntes/Cap1.pdf
[Consultada el 10 de Agosto de 2013 a las 14:28 pm] Primer capítulo del libro “Introducción
a los sistemas distribuidos” por Lafuente, Alberto de la página de la Universidad del país Vasco.
·
http://augcyl.org/?page_id=231
[Consultada el 10 de Agosto de 2013 a las 15:03] página de la Asociación de
Usuarios de GNU/Linux de Castilla y León

No hay comentarios:
Publicar un comentario