Sistemas Operativos Distribuidos Los sistemas operativos distribuidos abarcan los servicios de los de red, logrando integrar recursos (impresoras, unidades de respaldo, memoria, procesos, unidades centrales de proceso) en una sola máquina virtual que el usuario aceza en forma transparente. Es decir, ahora el usuario ya no necesita saber la ubicación de los recursos, sino que los conoce por nombre y simplemente los usa como si todos ellos fuesen locales a su lugar de trabajo habitual. Todo lo anterior es el marco teórico de lo que se desearía tener como sistema operativo distribuido, pero en la realidad no se ha conseguido crear uno del todo, por la complejidad que suponen: distribuir los procesos en las varias unidades de procesamiento, reintegrar sub-resultados, resolver problemas de concurrencia y paralelismo, recuperarse de fallas de algunos recursos distribuidos y consolidar la protección y seguridad entre los diferentes componentes del sistema y los usuarios. Los avances tecnológicos en las redes de área local y la creación de microprocesadores de 32 y 64 bits lograron que computadoras mas o menos baratas tuvieran el suficiente poder en forma autónoma para desafiar en cierto grado a los mainframes, y a la vez se dio la posibilidad de intercomunicarlas, sugiriendo la oportunidad de partir procesos muy pesados en cálculo en unidades más pequeñas y distribuirlas en los varios microprocesadores para luego reunir los sub-resultados, creando así una máquina virtual en la red que exceda en poder a un mainframe. El sistema integrador de los microprocesadores que hacer ver a las varias memorias, procesadores, y todos los demás recursos como una sola entidad en forma transparente se le llama sistema operativo distribuido. Las razones para crear o adoptar sistemas distribuidos se dan por dos razones principales: por necesidad (debido a que los problemas a resolver son inherentemente distribuidos) o porque se desea tener más confiabilidad y disponibilidad de recursos. En el primer caso tenemos, por ejemplo, el control de los cajeros automáticos en diferentes estados de la república. Ahí no es posible ni eficiente mantener un control centralizado, es más, no existe capacidad de cómputo y de entrada/salida para dar servicio a los millones de operaciones por minuto. En el segundo caso, supóngase que se tienen en una gran empresa varios grupos de trabajo, cada uno necesita almacenar grandes cantidades de información en disco duro con una alta confiabilidad y disponibilidad. La solución puede ser que para cada grupo de trabajo se asigne una partición de disco duro en servidores diferentes, de manera que si uno de los servidores falla, no se deje dar el servicio a todos, sino sólo a unos cuantos y, más aún, se podría tener un sistema con discos en espejo (mirror) a través de la red, de manera que si un servidor se cae, el servidor en espejo continúa trabajando y el usuario ni cuenta se da de estas fallas, es decir, obtiene acceso a recursos en forma transparente. Un sistema distribuido es solo un sistema expandido en toda la red, pero visto como un solo sistema para todos los elementos que existen en la red. Los usuarios no necesitan saber de la multiplicidad de máquinas y pueden acceder a los recursos remotos de la misma manera que lo hacen para los recursos locales. La tolerancia a fallas es más alta, pero también podemos decir que el control y las decisiones son tomados globalmente, los recursos conectados a la red son administrados de una forma global usando mecanismos distribuidos en lugar de mecanismos locales. Ventajas De Los Sistemas Distribuidos Compartir Recursos Si varias computadoras están conectadas entre sí, entonces un usuario puede utilizar en una computadora los recursos disponibles en otra. Por ejemplo, en la computadora 1 se puede utilizar una impresora láser solo disponible en la máquina 2,al mismo tiempo en la 2 es posible tener acceso a un archivo que reside en la 1.En general el compartimiento de recursos en un sistema distribuido ofrece los mecanismos para compartir archivos en instalaciones remotas, procesar información ,imprimir archivos y utilizar diferentes dispositivos remotos de hardware. Aceleración De Cálculos Sin un cálculo determinado puede dividirse en varios subcálculos para que se ejecuten concurrentemente, un sistema operativo distribuido permitirá distribuir los cálculos entre las distintas computadoras y también ejecutarlos concurrentemente. Además si una computadora está sobrecargada de trabajos, algunos de ellos pueden pasarse a otra máquina. Confiabilidad Si falla una computadora en un sistema distribuido, las restantes pueden continuar trabajando. Si el sistema se compone de computadoras de gran tamaño la falla de una no debería afectar a las demás; si son computadoras pequeñas las que forman el sistema donde cada una es responsable de alguna función, entonces un solo error puede detener el funcionamiento de todo el sistema. En general si hay suficiente hardware y software en el sistema éste puede continuar su trabajo normalmente. El sistema debe detectar la falla de una computadora y tomar las medidas necesarias. El sistema no debe utilizar los servicios de esa máquina; además otra máquina puede hacerse cargo de la función que falló. Por último decimos que cuando la máquina que falló se repara deben llevarse a cabo mecanismos para reintegrarla de nuevo al sistema. Comunicación Si varias máquinas están interconectadas por medio de una red, los usuarios tienen la posibilidad de intercambiar in formación. A través de el pasaje de mensajes la funcionalidad en una máquina independiente se puede ampliar a un sistema distribuido. Algunos de los beneficios que podemos obtener son la transferencia de archivos y el uso del correo. La ventaja de un sistema operativo distribuido es que muchas de las funciones mencionadas pueden efectuarse a grandes distancias. Dos personas en diferentes zonas geográficas pueden trabajar en un mismo proyecto. Con la transferencia de archivos se pueden transferir programas e intercambiar correspondencia para coordinar el trabajo. Otras ventajas que podemos mencionar de los sistemas distribuidos es la que tienen con respecto a los sistemas centralizados y son: 1.-) Economía: Es mucho más barato instalar un sistema distribuido(o sea varias computadoras conectadas entre si) y no un gran mainframe ya sea por el costo que este tiene o por la imposibilidad de compartir los datos entre varios usuarios. 2.-) Velocidad: Al instalar un sistema distribuido, obtenemos más velocidad que en un mainframe ya que podemos realizar las distintas tareas entre los procesadores del sistema. 3.-) Distribución Inherente: Se refiere a la posibilidad de descomponer las tareas del sistema entre varios procesadores y no recargar a uno solo con agobiantes instrucciones, en consecuencia obtenemos mayor aceleración de cálculos. 4.-) Seguridad: Significa que si una máquina falla el sistema no se cae y continúa trabajando normalmente. 5.-) Crecimiento por Incrementos: Sería algo así como la escalabilidad, es decir podemos agregar componentes al sistema como más procesadores, multimedia etc. sin necesidad de tener que cambiar todo el hardware cuando queremos hacer una actualización. Desventajas De Los Sistemas Distribuidos En todos los sistemas de computadoras existen múltiples fallas solo que en un sistema distribuido resultan más visibles, dado que existen más componentes y por lo tanto mayor interferencia e interconexiones, como así también fallas parciales (en cada máquina)estos problemas causados por interconexión se denominan problemas del sistema. Veamos algunos de estos problemas: Estos problemas de sistema, se presentan cuando se interconectan entre si diferentes componentes que por lo general trabajan independientemente. Este tipo de falla resulta más fácil de apreciar cuando utilizamos correo electrónico o sistemas de archivos. Otro problema se presenta cuando tenemos dos componentes en un sistema (cada uno por separado) y presentan características funcionales, pero al combinarlos se comportan de una manera no esperada. También podemos encontrarnos con fallas de propagación, es decir que la falla que sufra un nodo puede echar abajo toda la red. Por lo general este tipo de falla resulta de algún error de diseño. Podemos tener problemas en una red de comunicación, debido a que esta puede perder mensajes, entonces es necesario contar con un software especial para controlar los mensajes. Un detalle a tener en cuenta es que las redes sufren saturación por el gran número de mensajes que se transmiten por ella. Por último diremos que los sistemas distribuidos sufren de una gran vulnerabilidad es decir la información esta disponible para todos los usuarios y puede carecer de privacidad.