next up previous contents
Next: Vino Up: Sistemas que descargan código Previous: Sistemas que descargan código

Spin

Spin [17] permite a las aplicaciones adaptar el funcionamiento del sistema mediante el uso de spindles, fragmentos de código escritos en un lenguaje con tipado estricto de datos. La idea de partida radica en que para cada política empleada dentro del tex2html_wrap_inline8127kernel es posible establecer un spindle como implementador de la misma. Permitiendo a las aplicaciones el establecimiento de spindles dentro del tex2html_wrap_inline8127kernel es factible entonces que éstas puedan emplear sus propias políticas.

El problema de este enfoque radica en que las partes del sistema que es posible adaptar están prefijadas de antemano. Sólo es posible adaptar el funcionamiento de aquellos elementos del sistema que el arquitecto del mismo ha dispuesto como spindles. Los sistemas que adoptan un esquema de especialización dinámica de código (ver apartado 4.4.3) presentan problemas similares.

Cuando una aplicación ejecuta una llamada al sistema se instalan sus spindles de tal modo que, por ejemplo, un fallo de página, una operación bloqueante de E/S, etc. den lugar a la ejecución del spindle injertado por la aplicación en el tex2html_wrap_inline8127kernel. En realidad, se emplea un esquema de despacho dinámicogif para escoger la implementación deseada. Éste trabaja conjuntamente con técnicas de co-ubicación (carga dinámica de código en el tex2html_wrap_inline8127kernel) para permitir la inserción de spindles en tiempo de ejecución. El despacho dinámico introduce algo de sobrecarga en la ejecución de todas y cada una de las llamadas al sistema, aunque esta sobrecarga es mínima.

La descarga de código de aplicación dentro del tex2html_wrap_inline8127kernel introduce además problemas de seguridad en el sistema. El tex2html_wrap_inline8127kernel no puede confiar en el código de aplicación, por lo que se requiere de técnicas orientadas a garantizar la seguridad del código que las aplicaciones introducen en el tex2html_wrap_inline8127kernel. Así se fuerza el uso de un compilador (en el que el sistema ha de confiar, con los consiguientes problemas de seguridad que ello supone) con tipado estricto de datos y modularidad; Spin usa Modula 3 [57]). Se introduce así mismo el uso de dominios de protección lógicos consistentes en espacios de nombres empleados por el tex2html_wrap_inline8127kernel de tal modo que las extensiones efectuadas por las aplicaciones tengan acotado el conjunto de recursos del tex2html_wrap_inline8127kernel que pueden referenciar.

El sistema Spin es un sistema centralizado, por lo que no trata de abordar la combinación de adaptabilidad y distribución del sistema. En principio sería factible emplear la técnica de descarga de código dentro del tex2html_wrap_inline8127kernel, como hace Spin, para adaptar el funcionamiento de un sistema distribuido (aunque incurriríamos de nuevo en el problema mencionado anteriormente).


next up previous contents
Next: Vino Up: Sistemas que descargan código Previous: Sistemas que descargan código

Francisco J. Ballesteros
Fri Dec 19 17:18:03 MET 1997