Fundamentos De Sistemas Distribuidos





1.1 concepto de sistema distribuido
Un sistema distribuido es una colección de computadoras independientes; es decir autónomas, que aparecen ante los usuarios del sistema como una única computadora.
Algunos ejemplos de sistemas distribuidos son:
·         Una red de estaciones de trabajo en un departamento de una universidad o compañía, donde además de cada estación personal, podría existir una pila de procesadores en el cuarto de máquinas, que no estén asignados a usuarios específicos sino que se utilicen de manera dinámica cuando sea necesario.
·         Una fábrica de robots, donde los robots actúan como dispositivos periféricos unidos a la misma computadora central.
·         Un banco con muchas sucursales por el mundo, cada oficina tiene una computadora maestra para guardar las cuentas locales y el manejo de las transacciones locales, la cuál se puede comunicar con cualquier computadora de la red. Las transacciones hechas se realizan sin importar dónde se encuentre la cuenta o el cliente.

1.2 caracteristicas de un sistema distribuido
-Cada elemento de computo tiene su propia memoria y su propio Sistema Operativo.
-Control de recursos locales y remotos.
-Sistemas Abiertos (Facilidades de cambio y crecimiento).
-Plataforma no standard ( Unix, NT, Intel, RISC, Etc.).
-Medios de comunicación ( Redes, Protocolos, Dispositivos, Etc.).
-Capacidad de Procesamiento en paralelo.
-Dispersión y parcialidad.

1.3 clasificacion de los sistemas distribuidos
clasificacion de los sistemas distribuidos
En términos de funcionalidad, las mallas se clasifican en computacionales (incluyendo mallas de barrido de la CPU) y en mallas de datos. y en los estados son:
 Globus
La herramienta Globus ha emergido como el estándar de facto para la capa intermedia (middleware) de la malla. Globus tiene recursos para manejar:

La gestión de recursos(Protocolo de Gestión de Recursos en Malla o Grid Resource Management Protocol)
Servicios de Información (Servicio de Descubrimiento y Monitorización o Monitoring and Discovery Service)
Gestión y Movimiento de Datos (Acceso Global al Almacenamiento Secundario, Global Access to secondary Storage y FTP en malla, GridFTP)
La mayoría de mallas que se expanden sobre las comunidades académicas y de investigación de Globus Toolkit como núcleo de la capa intermedia.
XML
Los servicios web basados en XML ofrecen una forma de acceder a diversos servicios/aplicaciones en un entorno distribuido. Recientemente, el mundo de la informática en malla y los servicios web caminan juntos para ofrecer la malla como un servicio web. La arquitectura está definida por la Open Grid Services Architecture (OGSA). La versión 3.0 de Globus Toolkit, que actualmente se encuentra en fase alfa, será una implementación de referencia acorde con el estándar OGSA.
Las mallas ofrecen una forma de resolver grandes retos, como el plegamiento de las proteínas y descubrimiento de medicamentos, modelización financiera, simulación de terremotos, inundaciones y otras catástrofes naturales, modelización del clima/tiempo, etc. Ofrecen un camino para utilizar los recursos de las tecnologías de la información de forma óptima en una organización.
Computación de ciclos redundantes
El modelo de computación de ciclos redundantes, también conocido como computación zombi, es el empleado por aplicaciones como Seti@Home, consistente en que un servidor o grupo de servidores distribuyen trabajo de procesamiento a un grupo de computadoras voluntarias a ceder capacidad de procesamiento no utilizada. Básicamente, cuando dejamos nuestro ordenador encendido, pero sin utilizarlo, la capacidad de procesamiento se desperdicia por lo general en algún protector de pantalla, este tipo de procesamiento distribuido utiliza nuestra computadora cuando nosotros no la necesitamos, aprovechando al máximo la capacidad de procesamiento.
Clustering
Otro método para crear sistemas de supercomputadoras es el clustering. Un cluster o racimo de computadoras consiste en un grupo de computadoras de relativo bajo costo conectadas entre sí mediante un sistema de red de alta velocidad (gigabit de fibra óptica por lo general) y un software que realiza la distribución de la carga de trabajo entre los equipos. Por lo general, este tipo de sistemas cuentan con un centro de almacenamiento de datos único. Los clusters tienen la ventaja de ser sistemas redundantes,al estar fuera de servicio el procesador principal el segundo se dispara y actúa como un Fail Over.
Grid
La computación en grid o en malla es un nuevo paradigma de computación distribuida en el cual todos los recursos de un número indeterminado de computadorassuperordenador de manera transparente. son englobados para ser tratados como un único
Estas computadoras englobadas no están conectadas o enlazadas firmemente, es decir no tienen por qué estar en el mismo lugar geográfico. Se puede tomar como ejemplo el proyecto SETI@Home, en el cual trabajan computadoras alrededor de todo el planeta para buscar vida extraterrestre.

1.3.1sistemas distribuidos tolerante a fallos
la promesa de los sistemas distribuidos sólo se puede cumplir cuando a la base hardware adecuada se le añaden políticas y mecanismos tolerantes a fallas. El objetivo del diseño y construcción de sistemas tolerantes a fallas consiste en garantizar que el sistema continúe funcionando de manera correcta como un todo, incluso en presencia de fallas.

