Un sistema operativo distribuido provee funcionalidades para sistemas distribuidos, agregando atributos como escalabilidad y disponibilidad. Funciona de forma transparente para los usuarios a pesar de estar compuesto por múltiples nodos. Su diseño separa mecanismos y políticas para mejorar la escalabilidad y flexibilidad.
2. Los sistemas operativos distribuidos desempeñan las
mismas funciones que un sistema operativo normal,
pero con la diferencia de trabajar en un entorno
distribuido.
Su Misión principal consiste en facilitar el acceso y la
gestión de los recursos distribuidos en la red. En un
sistema operativo distribuido los usuarios pueden
acceder a recursos remotos de la misma manera en que
lo hacen para los recursos locales. Permiten distribuir
trabajos, tareas o procesos, entre un conjunto de
procesadores. Puede ser que este conjunto de
procesadores esté en un equipo o en diferentes, lo cual
es transparente para el usuario. Los sistemas
distribuidos deben de ser muy confiables y estables ya
que si un componente del sistema se descompone otro
componente debe de ser capaz de reemplazarlo
inmediatamente y no afectar los procesos del sistema.
3. Un sistema operativo distribuido provee las
funcionalidades esenciales requeridas por un sistema
distribuido, agregando atributos y configuraciones para dar
soporte a los requerimientos adicionales, tales como
aumento de escala y disponibilidad. Desde el punto de
vista del usuario el SO funciona de forma similar a un
Sistema Operativo monolítico de un solo nodo. O sea que,
aunque está compuesto por múltiples nodos, para los
usuarios y aplicaciones luce como un solo nodo.
Separando las funcionalidades mínimas a nivel de sistema
de los servicios modulares adicionales a nivel de usuario
provee “una separación de mecanismos y políticas”.
Mecanismos y políticas pueden ser interpretados de la
siguiente manera “cómo algo se hace” contra “por qué
algo se hace” respectivamente. Esta separación
incrementa la escalabilidad y la flexibilidad.
4. En cada unidad (típicamente un nodo), el núcleo provee un conjunto mínimo
pero completo de utilidades necesarias para operar con los recurso y
hardware subyacentes del nodo. Estos mecanismos incluyen la asignación,
manejo y disposición de los recursos de un nodo, los procesos, la
comunicación y las funciones de administración la entrada/salida. Dentro
del núcleo el subsistema de comunicación es de suma importancia para el
sistema distribuido.
En un sistema distribuido el núcleo comúnmente soporta un conjunto
mínimo de funciones que incluyen administración de direcciones de bajo
nivel, administración de hilos y comunicación entre procesos. Un núcleo con
este diseño se conoce como micro-núcleo. Su naturaleza modular mejora la
seguridad y la fiabilidad, características fundamentales para un sistema
distribuido. Es común que todos los nodos en un sistema tengan réplicas de
un mismo núcleo y por tanto que todos los nodos usen hardware similar. La
combinación de diseño minimalista y cobertura ubicua de los nodos mejora
la extensibilidad del sistema global así como su habilidad de agregar nuevos
nodos o servicios de manera dinámica.
5. Las componentes de administración del sistema son procesos
de software que definen las políticas del nodo. Estas
componentes son la parte del SO fuera del núcleo. Proveen
comunicación de alto nivel, administración de procesos y
recursos, confiabilidad, rendimiento y seguridad. Estas
componentes tienen las mismas funcionalidades de un
sistema formado por una sola entidad, adicionando la
transparencia requerida en un sistema operativo distribuido.
La naturaleza distribuida del sistema distribuido requiere
servicios adicionales para soportar las responsabilidades del
nodo en el sistema global. Además las componentes de
administración del sistema aceptan las responsabilidades
“defensivas” de confiabilidad, disponibilidad y persistencia.
Estas responsabilidades pueden entrar en conflicto una con
otra. La separación de políticas y mecanismos pueden mitigar
dichos conflictos.
6. La arquitectura y diseño de un sistema operativo distribuido deben
comprender tanto las metas del nodo individual, como las del
sistema. El diseño y la arquitectura deben ser concebidos de forma
que se mantengan separados las políticas y los mecanismos. De este
modo, un sistema operativo distribuido intenta proporcionar un
marco de computación distribuida eficiente y fiable que permita a
los usuarios tener en cuenta lo menos posible los esfuerzos
necesarios subyacentes para logarlo. La colaboración multi-nivel
entre el núcleo y las componentes del sistema de gestión, y a su vez
entre los distintos nodos en un sistema operativo distribuido es el
desafío funcional del mismo. Este es el punto en el sistema que
debe mantener una perfecta armonía de propósito, y al mismo
tiempo mantener una desconexión completa de la intención de la
implementación. Este desafío es la oportunidad del sistema
operativo distribuido para producir la base y el marco para un
sistema fiable, eficiente, disponible, robusto, extensible y
escalable. Sin embargo, esta posibilidad tiene un coste muy alto en
complejidad.
7. En un sistema operativo distribuido, el excepcional grado de
complejidad inherente fácilmente podría hacer de todo el sistema
una maldición para cualquier usuario. Como tal, el precio lógico de
realización de un sistema de operación distribuida se debe calcular
en términos de superar grandes cantidades de complejidad en
muchas áreas, y en muchos niveles. Este cálculo incluye la
profundidad, la amplitud y el alcance de la inversión en diseño
arquitectónico y la planificación necesaria para lograr incluso la
aplicación más modesta. Estas consideraciones de diseño y
desarrollo son fundamentales e implacables. Por ejemplo, una
comprensión profunda del diseño y detalles de la arquitectura de un
sistema operativo distribuido es fundamental desde el inicio. Una
cantidad agotadora de consideraciones de diseño son inherentes al
desarrollo de un sistema operativo distribuido. Cada una de estas
consideraciones de diseño puede afectar potencialmente a muchas
de las otras en un grado significativo. Esto conduce a un esfuerzo
masivo en lograr un enfoque equilibrado, en términos de las
consideraciones de diseño individuales, y muchos de sus
permutaciones. Como apoyo para esta tarea, la mayoría se basan en
la experiencia documentada y la investigación en computación
distribuida.
8. Los sistemas distribuidos están basados en las
ideas básicas de:
Transparencia
Eficiencia
Flexibilidad
Escalabilidad
Seguridad.
Sin embargo estos aspectos son en parte
contrarios, y por lo tanto los sistemas
distribuidos han de cumplir en su diseño el
compromiso de que todos los puntos anteriores
sean solucionados de manera aceptable.
9. 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.
10. 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.
11. 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
12. 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.
13. 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 físicas
de cada computadora.
14.
15. Economía: es la razón número uno de la tendencia
hacia los sistemas distribuidos ya que estos sistemas
tienen en potencia una proporción precio/desempeño
mucho mejor que la de un sistema centralizado.
Velocidad: un sistema distribuido puede tener mayor
poder de cómputo que una mainframe.
Distribución inherente: otra razón para la
construcción de un sistema distribuido es que ciertas
aplicaciones son distribuidas en forma inherente; es
decir, algunas aplicaciones utilizan máquinas que
están separadas a cierta distancia.
Confiabilidad: un sistema distribuido ofrece mayor
confiabilidad al distribuir la carga de trabajo en
muchas máquinas, la falla de un circuito
descompondrá a lo más una máquina y el resto
seguirá intacto.
16. Software: No hay mucha experiencia en el
diseño, implantación y uso del software
distribuido, además existe poco software para
los sistemas distribuidos en la actualidad.
Redes: Una vez que el sistema llega a depender
de la red, la pérdida o saturación de ésta puede
negar algunas de las ventajas que el sistema
distribuido debía conseguir.
Seguridad: si las personas pueden tener acceso
a los datos en todo el sistema, entonces también
pueden tener acceso a datos con los que no
tienen nada que ver.