1. SISTEMAS OPERATIVOS DISTRIBUIDOS
Un sistema operativo es un conjunto de sistemas y procedimientos que actúa
como intermediario entre el usuario y el hardware de un computador y su propósito
es proporcionar un entorno en el cual el usuario pueda ejecutar programas. El
objetivo principal de un sistema operativo es lograr que el sistema de computación
se use de manera cómoda, y el objetivo secundario es que el hardware del
computador se emplee de manera eficiente.
Existen muchos tipos distintos de sistemas operativos, desde los básicos como el
POST (Power On Self Test), Sistemas operativos de tiempo real, Sistemas
Operativos de Redes, Mono-Usuarios, Multi-Usuarios entre otros. En el desarrollo
de este trabajo estaremos desarrollando el concepto de Sistema operativo
Distribuido, su historia, sus funciones y aplicaciones y modo de trabajo.
Sistemas Operativos Distribuidos
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
remplazarlo inmediatamente y no afectar los procesos del sistema.
Entre los diferentes Sistemas Operativos distribuidos que existen tenemos los
siguientes: Sprite, Solaris-MC, Mach, Chorus, Spring, Amoeba, Taos, etc.
Características básicas
Los sistemas operativos distribuidos están basados en las ideas básicas:
• Transparencia
• Eficiencia
2. • 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
3. 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.
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.
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 sean aplicables como para mil. Del mismo modo el tipo
de red condiciona grandemente el rendimiento del sistema y puede que lo
funcione para un tipo de red requiera modificaciones para otro.
4. 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.
Sincronización
La sincronización 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 sincronización es sumamente importante.
Los sistemas operativos distribuidos tienen un reloj por cada ordenador del
sistema, con lo que es fundamental una coordinación 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 sincronización no es trivial, porque se realiza a
través de mensajes por la red. Cuyo tiempo de envió pude ser variable y depender
de muchos factores como la distancia, la velocidad de transmisión y la propia
estructura de la red.
El Reloj.
La sincronización 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 sincronización que existen
en los sistemas operativos distribuidos.
Funcionamiento Lógico del Sistema
A medida en la que hemos ido desarrollando el tema, hemos declarado que un
sistema operativo distribuido dentro de sus funciones básicas, es capaz de
encontrar mecanismos para la asignación de tareas a procesadores que pueden
estar dentro o fuera del equipo que esta ejecutando el programa.
Añadido a esto los sistemas operativos distribuidos brindan mas servicios de
distribución como son los siguientes:
5. • Servicios de Comunicación
• Sistemas de Ficheros (File Sharing)
• Servicios de Nombres
• Servicios de Sincronización y Coordinación
• Memoria Compartida Distribuida
• Gestión de Procesos
• Servicio de Seguridad
Servicios de Comunicación
Los servicios de comunicación son los típicos servicios de red, pero en el caso de
los sistemas operativos distribuidos son más especializados en ciertas áreas.
Los sistemas operativos distribuidos utilizan un concepto de interconexión llamado
Multicast (Comunicación en Grupo) que le permite a todos los computadores del
sistema trabajar como un solo elemento de la red.
Toda la coordinación de los SOD son sincronizados por medio de SOCKETS lo
cuales son paso de mensajes por la red que le permiten a los sistemas verificar
cual es el equipo que esta disponible o simplemente el estado de un equipo actual.
Los SOCKETS también son utilizados para la actualización del reloj.
Sistemas de Ficheros (File Sharing)
El concepto del sistema de ficheros esta basado en la gestión de distintos
dispositivos en diferentes nodos ofreciendo a usuarios la misma visión que un
Sistema Centralizado.
Dicho sistema permite que los usuarios compartan información de forma
transparente. Un buen ejemplo de esto es los contactos compartidos de cada
terminal los cuales se reflejan en un solo modulo de contactos cada vez que una
persona abre sus contactos.
Servicios de Nombres
Estos servicios identifican y localizan los recursos en el entorno distribuido.
Existen dos: Páginas Blancas y Paginas Amarillas. El servicio de páginas blancas
es el propiamente dicho de nombres y el de páginas amarillas es el de directorios.
Servicios de Sincronización
6. Los servicios de Sincronización son los que nos permiten mantener el los relojes
de las computadoras individuales en un tiempo aproximado y apropiado.
La sincronización puede ser de relojes Físicos, los cuales sincronizan los relojes
de hardware y de Relojes Lógicos, los cuales ordenan la entrada, ejecución y
salida de los eventos.
Memoria Compartida Distribuida (DSM)
En un sistema operativo distribuido, la memoria pasa a ser físicamente privada
pero lógicamente 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 físicas 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.
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.
7. Desventajas de los SOD
Por muy maravillosos que nos puedan pareces los sistemas operativos
distribuidos, también tienen sus desventajas. La sincronización del sistema es una
tarea Árdea de la cual nunca se descansa y la estandarización del sistema es un
tanto complicada y limitante.
Debido a que no todos los sistemas operativos son 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.
Conclusión
El futuro de los sistemas operativos Distribuidos esta en la formación de un nuevo
kernel universal que soporte distribución para que este pueda ser aplicado a todos
los sistemas operativos sin importar su plataforma. O por lo menos que los
sistemas puedan ser distribuidos entre las computadoras que corran este mismo
sistema dentro de la misma red y unificado por un servidor de sistemas operativos
distribuidos.
El sistema operativo distribuido es usado a menudo como sub sistemas operativos
utilizando sus ventajas como por ejemplo el sistema de clusters para
almacenamiento. Creemos que si podemos encontrar sub soluciones a la
distribución que sean ventajosas, deberíamos de incursionar el futuro de la
informática a la distribución total.