Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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.
Entre los diferentes Sistemas Operativos distribuidos que existen tenemos los
siguientes: Sprite, Solaris-MC, Mach, Chorus, Spring, Amoeba, Taos, etc.
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.
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.
• 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.
• 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.
• 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.
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.
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
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.
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
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.
Ya han sido analizadas mas de 500 millones de w.u. entre las cuales se seleccionan
algunas para su posterior post procesamiento.