Sistemas de Procesamineto Distribuido1

12
SISTEMAS DE PROCESAMIENTO DISTRIBUIDO Colección de computadores separados físicamente y conectados entre sí por una red de comunicaciones distribuida; cada máquina posee sus componentes de hardware y software (poseen una memoria privada o propia) que el usuario percibe como un solo sistema (no necesita saber qué cosas están en qué máquinas). El usuario accede a los recursos remotos (RPC ) de la misma manera en que accede a recursos locales, o un grupo de computadores que usan un software para conseguir un objetivo en común. Punto de partida: uniprocesador de tiempo compartido Punto de destino: sistema distribuido basado en una red local

Transcript of Sistemas de Procesamineto Distribuido1

Page 1: Sistemas de Procesamineto Distribuido1

SISTEMAS DE PROCESAMIENTO DISTRIBUIDO

Colección de computadores separados físicamente y conectados entre sí por una red de comunicaciones distribuida; cada máquina posee sus componentes de hardware y software (poseen una memoria privada o propia) que el usuario percibe como un solo sistema (no necesita saber qué cosas están en qué máquinas). El usuario accede a los recursos remotos (RPC) de la misma manera en que accede a recursos locales, o un grupo de computadores que usan un software para conseguir un objetivo en común.

Punto de partida: uniprocesador de tiempo compartido

Punto de destino: sistema distribuido basado en una red local

Distintas máquinas pueden estar conectadas en una red de comunicación, tal que una sola tarea de procesamiento de datos puede ocupar muchas máquinas en la red.

En los Sistemas Operativos Distribuidos existe un software que distribuye las tareas de los usuarios sobre una red de computadoras y para los usuarios es transparente donde realizan sus tareas y guardan su información.

Page 2: Sistemas de Procesamineto Distribuido1

En un sistema de proceso distribuido, la mayor parte de los procesos se lleva a cabo en la memoria individual de las computadoras personales, a las que denomina estaciones de trabajo.

El tamaño de un sistema distribuido puede ser muy variado, ya sean decenas de hosts (Local Area Network), centenas de hosts (Metropolitan Area Network), y miles o millones de hosts (Internet).

Ejemplo de sistema distribuido simple :

Entre los diferentes Sistemas Operativos distribuidos que existen tenemos los siguientes: Sprite, Solaris-MC, Mach, Chorus, Spring, Amoeba, Taos, etc.

Sistema Operativo Distribuido vs Sistema Distribuido

Existe una diferencia vital entre los sistemas operativos distribuidos y los sistemas distribuidos. Podríamos llamar a un Sistema Distribuido una capacidad del Sistema operativo Distribuido, es decir: Un sistema distribuido es la relación que existe entre una computadora independiente y un servidor de archivos o dispositivos compartidos. Cada computadora ejecuta sus programas en su memoria propia haciendo uso de su único microprocesador y memoria, este no comparte memoria ni asigna tareas a otros procesadores de la red.

Sin embargo, un Sistema operativo distribuido tiene acceso a todos los dispositivos compartidos de la red incluyendo procesadores y memoria RAM.

Características básicasLos sistemas operativos distribuidos están basados en las ideas básicas:

• Transparencia• Eficiencia• Flexibilidad• Escalabilidad

Page 3: Sistemas de Procesamineto Distribuido1

Existen dos esquemas básicos: Los Fuertemente Acoplados y los débiles. Un sistema fuertemente acoplado es aquel que comparte la memoria y un reloj global, cuyos tiempos de acceso son similares para todos los procesadores. En un sistema débilmente acoplado los procesadores no comparten ni memoria ni reloj, ya que cada uno cuenta con su memoria local.

TransparenciaEl concepto de transparencia de un Sistema operativo distribuido va ligado a la

idea de que todo el sistema funcione de forma similar en todos los puntos de la red, debido a esto queda como labor del sistema operativo coordinar el mecanismo que logre la unificación de todos los sistemas y recursos totalmente transparente para el usuario o aplicación.

El que el sistema disponga de varios procesadores debe lograr un mayor rendimiento del sistema, pero el sistema operativo debe controlar que tanto los usuarios como los programadores vean el núcleo del sistema distribuido como un único procesador, Es decir que la programación y la ejecución de los programas y tareas sean exactamente iguales que las de los sistemas operativos normales en aspectos visuales y de programación, pero mas rápidos y eficientes por la distribución de la tareas.

EficienciaLa idea base de los sistemas operativos distribuido es la de obtener sistemas

