Tema Sistema Distribuidos
Tema Sistema Distribuidos
Tema Sistema Distribuidos
Definicin:
"Sistemas cuyos componentes hardware y software, que estn en ordenadores conectados en red,
se comunican y coordinan sus acciones mediante el paso de mensajes, para el logro de un
objetivo. Se establece la comunicacin mediante un protocolo prefijado por un esquema clienteservidor".
Un sistema distribuido es una coleccin de computadoras independientes; es decir autnomas,
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 compaa, donde
adems de cada estacin personal, podra existir una pila de procesadores en el cuarto de
mquinas, que no estn asignados a usuarios especficos sino que se utilicen de manera dinmica
cuando sea necesario.
Una fbrica de robots, donde los robots actan como dispositivos perifricos 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 cul se puede comunicar
con cualquier computadora de la red. Las transacciones hechas se realizan sin importar dnde se
encuentre la cuenta o el cliente.
Caractersticas:
Concurrencia.- Esta caracterstica de los sistemas distribuidos permite que
los recursos disponibles en la red puedan ser utilizados simultneamente por los usuarios
y/o agentes que interactan en la red.
Carencia de reloj global.- Las coordinaciones para la transferencia de mensajes entre los
diferentes componentes para la realizacin de una tarea, no tienen una temporizacin
general, esta ms bien distribuida a los componentes.
Fallos independientes de los componentes.- Cada componente del sistema puede fallar
independientemente, con lo cual los dems pueden continuar ejecutando sus acciones.
Esto permite el logro de las tareas con mayor efectividad, pues el sistema en su conjunto
continua trabajando.
Comparticin de Recursos
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.
Apertura (opennesss)
Un sistema informtico es abierto si el sistema puede ser extendido de diversas maneras. Un
sistema puede ser abierto o cerrado con respecto a extensiones hardware (aadir perifricos,
memoria o interfaces de comunicacin, etc ) o con respecto a las extensiones software ( aadir
caractersticas al sistema operativo, protocolos de comunicacin y servicios de comparticin de
recursos, etc ). La apertura de los sistemas distribuidos se determina primariamente por el grado
hacia el que nuevos servicios de comparticin de recursos se pueden aadir sin perjudicar ni
duplicar a los ya existentes.
Concurrencia
Cuando existen varios procesos en una nica maquina decimos que se estn ejecutando
concurrentemente. Si el ordenador esta equipado con un nico procesador central, la concurrencia
tiene lugar entrelazando la ejecucin de los distintos procesos. Si la computadora tiene N
procesadores, entonces se pueden estar ejecutando estrictamente a la vez hasta N procesos.
En los sistemas distribuidos hay muchas maquinas, cada una con uno o mas procesadores
centrales. Es decir, si hay M ordenadores en un sistema distribuido con un procesador central
cada una entonces hasta M procesos estar ejecutndose en paralelo.
En un sistema distribuido que esta basado en el modelo de comparticin de recursos, la posibilidad
de ejecucin paralela ocurre por dos razones:
Muchos usuarios interactuan simultneamente con programas de aplicacin.
Muchos procesos servidores se ejecutan concurrentemente, cada uno respondiendo a
diferentes peticiones de los procesos clientes.
Escalabilidad
Los sistemas distribuidos operan de manera efectiva y eficiente a muchas escalas diferentes. La
escala ms pequea consiste en dos estaciones de trabajo y un servidor de ficheros, mientras que
un sistema distribuido construido alrededor de una red de rea local simple podra contener varios
cientos de estaciones de trabajo, varios servidores de ficheros, servidores de impresin y otros
servidores de propsito especifico. A menudo se conectan varias redes de rea local para formar
internetworks, y stas podran contener muchos miles de ordenadores que forman un nico
sistema distribuido, permitiendo que los recursos sean compartidos entre todos ellos.
Tolerancia a Fallos
Los sistemas distribuidos tambin proveen un alto grado de disponibilidad en la vertiente de fallos
hardware. La disponibilidad de un sistema es una medida de la proporcin de tiempo que esta
disponible para su uso. Un fallo simple en una maquina multiuruario resulta en la no disponibilidad
del sistema para todos los usuarios. Cuando uno de los componentes de un sistema distribuidos
falla, solo se ve afectado el trabajo que estaba realizando el componente averiado. Un usuario
podra desplazarse a otra estacin de trabajo; un proceso servidor podra ejecutarse en otra
maquina.
Transparencia
La transparencia se define como la ocultacin al usuario y al programador de aplicaciones de la
separacin de los componentes de un sistema distribuido, de manera que el sistema se percibe
como un todo, en vez de una coleccin de componentes independientes. La transparencia ejerce
una gran influencia en el diseo del software de sistema.
o
o
o
Se logra una mejor comunicacin entre las personas. Ejemplo: el correo electrnico.
Tienen mayor flexibilidad, la carga de trabajo se puede distribuir entre diferentes ordenadores.
DESVENTAJAS DE LOS SISTEMAS DISTRIBUIDOS
El principal problema es el software, es el diseo, implantacin y uso del software distribuido, pues
presenta numerosos inconvenientes. Los principales interrogantes son los siguientes:
Qu tipo de S. O., lenguaje de programacin y aplicaciones son adecuados para estos sistemas?.
Cunto deben saber los usuarios de la distribucin?.
Qu tanto debe hacer el sistema y qu tanto deben hacer los usuarios?.
La respuesta a estos interrogantes no es uniforme entre los especialistas, pues existe una
gran diversidad de criterios y de interpretaciones al respecto.
Otro problema tiene que ver con las redes de comunicacin. Por ejemplo: -Perdida de mensajes,
saturacin en el trfico, etc.
Caractersticas bsicas
Los sistemas operativos distribuidos estn basados en las ideas bsicas:
Transparencia
Eficiencia
Flexibilidad
Escalabilidad
Existen dos esquemas bsicos: Los Fuertemente Acoplados y los dbiles. 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 dbilmente 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 unificacin de todos los sistemas y
recursos totalmente transparente para el usuario o aplicacin.
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
ncleo del sistema distribuido como un nico procesador, Es decir que la programacin y la
ejecucin de los programas y tareas sean exactamente iguales que las de los sistemas operativos
normales en aspectos visuales y de programacin, pero mas rpidos y eficientes por la distribucin
de la tareas.
Eficiencia
La idea base de los sistemas operativos distribuido es la de obtener sistemas mucho mas rpidos
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 rpidos en cada momento.
El concepto global de que un procesador haga todas las tareas y la desarrolle rpido depende de
muchos factores concretos: Velocidad, Memoria y tipo de procesamiento, Pero para un sistema
operativo distribuido esto es mucho mas fcil y eficiente, solo buscara un procesador mas rpido
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
evolucin tecnolgica.
Dicha capacidad es una virtud y un conflicto. Una Virtud debido a las grandes necesidades de los
sistemas operativos de mejorar despus de las primeras versiones y un conflicto que surge entre
los sistemas de con Ncleo Monoltico y los sistemas con Micro ncleo las cuales son dos
arquitecturas distintas del ncleo del sistema operativo.
Ncleo Monoltico
Como ejemplo de sistema operativo de ncleo monoltico esta UNIX, estos sistemas tienen en
ncleo grande y complejo, que engloba todos los servicios del sistema. Esta programado de forma
no modular, y tiene un rendimiento mayor que un micro ncleo. Sin embargo, cualquier cambio a
realzar en cualquiera de los servicios, requiere de hacer un STOP a todos los servicios y la
recopilacin del ncleo.
Micro Ncleo.
La arquitectura ofrece la alternativa al ncleo monoltico, se basa en una programacin altamente
modular y tiene un tamao mucho menor que el ncleo monoltico. Como consecuencia, el
refinamiento y el control de errores son mas rpidos y sencillos. Adems, la actualizacin de los
servicios es ms sencilla y gil. Ya que solo es necesario la recopilacin del servicio y no de todo
el ncleo. Como desventaja, El rendimiento se ve afectado negativamente.
En la actualidad la mayora de los sistemas operativos distribuidos en desarrollo tienden a un
diseo de micro ncleo 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 debera 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 topologa (LAN
o WAN) (TOKEN RING o ETHERNET) y mucho menos la distancia entre los equipos.
Los sistemas operativos distribuidos necesitan de grandes estndares 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 ms equipos no importan la cantidad o
los recursos que estos le puedan proporcionar.
Sincronizacin
La sincronizacin es un punto clave para los sistemas operativos distribuidos. Para computadores
nicos no es nada importante, pero en el caso de los recursos compartidos de la red, la
sincronizacin es sumamente importante.
Los sistemas operativos distribuidos tienen un reloj por cada ordenador del sistema, con lo que es
fundamental una coordinacin entre todos los relojes para mostrar una hora nica. Los osciladores
de cada ordenador son ligeramente diferentes, y como consecuencia todo los relojes sufren un
desfase y deben ser sincronizados continuamente. La sincronizacin no es trivial, porque se
realiza a travs de mensajes por la red. Cuyo tiempo de envi pude ser variable y depender de
muchos factores como la distancia, la velocidad de transmisin y la propia estructura de la red.
El Reloj.
La sincronizacin del reloj no tiene que ser exacta y bastara con que sea aproximadamente igual
en todos los ordenadores. Hay que tener en cuenta eso si. El modo de actualizar la hora de un
reloj es particular. Es fundamenta no retrasar nunca la hora, aunque el reloj adelante. En vez de
eso, hay que atrasar la actualizaron del reloj. Frenarlo. Hasta que alcance la hora aproximada.
Existen diferentes algoritmos de actualizan de la hora.
El Reloj es nicamente uno de los tantos problemas de sincronizacin que existen en los sistemas
operativos distribuidos.
La sincronizacin puede ser de relojes Fsicos, los cuales sincronizan los relojes de hardware y
de Relojes Lgicos, los cuales ordenan la entrada, ejecucin y salida de los eventos.
Memoria Compartida Distribuida (DSM)
En un sistema operativo distribuido, la memoria pasa a ser fsicamente privada pero lgicamente
compartida. Es decir, un computador ejecuta los programas en su memoria propia, pero en caso
de necesitar mas memoria utilizara los recursos disponibles de otra computadora que este
capacitada y preparada dentro de la red para compartir su memoria.
La Memoria compartida distribuida ayuda a que no se formen los famosos cuellos de botella,
debido que busca los recursos necesarios para lograr cumplir todas las tareas asignadas.
Servicios de Seguridad
Los servicios de seguridad de un SOD van ligados a permisos de acceso tanto a los datos
compartidos como a los recursos. Los recursos de memoria por ejemplo, son asignados permisos
a la cantidad de memoria compartida siguiendo las necesidades fsicas de cada computadora.
Ejemplo: Una computadora de 128 MB RAM, la cual trabaja mucho es muy probable que en vez
de poder compartir memoria requiera de memoria compartida de otras computadoras. Debido a
esto, el DSM (Distribuid Shared Memory o Memoria Distribuida Compartida) es Deshabilitado para
que no se disponga de recursos libres de este computador.
CLIENTE SERVIDOR
Definicin:
Sistema donde el cliente es una mquina que solicita un determinado servicio y se denomina
servidor a la mquina que lo proporciona. Los servicios pueden ser:
Categoras de Servidores:
A continuacin se presenta una lista de los servidores ms comunes:
Servidores de archivos.- Proporciona archivos para clientes. Si los archivos no fueran tan
grandes y los usuarios que comparten esos archivos no fueran muchos, esto sera una gran opcin
de almacenamiento y procesamiento de archivos. El cliente solicita los archivos y el servidor los
ubica y se los enva.
Servidores de Base de Datos.- Son los que almacenan gran cantidad de datos estructurados, se
diferencian de los de archivos pues la informacin que se enva est ya resumida en la base de
datos. Ejemplo: El Cliente hace una consulta, el servidor recibe esa consulta (SQL) y extrae solo
la informacin pertinente y enva esa respuesta al cliente.
Servidores WEB.- Son los que guardan y proporcionan Pginas HTML. El cliente desde un
browser o link hace un llamado de la pgina y el servidor recibe el mensaje y enva la pgina
correspondiente.
Servidor de objetos.- Permite almacenar objetos que pueden ser activados a distancia. Los
clientes pueden ser capaces de activar los objetos que se encuentran en el servidor.
Servidores de impresin.- Gestionan las solicitudes de impresin de los clientes. El cliente enva
la solicitud de impresin, el servidor recibe la solicitud y la ubica en la cola de impresin, ordena a
la impresora que lleve a cabo las operaciones y luego avisa a la computadora cliente que ya acabo
su respectiva impresin.
Componentes de Software:
Se distinguen tres componentes bsicos de software:
Presentacin.- Tiene que ver con la presentacin al usuario de un conjunto de objetos visuales y
llevar a cabo el procesamiento de los datos producidos por el mismo y los devueltos por el servidor.
Base de datos.- Esta compuesta de los archivos que contienen los datos de la aplicacin.
Arquitecturas Cliente / Servidor
A continuacin mostramos las arquitecturas cliente-servidor ms populares:
Cuando los procesos no estn relativamente muy relacionados con los datos.
Cuando se requiera aislar la tecnologa de la base de datos para que sea fcil de cambiar.
Cuando se requiera separar el cdigo del cliente para que se facilite el mantenimiento.
SERVIDOR DE ARCHIVOS
Un servidor de archivos es un tipo de servidor que almacena y distribuye diferentes tipos
de archivos entre los clientes de una red de ordenadores. Su funcin es permitir a otros nodos el
acceso remoto a los archivos que almacena o sobre los que tiene acceso.
En principio, cualquier ordenador conectado a una red, dotado del software apropiado, puede
funcionar como servidor de archivos.
Desde el punto de vista del cliente de un servidor de archivos, la localizacin de los archivos
compartidos es transparente, es decir, en la prctica no hay diferencias perceptibles si un archivo
est almacenado en un servidor de archivos remoto o en el disco de la propia mquina.
Los protocolos que suelen emplearse en las transferencias de los archivos son:
FTP (multiplataforma)
SMB/CIFS (Windows, Samba en Unix)
NFS (Unix)
un equipo cliente se puede conectar a un servidor para descargar archivos desde l o para enviarle
archivos, independientemente del sistema operativo utilizado en cada equipo.
El servicio FTP es ofrecido por la capa de aplicacin del modelo de capas de red TCP/IP al usuario,
utilizando normalmente el puerto de red 20 y el 21.
Server Message Block (SMB) es un protocolo de red que permite compartir archivos, impresoras,
etctera, entre nodos de una red de computadoras.
Este protocolo pertenece a la capa de aplicacin en el modelo OSI.
Es utilizado principalmente en computadoras con sistemas operativos: Microsoft Windows y DOS.
SMB fue inventado originalmente por IBM, pero la versin ms comn es la modificada
ampliamente por Microsoft.
Samba es una implementacin libre del protocolo de archivos compartidos de Microsoft
Windows (antiguamente llamado SMB, renombrado recientemente a CIFS) para sistemas de
tipo UNIX. De esta forma, es posible que computadoras con GNU/Linux, Mac OS X o Unix en
general se vean como servidores o acten como clientes en redes de Windows. Samba tambin
permite validar usuarios haciendo de Controlador Principal de Dominio (PDC),
El Network File System (Sistema de archivos de red), o NFS, es un protocolo de nivel de
aplicacin, segn el Modelo OSI. Es utilizado para sistemas de archivos distribuido en un entorno
de red de computadoras de rea local. Posibilita que distintos sistemas conectados a una misma
red accedan a ficheros remotos como si se tratara de locales.