next up previous contents
Next: Trasferencias protegidas de control Up: Otros enfoques en gestión Previous: Procesos y tareas

Estado y flujo de control

 

Siempre pensamos en un thread como una entidad que posee los siguientes elementos:

  figure3926
Figure 3.8: Threads: estado y flujo de control.

Sistemas como Spring han separado el concepto de estado del thread del de flujo de control (ver figura 3.9):

Nosotros hemos empleado la terminología de Spring por considerarla más clara, aunque otros sistemas que emplean nombres distintos para estas abstracciones (notablemente, una implementación de threads móviles para Mach [73] denomina thread al equivalente a un Shuttle en Spring y activación al equivalente a un thread en Spring).

En Off, los shuttles se conciben como contextos de procesador extensibles. Un shuttle en Off no es otra cosa que el estado necesario para ejecutar un thread. A diferencia de lo que sucede en Spring, los shuttles de Off pueden extenderse dinámicamente para incluir nuevos elementos en el ``estado de ejecución'' (hablaremos de esto en el apartado 3.3.2). El kernel se limita pues a crear, destruir y planificar shuttles. Como vemos en la figura 3.9, el procesador se multiplexa entre un conjunto de Shuttles que se emplean como abstracción básica para ejecutar threads.

  figure3947
Figure 3.9: Flujos de control (threads) y estados (shuttles)

La distinción entre shuttles y threads permite que el sistema opere con contextos de procesador (Shuttles) a nivel de planificación y gestión de procesos y, por otro lado, los usuarios perciban una abstracción distinta correspondiente a un flujo de control (thread).

Lamentablemente, a pesar de la introducción de shuttles en Spring, los threads de Spring están dentro del núcleo y son de hecho la única abstracción exportada a los usuarios (los shuttles son una abstracción interna del núcleo que no es manipulable directamente por los usuarios del sistema). Los shuttles de Off, al contrario, dejan abierta la posibilidad de emplear otras abstracciones a nivel de usuario. El tex2html_wrap_inline8127kernel no los oculta en absoluto.

Como consecuencia de la ocultación, la planificación de los procesadores y otros aspectos relacionados con la implementación de los Shuttles en Spring están completamente determinados por el tex2html_wrap_inline8127kernel. En cambio Off deja estas tareas en la medida de lo posible en manos de las aplicaciones.


next up previous contents
Next: Trasferencias protegidas de control Up: Otros enfoques en gestión Previous: Procesos y tareas

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