mucho mas rápidos que los utilizados de procesador único, Y para lograr esto tenemos que olvidar la idea antigua de ejecutar los programas en estos procesadores y pensar en distribuir las tareas a los procesadores libres mas rápidos en cada momento.

El concepto global de que un procesador haga todas las tareas y la desarrolle rápido depende de muchos factores concretos: Velocidad, Memoria y tipo de procesamiento, Pero para un sistema operativo distribuido esto es mucho mas fácil y eficiente, solo buscara un procesador mas rápido y mas libre para que desarrolle las tareas y hará un display de los resultados obtenidos.

FlexibilidadLa Flexibilidad dentro de sistema operativo distribuido, describe su capacidad

para soportar cambios, actualizaciones y mejoras que le permitan irse desarrollando al mismo ritmo de la evolución tecnológica.

Dicha capacidad es una virtud y un conflicto. Una Virtud debido a las grandes necesidades de los sistemas operativos de mejorar después de las primeras versiones y un conflicto que surge entre los sistemas de con Núcleo Monolítico y los sistemas con Micro núcleo las cuales son dos arquitecturas distintas del núcleo del sistema operativo.

o Núcleo MonolíticoComo ejemplo de sistema operativo de núcleo monolítico esta UNIX,

estos sistemas tienen en núcleo grande y complejo, que engloba todos los servicios del sistema. Esta programado de forma no modular, y tiene un rendimiento mayor que un micro núcleo. Sin embargo, cualquier cambio a realzar en cualquiera de los servicios, requiere de hacer un STOP a todos los servicios y la recopilación del núcleo.

Page 4: Sistemas de Procesamineto Distribuido1

o Micro Núcleo.La arquitectura ofrece la alternativa al núcleo monolítico, se basa en una

programación altamente modular y tiene un tamaño mucho menor que el núcleo monolítico. Como consecuencia, el refinamiento y el control de errores son mas rápidos y sencillos. Además, la actualización de los servicios es más sencilla y ágil. Ya que solo es necesario la recopilación del servicio y no de todo el núcleo. Como desventaja, El rendimiento se ve afectado negativamente.

En la actualidad la mayoría de los sistemas operativos distribuidos en desarrollo tienden a un diseño de micro núcleo el cual aun siendo un poco mas lento, garantiza una estabilidad mayor y un aumento de la flexibilidad del sistema.

EscalabilidadUn sistema operativo distribuido debería funcionar tanto para una docena de

computadoras como para mil en una sola red, el tipo de red utilizada no debe de ser un problema ni su topología (LAN o WAN) (TOKEN RING o ETHERNET) y mucho menos la distancia entre los equipos. Sin embargo todo esto influye, Aunque estos puntos serian muy deseables, pude que la solución valida para unas cuantas computadoras no sea aplicable como para mil. Del mismo modo el tipo de red condiciona grandemente el rendimiento del sistema y puede que funcione para un tipo de red y requiera modificaciones para otro.

Los sistemas operativos distribuidos necesitan de grandes estándares para trabajar y sobre todo de ajustes a las necesidades principales de cada red y sus usuarios. Este concepto propone que cualquier computador debe funcionar perfectamente como un sistema operativo distribuido, pero de la misma forma debe de formar parte y trabajar como más equipos no importan la cantidad o los recursos que estos le puedan proporcionar.

PROCESO DISTRIBUIDO MEDIANTE ENVIO DE MENSAJES

En los sistemas distribuidos reales se suele dar el caso de que los computadores no comparten una memoria principal; cada una se convierte en un sistema de computadores aislados. Por lo tanto, no pueden emplearse técnicas de comunicaciones entre procesadores que se basen en memoria compartida, como son los semáforos y el uso de un área de memoria común. En su lugar, usan técnicas basadas en el paso de mensajes; hay dos procedimientos usuales: la aplicación simple del paso de mensajes o la llamada a procedimientos remotos.

El modelo más usual de paso distribuido de mensajes es el ya mencionado modelo cliente / servidor. Un proceso cliente solicita un servicio y envía un mensaje que contiene una petición de servicio a un proceso servidor. El proceso servidor cumple con la petición y envía una respuesta.

Se dice que un servicio de paso de mensajes es fiable cuando garantiza el envío si es posible. Dicho servicio debería hacer uso de un protocolo de transporte fiable o de

Page 5: Sistemas de Procesamineto Distribuido1

