Resumen

La utilización de plataformas de propósito general en el ámbito empresarial, donde desempeñan cada día un mayor número de funciones —la gestión de existencias o la facturación, por ejemplo—, ha causado una dependencia cada vez mayor de este tipo de sistemas. Debido a ello, las averías de estos sistemas informáticos suelen traducirse inmediatamente en pérdidas económicas, justificándose así la utilización de técnicas de tolerancia a fallos, puesto que los recursos necesarios (aumento de componentes, reducción de prestaciones) para la implantación de estas técnicas se ven compensados económicamente al aumentar la garantía de funcionamiento del sistema. Sin embargo, todavía no está muy extendido el uso de técnicas de tolerancia a fallos en las plataformas de propósito general. Por una parte, porque las personas encargadas de desarrollar aplicaciones no disponen, por regla general, de la formación o el tiempo necesario para incluirlas ellas mismas. Por otra, porque el coste asociado a la inclusión de técnicas de tolerancia a fallos supone un aumento del coste y/o una disminución de las prestaciones que le resta competitividad al sistema.

En este trabajo de investigación se aborda el problema de diseñar una plataforma de propósito general tolerante a fallos. Frente a propuestas que han buscado la transparencia como característica básica de este tipo de plataformas, en este trabajo se defiende que el diseñador de aplicaciones tolerantes a fallos debe poder elegir la técnica de tolerancia a fallos que mejor se adapte a las necesidades de su aplicación. Para permitirlo, se le ofrece un conjunto completo de herramientas versátiles, eficientes y sencillas de utilizar, que debe estar distribuido entre los niveles del núcleo del sistema operativo y el de las utilidades. En el trabajo se selecciona la arquitectura más adecuada para construir plataformas con estas características, se analizan las necesidades que presentan las aplicaciones tolerantes a fallos a nivel del sistema operativo y se especifican los servicios que deben ser ofrecidos por el micro-núcleo, proponiéndose un nuevo tipo de servicios, las operaciones incrementales, que permiten almacenar, actualizar y recuperar de forma selectiva y eficiente el estado de los procesos.

Para evaluar la interfaz propuesta, se especifica cómo implementar un subconjunto representativo de las técnicas de tolerancia a fallos actuales, comprobando que los servicios propuestos cumplen los requisitos necesarios para facilitar el desarrollo de aplicaciones tolerantes a fallos. Además, se describe la implementación de las operaciones incrementales, y la construcción de un sistema de ficheros transaccional tolerante a fallos que se basa en estas operaciones y que utiliza una novedosa estructura de procesos para implementar el servicio transaccional.