You are on page 1of 8

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.
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ásicas
Los sistemas operativos distribuidos están basados en las ideas básicas:

• Transparencia
• Eficiencia
• Flexibilidad
• Escalabilidad
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.

• Transparencia
El 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.

• Eficiencia
La 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.

• Flexibilidad
La 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ítico
Como 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.
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.

• Escalabilidad
Un 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
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-Servidor
Definició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.

Solicitud de Recurso
CLIENTE SERVICIO

Respuesta

PRG
ESQUEMA BD
CLIENTE/SERVIDOR

SERVICIOS

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

PROTOCOLO
Definició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.
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.

MIDDLEWARE
Definició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.

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

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.