alguna lógica similar y llevaría a cabo chequeos de errores, acuses de recibo, retransmisiones y reordenación de mensajes desordenados. Como el envío está garantizado, no es necesario hacer que el proceso emisor sepa que el mensaje fue enviado. Sin embargo, puede ser útil proporcionar un acuse de recibo al proceso emisor de manera que se entere de que tuvo lugar el envío. En cualquier caso, si el servicio falla al completar el envío, se notificará de este fallo al proceso emisor.En los servicios no fiables, se envían mensajes a la red de comunicaciones sin informar de su éxito ni de su fracaso

Cliente-ServidorDefinición:

Sistema donde el cliente es una máquina que solicita un determinado servicio y se denomina servidor a la máquina que lo proporciona. Los servicios pueden ser: Ejecución de un determinado programa. Acceso a un determinado banco de información. Acceso a un dispositivo de hardware.

Es un elemento primordial, la presencia de un medio físico de comunicación entre las máquinas, y dependerá de la naturaleza de este medio la viabilidad del sistema.

Arquitecturas Cliente / ServidorA continuación mostramos las arquitecturas cliente-servidor más populares:

PROTOCOLODefinición:

Es un conjunto bien conocido de reglas y formatos que se utilizan para la comunicación entre procesos que realizan una determinada tarea. Se requieren dos partes: Especificación de la secuencia de mensajes que se han de intercambiar. Especificación del formato de los datos en los mensajes.

Un protocolo permite que componentes heterogéneos de sistemas distribuidos puedan desarrollarse independientemente, y por medio de módulos de software que componen el protocolo, haya una comunicación transparente entre ambos componentes.

CLIENTE SERVICIO

Solicitud de Recurso

Respuesta

PRGBD

SERVICIOS

ESQUEMA CLIENTE/SERVIDOR

Page 6: Sistemas de Procesamineto Distribuido1

Es conveniente mencionar que estos componentes del protocolo deben estar tanto en el receptor como en el emisor.Ejemplos de protocolos usados en los sistemas distribuidos: IP: Protocolo de Internet.- Protocolo de la capa de Red, que permite definir la

unidad básica de transferencia de datos y se encarga del direccionamiento de la información, para que llegue a su destino en la red.

TCP: Protocolo de Control de Transmisión.- Protocolo de la capa de Transporte, que permite dividir y ordenar la información a transportar en paquetes de menor tamaño para su transporte y recepción.

HTTP: Protocolo de Transferencia de Hipertexto.- Protocolo de la capa de aplicación, que permite el servicio de transferencia de páginas de hipertexto entre el cliente WEB y los servidores.

SMTP: Protocolo de Transferencia de Correo Simple.- Protocolo de la capa de aplicación, que permite el envío de correo electrónico por la red.

POP3: Protocolo de Oficina de Correo.- Protocolo de la capa de aplicación, que permite la gestión de correos en Internet, es decir, le permite a una estación de trabajo recuperar los correos que están almacenados en el servidor.

MIDDLEWAREDefinición:

Capa de software intermedio entre el cliente y el servidor. Es la capa de software que nos permiten gestionar los mecanismos de comunicaciones. Ejemplo si se hace la petición de una página web desde un browser en el cliente, el middleware determina la ubicación y envía una petición para dicha página. El servidor Web, interpreta la petición y envía la página al software intermedio, quien la dirige al navegador de la máquina cliente que la solicitó. Existen dos tipos: Software intermedio general. Servicios generales que requieren todos los clientes

y servidores, por ejemplo: software para las comunicaciones usando el TCP/IP, software parte del sistema operativo que, por ejemplo, almacena los archivos distribuidos, software de autenticación, el software intermedio de mensajes de clientes a servidores y viceversa.

Software intermedio de servicios. Software asociado a un servicio en particular, por ejemplo: software que permite a dos BD conectarse a una red cliente/servidor (ODBC: Conectividad abierta de BD), software de objetos distribuidos, por ejemplo la tecnología CORBA permite que objetos distribuidos creados en distintos lenguajes coexistan en una misma red (intercambien mensajes), software intermedio para software de grupo, software intermedio asociado a productos de seguridad específicas (Conexiones Seguras: Sockets), etc.

Desventajas de los SOD

Debido a que no todos los sistemas operativos son de de carácter distribuido enlazar los distintos tipos de sistemas operativos es un poco complicado.

El interés de hacer el SOD lo mas transparente posible lo hace muy complicado en su programación y el lograr que el sistema operativo no tenga problemas para que no cause problemas a otros equipos que le asignaron tareas es un poco dificultoso.

