5.1.1 El prototipo de DAMN
El prototipo de DAMN,Off, se implement´o para arquitecturas basadas en Intel x86. Est´a formado por unas 9.000 l´ıneas de c´odigo fuente escrito en lenguaje C, incluyendo comentarios. Aunque es un prototipo algo inestable1 y a pesar de que no toda la funcionalidad prevista inicialmente est´a incorporada (como evidencian las notas “no realizado por la implementaci´on actual” que aparecen en los cap´ıtulos anteriores), est´a disponible p´ublicamente bajo licencia GPL en [10]. Todo el c´odigo fuente, herramientas empleadas (incluyendo el OSKit [70]) y publicaciones relacionadas pueden encontrase ah´ı.
Las medidas de rendimiento de esta versi´on de desarrollo, que no se implement´o con laeficiencia
como objetivo principal e incluye m´ultiples asertos y comprobaciones de depuraci´on, muestran que una transferencia protegida de control (PCT), consistente en una invocaci´on de un portal que atraviesa un dominio de protecci´on, precisa de 2.100 ciclos de procesador (tal y como muestra el contador de ciclos hardware del procesador). Considerando un procesador a 100 MHz, una PCT supone 21µs, un orden de magnitud m´as r´apido que Mach, en el mismo orden de magnitud que el sistema Spring de Sun y un orden de magnitud m´as lento que L4 [111].
1Algunas aplicaciones de prueba hacen que el sistema deje de funcionar tras dos semanas de uso continuado.
El tiempo de una PCT es el factor cr´ıtico que determina el rendimiento del sistema en su conjunto, dado que los servicios del sistema se hacen accesibles mediante PCTs.
Mediciones m´as significativas que consideren aplicaciones t´ıpicas (editores, compiladores, etc.) ejecutando sobre un DAMN deber´an aguardar a la disponibilidad de una versi´on optimizada y estable deOff2.
Con respecto al empleo de memoria,Off consume unos 50K incluyendo el soporte paraDTLBs (el DMM) en el n´ucleo. La mayor parte de esta cantidad se emplea en el almacenamiento de las estructuras de datos que representan el estado de los marcos de memoria f´ısica y es proporcional a la cantidad de memoria f´ısica instalada en el sistema.
Por lo que hemos podido comprobar, la arquitectura implementada realiza trabajo extra (com- par´andola con una arquitectura similar para unµkernel centralizado) cuando los recursos son remo- tos. Parece pues que un DAMN debiese ser capaz de alcanzar niveles de rendimiento comparables a los de losµkernels m´as eficientes que se conocen, como L4 [111]. Cuando los recursos son locales, la sobrecarga en tiempo de ejecuci´on de un DAMN con respecto a un sistema centralizado de similar nivel de abstracci´on se debe principalmente a operaciones de “indirecci´on y comparaci´on”, a˜nadidas en cada referencia a recursos del sistema cuyo objeto es comprobar la disponibilidad de recursos en el nodo local. Dicha sobrecarga es despreciable respecto al tiempo que se emplea en la implementaci´on de una llamada al sistema t´ıpica.
Creemos entonces que resulta factible incorporar el modelo deOff a µkernels que emplean la extensibilidad como medio para alcanzar la adaptabilidad del mismo. Para hacerlo podr´ıa pagarse una “indirecci´on y comparaci´on” cada vez que se referencia un recurso del sistema. El beneficio de esta peque˜na sobrecarga ser´ıa la posibilidad de operar transparentemente con recursos f´ısicos remotos siguiendo los dictados de las aplicaciones.
Lecciones aprendidas
Como resultado de la realizaci´on del prototipo hemos podido aprender que:
El modelo de DAMN resulta f´acilmente implementable dando lugar aµkernels extremadamen- te simples.
El lenguaje de programaci´onCno es un buen lenguaje para implementar SSOO. Gran parte del tiempo de desarrollo se emple´o en eliminar errores que podr´ıa haber detectado el compilador. El uso de orientaci´on a objetos habr´ıa simplificado enormemente la realizaci´on del n´ucleo (ver apartado 5.3.1).
No merece la pena multiplexar un portal entretodoslos puntos de entrada de cada uno de los servidores del sistema. Los portales son suficientemente baratos como para emplear uno por cada punto de entrada.
La suposici´on que realizamos de que los recursos f´ısicos se conocen en tiempo de arranque es falsa. ´Ultimamente han aparecido m´odulos de memoria que es posible insertar en caliente en algunas arquitecturas.
El modelo de Shuttles de Off podr´ıa incorporarse a sistemas tradicionales para suministrar interfaces comparables a VFS entre el sistema de gesti´on de procesos y el resto del sistema. El empleo de Propiedades (de Shuttles) resulta muy conveniente para desarrollar un sistema de gesti´on de procesos, ya que permite depurarlo con independencia del resto de subsistemas.
5.1.2 El modelo de SO basado en DAMN
Hemos visto que un µkernel distribuido adaptable que exporte el hardware presente en la red es factible y puede ofrecer altos niveles de adaptabilidad y, al mismo tiempo, facilidades de cara a la distribuci´on del sistema. De este modo cada aspecto se beneficia del otro. Para cerciorarnos, hemos implementado un prototipo para realizar unaprueba de concepto y tambi´en hemos publicado las ideas y resultados que se presentan en la presente tesis [15, 14, 13, 11, 12, 67, 30].
Con el sistema propuesto, las aplicaciones de los usuarios (incluyendo en ´estas a servicios de SSOO distribuidos) pueden implementar abstracciones (distribuidas) a medida en lugar de reinventar las que ya existen en el sistema. El sistema presenta beneficios mencionados en otras publicaciones [13] que facilitan la realizaci´on de equilibrado de carga, replicaci´on y migraci´on en sistemas de objetos distribuidos.
Aunque la comparaci´on entre una implementaci´on completa de un SO basado en DAMN y un SO tradicional deber´a aguardar a que completemos la reimplementaci´on de Off, Off++ (ver apartado 5.3), todo parece indicar que el modelo podr´ıa emplearse en condiciones competitivas con respecto a los sistemas existentes en la actualidad.
Lecciones aprendidas
En relaci´on al modelo de SO basado en DAMN hemos aprendido que:
No basta con un DAMN para obtener un SO distribuido adaptable. Es necesario que los ser- vicios implementados sobre el DAMN est´en dise˜nados con el mismo esp´ıritu. Una imple- mentaci´on de SO basada en un ´unico emulador eliminar´ıa por completo la adaptabilidad del sistema.
La caracter´ıstica crucial de un DAMN es la habilidad dereferenciar recursos remotos. ´Esto puede incorporarse a sistemas existentes.
Es importante que los SSOO expongan a los usuarios los interfaces que ellos emplean interna- mente.