Los Sistemas Operativos Distribuidos desempeñan estas mismas funciones [157, 159] en entornos distribuidos. Su trabajo consiste en facilitar el acceso y la gestión de los recursos distribuidos en la red utilizada a los usuarios del mismo. Para ello es preciso que las abstracciones suministradas por el sistema mantengan la transparencia [143]: el sistema debe ofrecer la ilusión de que se utiliza un entorno determinado y no un conjunto de recursos dispersos, inconexos y heterogéneos.
Los Sistemas Operativos Distribuidos existentes en la actualidad también pretenden suministrar abstracciones adecuadas y alejadas del nivel de abstracción del hardware para todas las aplicaciones. El problema es que, por un lado, no hay abstracciones que sean eficientes y apropiadas para todas las aplicaciones [60]; por otro lado, si adoptamos como solución la eliminación de las abstracciones del SO, el hardware no ofrece niveles de transparencia adecuados para la distribución del sistema [79, 80]:
En resumen, parece imposible que se puedan suministrar abstracciones adecuadas a todas las aplicaciones manteniendo una buena y eficiente distribución del sistema. La construcción de SSOO distribuidos sigue sin resolverse satisfactoriamente: siempre hay gran cantidad de aplicaciones para las que las abstracciones suministradas son inadecuadas y a menudo es imposible incorporar nuevos enfoques en la distribución del sistema [5, 17, 60, 86].
Queremos proponer en esta tesis un enfoque radicalmente nuevo para la construcción de Sistemas Operativos Distribuidos que permite utilizar abstracciones adecuadas para cualquier aplicación y distribuir el sistema de un modo más conveniente.
En este sentido, la aportación fundamental de esta tesis será el suministro de abstracciones que modelen el hardware disponible en la red manteniendo la transparencia desde el principio y multiplexando dicho hardware de forma segura entre las aplicaciones existentes. El empleo de abstracciones sólo donde la distribución del hardware lo requiere y no para suministrar bloques de construcción a emplear en las aplicaciones permite que, al mismo tiempo, cada aplicación pueda emplear sus propias abstracciones y aprovecharse de la distribución de recursos ofrecida por el SO.
En lo que sigue utilizaremos definiciones de ``Sistema Operativo'', ``Aplicación'', ``Usuario'' y ``Adaptabilidad'' con los siguientes matices:
reemplazables, librerías
opcionales, y usuarios sentados ante un terminal están incluidos en
esta categoría.