Page 7: Sistemas de Procesamineto Distribuido1

SETI@HOME (the Search for Extra-Terrestrial Inteligente)

SETI@Home es un experimento científico de la Universidad Berkeley de California que combina el poder de computo de millones de computadoras alrededor del mundo conectadas a través de la Internet para analizar datos obtenidos por un radio telescopio que capta ondas provenientes del espacio.

  Este experimento es el primero en tomar ventaja de la enorme capacidad de computo que se puede obtener utilizando un sistema distribuido en la Internet, red a la cual están actualmente conectados millones de PCs de todo el mundo. Fue lanzado al publico en el año 1999, y actualmente

  La idea de SETI es que en algún lugar de alguna galaxia en el espacio puede haber alguna civilización, obviamente extraterrestre, suficientemente avanzada, que esta lanzando señales al espacio para que alguien las capte y así poder hacer contacto. SETI@Home intenta encontrar uno de estos ‘mensajes’ en las ondas de audio que se analizan.

  Estas señales podrían llegar hasta la Tierra en forma de débiles ondas de sonido, que solo podrían ser captadas por un dispositivo muy sensible, como el radio telescopio de 305 metros de diámetro ubicado en Arecibo, Costa Rica, y también estarían muy mezcladas por toda la interferencia producida por señales provenientes de la tierra, por ese motivo, las ondas captadas deben ser profundamente analizadas, en diferentes rangos de frecuencia, lo que requiere una gran cantidad de tiempo de CPU.

 Funcionamiento

Page 8: Sistemas de Procesamineto Distribuido1

   SETI@Home basa su funcionamiento en un sistema de distribución de datos, que se reciben desde Arecibo en grandes cintas magnéticas de varios Gibabytes de capacidad, luego el servidor de SETI va partiendo los datos de las cintas en pedazos de 250kb de información, lo que se conoce como una ´work unit´ (w.u.) , que luego será enviada a los usuarios conectados corriendo el software cliente de SETI@Home para que la procesen.

   El software cliente puede ser obtenido de la página del proyecto SETI (link a la derecha). Este software puede correr tanto como un ´screensaver´, que hace el trabajo de analizar las ondas cuando la PC no esta siendo usada por nadie, o bien, puede correr todo el tiempo, incluso mientras la PC esta siendo usada, pero con una prioridad para CPU baja, lo que haría que SETI solo use el porcentaje de procesador que esta inactivo.

  Los resultados del análisis de las work units son enviados de vuelta al servidor de SETI@Home, que vuelve a enviar otra w.u. a la PC que termino su trabajo, y así sucesivamente. Teniendo en cuenta la velocidad de la CPU que esté procesando los datos y la frecuencia y cantidad de interferencia que posea la onda procesada, el tiempo que se tarda en procesar una w.u. puede variar enormemente.

   Por seguridad, las w.u. son enviadas a dos o tres usuarios, asi se puede comprobar la veracidad de los resultados obtenidos por un usuario y otro de la misma onda, asegurándose de que no haya ningún tipo de sabotaje ni de error de cómputos posible.

   Luego de enviar la w.u. a dos o tres usuarios, el servidor espera un cierto tiempo a que los resultados sean devueltos, y al ser devueltos dos de ellos, la w.u. es borrada del servidor. En caso contrario, si alguno de los usuarios no devuelve los resultados en el tiempo disponible, la misma w.u. es enviada a otro usuario para su procesamiento, asegurándose así de que no quede ningún pedazo de información sin ser procesada.

 

  ¿Cómo va el proyecto?  

  SETI@Home fue lanzado al publico en 1999, con una duración planeada de dos años, pero debido a la muy buena respuesta recibida el proyecto ahora se ha prolongado, prácticamente por tiempo indefinido.

   Actualmente hay más de 3.5 millones de usuarios registrados, de los cuales aproximadamente 400000 se conectan con el servidor de SETI diariamente, logrando así una impresionante capacidad de procesamiento de datos, actualmente 15 TeraFlops, mas de tres veces la capacidad de la supercomputadora más rápida existente, la IBM ASCI White, de 4.9 TeraFlops, que cuesta $110 millones. El gasto del proyecto SETI@Home hasta el momento no sobrepasó los $500000.

   Ya han sido analizadas mas de 500 millones de w.u. entre las cuales se seleccionan algunas para su posterior post procesamiento.