domingo, 11 de agosto de 2013



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.
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.


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