next up previous contents
Next: Portales: interrupciones distribuidas Up: La Solución Previous: La Solución

Shuttles: contextos hardware extensibles

  En primer lugar es preciso suministrar algún mecanismo de tal modo que puedan crearse flujos de control e identificar los recursos necesarios para la ejecución de dichos flujos. Procesos, tareas, threads y otras abstracciones similares podrían implementarse sobre este mecanismo. Básicamente se trata de multiplexar los procesadores de un modo seguro.

Los servicios de gestión de procesos son sencillos en Off: no hay procesos. La única abstracción suministrada a tal efecto es el Shuttle. Un Shuttle es un contexto hardware extensible. Inicialmente consiste tan sólo en un contador de programa y un puntero de pila, aunque puede extenderse posteriormente para incluir otros fragmentos de contexto, tales como: registros de propósito general, espacios de direcciones, niveles de privilegio de entrada/salida, etc.

En otros sistemas el subsistema de gestión de procesos es rígido y debe reimplementarse para aceptar modificaciones [164, 73]. En Off basta con extender el Shuttle con un nuevo fragmento de contexto. A estos fragmentos los llamamos propiedades. No todos los shuttles han de tener las mismas propiedades, de este modo tenemos la posibilidad de utilizar diferentes abstracciones de ``proceso'' en el mismo sistema al mismo tiempo.

El tiempo de procesador se divide en quanta que se asignan a Shuttles bajo demanda [60] con lo que es posible implementar diversos algoritmos de planificación [173] en área de usuario. Además, los Shuttles, como el resto de las abstracciones suministradas por Off no están atados a un procesador o nodo determinado. Al considerar el sistema toda la red y no nodos aislados, cualquier procesador disponible será capaz de ejecutar un Shuttle, incluso si éste ejecutaba anteriormente en un nodo distinto. Esto es, los Shuttles pueden migrar.



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