next up previous contents
Next: Revocación de recursos Up: Consideraciones generales Previous: Protección

Asignación de recursos

 

La asignación de recursos (y también la revocación, como veremos en el apartado 2.1.5) se realiza de forma distribuida en un DAMN. Aunque tal vez puede pensarse que esto es una desventaja con respecto a la asignación de forma centralizada veremos que no es así.

La asignación óptima de recursos, o la aproximación a una solución óptima parece ser más fácil en sistemas de gestión de recursos centralizados, al disponerse de toda la información pertinente. No obstante, en un sistema distribuido no es conveniente centralizar dicha gestión puesto que estaríamos complicando el sistema y creando un punto único de fallo, además de empeorar el rendimiento dado que todos los nodos requerirían los servicios del único gestor.

Lo que es más, en general no es cierto que la implementación de una solución óptima (o una aproximación a la misma) requiera de un gestor centralizado. En la práctica basta con disponer de la información adecuada para tomar buenas decisiones. El problema queda reducido al suministro de información a aquellas partes que participan en la asignación de recursos.

Consideremos ahora el hecho de que estamos implementando un sistema distribuido. Como K. Li y P. Hudak afirman [108], es difícil encontrar un modo de distribuir la responsabilidad de la gestión (y localización) de recursos de un modo que convenga a todas las aplicaciones. La distribución de la gestión de recursos de forma dinámica en Off permite que distintos tipos de aplicación la implementen a su conveniencia. La ayuda ofrecida por el sistema a la gestión de recursos (la exportación a las aplicaciones del estado de los mismos y participación de las mismas en la revocación de éstos) y, al mismo tiempo, la libertad ofrecida a las aplicaciones en la elección de algoritmos empleados a tal efecto permiten el uso de modelos de asignación de recursos a medida de las aplicaciones.

Por lo que sabemos, sólo existe otro sistema --aunque este es centralizado-- en el que son las aplicaciones las que gestionan sus propios recursos, Aegis [60]. Salvo en lo referente a la distribución física del sistema, lo que aquí decimos es también aplicable a dicho sistema, del mismo modo que (si obviamos la distribución) lo aprendido en el desarrollo de Aegis es aplicable a un DAMN.

Para que dicha gestión se pueda realizar de forma distribuida (entre las aplicaciones y el DAMN) es necesario que el sistema exponga la información necesaria para implementarla. Dicha información, al contrario que en Aegis [60], no está limitada a un nodo. Si una aplicación utiliza recursos procedentes de varios nodos de la red, la información relevante sobre todos ellos estará disponible con independencia de la ubicación concreta que tenga. La información expuesta por el sistema --como ocurre también en Aegis-- incluye el estado de los recursos que posee la aplicación y la lista de recursos libres.

Consiguientemente las aplicaciones pueden emplear los algoritmos que deseen para escoger los recursos que prefieran. Las interfaz de asignación de recursos de un DAMN debe pues ser capaz de expresar el deseo de utilizar o no una unidad concreta de un recurso determinado (por ejemplo, un manejador de disco de un Intel puede expresar su deseo de utilizar marcos de página locales de los primeros 16M capaces de soportar DMA).

Veremos ejemplos concretos de asignación de recursos en los próximos capítulos, cuando detallemos la realización y el funcionamiento de las abstracciones del sistema.

Si los recursos fuesen infinitos, con lo ya dicho en este apartado bastaría. Dado que los recursos son finitos, es preciso revocar recursos eventualmente.


next up previous contents
Next: Revocación de recursos Up: Consideraciones generales Previous: Protección

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