Por lo general cuando nos hablan de Sistemas Operativos, si bien podemos poseer una definición un tanto técnica, o simplemente se nos viene a la mente nombres de Sistemas Operativos que son de uso común y comercial, los cuales son enfocados para su uso en un solo equipo.
Cuando hacemos referencia a Sistemas Operativos Distribuidos, se tratan de sistemas operativos que cumplen con las mismas funciones que un sistema ordinario (interfaz entre usuario-hardware para su uso eficiente de recursos) pero con la distinción de que este trabaja en un entorno distribuido donde se agrupan de forma abstracta los recursos físicos y lógicos.
Este tipo de sistemas gestiona los recursos de todos los equipos que lo conforman, estos equipos se encuentra conectados a traves de un sistema de comunicación (una red) con lo que se puede acceder a los distintos recursos que se disponen, con lo que conlleva a que el uso de estos recursos se debe de dar de una manera transparente para el usuario, y así ocultando al usuario que los recursos son locales o de algún otro equipo que conforma el sistema.
En estos sistemas tenemos la ventaja de poseer múltiples procesadores, ideal para la realización de tareas que necesiten gran capacidad computacional, tratando de dividir las tareas a realizar entre todos ellos, Pero con esto aparecen problemas que con sistemas operativos convencionales no se poseen entre los cuales el que mas resalta es el de la sincronización.
Para finalizar con esta pequeña introducción en el tema, es muy importante mencionar las características que deben poseer estos sistemas para ser considerados como distribuidos:
- Transparencia: Se refiere al uso de los recursos como un todo, encapsulando dichos recursos para un acceso unificado para usuarios y aplicaciones.
- Eficiencia: Al poseer la disponibilidad de múltiples procesadores, estos sistemas deben de dividir de forma correcta la realización de las tareas dentro del sistema para la ejecución de estas de una forma mas rápida.
- Flexibilidad: Como todo sistema operativo debe ser capas de soportar actualizaciones, para si ir mejorando su funcionamiento, así como reparar posibles fallas existentes (depende del kernel que posea).
- Escalabilidad: Se enfoca en la capacidad que ir agregando nuevos equipos al sistema, este no debería ser una característica que de problemas, pero en ciertas ocasiones se puede dar problemas en el manejos con cantidades distintas de equipos que posee el sistema.