Se dice que un sistema falla cuando no cumple su especificación. En algunos casos, como en un sistema de ordenamiento distribuido de productos en un supermercado, una falla podría provocar la falta de algunos productos en la tienda. En otros casos, como en un sistema distribuido para el control de tráfico aéreo, una falla podría ser catastrófica. Como las computadoras y los sistemas distribuidos se utilizan cada vez más en misiones donde la seguridad es crítica, la necesidad de soportar las fallas cada vez es mayor.

Un sistema consiste de un conjunto de componentes de hardware y software y son diseñados para proveer un servicio específico. Los componentes de un sistema pueden estar interrelacionados entre ellos. Un desperfecto de un sistema ocurre cuando el sistema no desempeña estos servicios de la manera especificada. Un estado erróneo en un sistema es un estado en el cual podría conducir a un fallo en el sistema. Un fallo es una condición física anormal, las causas de un fallo incluyen: errores de diseño (como errores en la especificación del sistema o en la implementación), problemas de fabricación, deterioro por el uso u otros problemas externos (como condiciones ambientales adversas, interferencia electromagnética, entradas imprevistas o el mal uso del sistema). Un error es una parte del estado del sistema la cual difiere de los valores esperados.

Un error del sistema puede ser visto como una manifestación de mal funcionamiento del sistema, el cual podría conducir a un fallo del sistema. Es necesario entonces, que el sistema sea capaz de recuperarse de las fallas, necesitamos deshacernos del estado de error del sistema, en otras palabras, la recuperación de un fallo, es un proceso que involucra la restauración de un estado erróneo a un estado libre de error.

1.3.2 sistema heterogéneo
Un sistema heterogéneo es aquel que se encuentra compuesto por hardware con características físicas distintas entre sí, y software con características operativas distintas entre sí, pero que se pueden comunicar utilizando medios comunes.

1.3.3 sistema cooperativo
Es una arquitectura donde dos o más computadoras comparten el procesamiento de un programa. Esta arquitectura debe contar con recursos distribuidos: programas, archivos, base de datos, etc.
El procesamiento cooperativo debe proveer: acceso transparente al sistema, evitando de esta manera que el usuario se preocupe si el recurso a acceder es local o remoto.
1.3.4 sistema de tiempo real
Básicamente los sistemas de tiempo real se definen como sistemas informáticos que tienen la capacidad de interactuar rápidamente con su entorno físico, el cual puede realizar funciones de supervisión o control para su mismo beneficio.
Todos los sistemas de tiempo real tienen la facultad de ejecutar actividades o tareas en de intervalos de tiempo bien definidos.
Todas las tareas son ejecutadas inmediatamente en una forma concurrente, esto es para sincronizar el funcionamiento del sistema con la simultaneidad de acciones que se presentan en el mundo físico.
En los sistemas de tiempo real los intervalos de tiempo en que se ejecutan las tareas se definen por un esquema de activación y por un plazo de ejecución. En lo que respecta al esquema de activación puede ser periódico, es decir en intervalos regulares, o también puede ser aperiódico, es decir, en respuesta a sucesos externos que ocurren de forma irregular.
La mayoría de los STR son utilizados cuando existen requerimientos de tiempo muy rígidos en las operaciones o en el flujo de datos, generalmente son requeridos como sistemas de control en una aplicación dedicada.
La eficiencia de los STR no solo depende de la exactitud de los resultados de cómputo, sino también del momento en que los entrega. La predictibilidad es su característica principal de este tipo de sistemas.
Este tipo de sistemas se caracterizan por tener que producir una salida, como respuesta a una entrada, en un tiempo determinado. El intervalo de tiempo que se presenta entre la entrada y la salida debe ser muy pequeño para que la respuesta temporal del sistema sea aceptable.
1.4 objetivos de los sistemas distribuidos
El objetivo esencial de un sistema distribuido es proporcionar al usuario y a las aplicaciones una visión de los recursos del sistema como gestionados por una sola máquina virtual. La distribución física de los recursos es transparente.
1.5 ventajas y desventajas de los sistemas distribuidos
Ventajas:
Procesadores más poderosos y a menos costos
Desarrollo de Estaciones con más capacidades
Las estaciones satisfacen las necesidades de los usuarios.
Uso de nuevas interfaces.
Avances en la Tecnología de Comunicaciones.
Disponibilidad de elementos de Comunicación.
Desarrollo de nuevas técnicas.
Compartición de Recursos.
Dispositivos (Hardware).
Programas (Software).
Eficiencia y Flexibilidad.
Respuesta Rápida.
Ejecución Concurrente de procesos (En varias computadoras).
Empleo de técnicas de procesamiento distribuido.
Disponibilidad y Confiabilidad.
Sistema poco propenso a fallas (Si un componente no afecta a la disponibilidad del sistema).
Mayores servicios que elevan la funcionalidad ( Monitoreo, Telecontrol, Correo Eléctrico, Etc.).
Crecimiento Modular.
Es inherente al crecimiento.
Inclusión rápida de nuevos recursos.
Los recursos actuales no afectan.

Desventajas:
Requerimientos de mayores controles de procesamiento.
Velocidad de propagación de información ( Muy lenta a veces).
Servicios de replicación de datos y servicios con posibilidades de fallas.
Mayores controles de acceso y proceso ( Commit ).
Administración más compleja.
Costos.






No hay comentarios:

Publicar un comentario