next up previous contents
Next: Migración y persistencia Up: kernels Distribuidos Adaptables Previous: Las abstracciones del sistema

Manejo de dispositivos

 

Off no multiplexa directamente los dispositivos secundarios. Tan sólo se ocupa de multiplexar puertos de E/S, de tan modo que cada puerto sólo puede pertenecer a una aplicación. Esta aplicación puede otorgar acceso al puerto a otras mediante el uso de guardabilities tal y como se indicó en el apartado 2.1.3 al discutir la protección incorporada por el sistema.

Aunque hay algunos intentos en multiplexación de dispositivos periféricos evitando la implementación de abstracciones en la medida de lo posible, el presente trabajo no trata de aportar soluciones nuevas en este sentido: la multiplexación de puertos e interrupciones realizada por Off permite implementar diversas soluciones ya conocidas para la multiplexación de dispositivos periféricos en área de usuario [49, 167, 62].

Un esquema simple (ver figura 2.6) que permite multiplexar dispositivos secundarios consiste en arrancar un ``multiplexor'' del dispositivo considerado (un disco o una impresora, por ejemplo) que retenga los derechos sobre los puertos de E/S y las interrupciones elevadas por el controlador. Dicho multiplexor puede multiplexar de forma segura el hardware disponible en el periférico (asignando atómicamente bloques o grupos de bloques y páginas o grupos de páginas en los ejemplos anteriores).

  figure3510
Figure 2.6: Multiplexores de dispositivos

Existirán casos en que un multiplexor deba operar durante toda la vida del sistema (como un multiplexor de red en el caso de una estación sin disco) y casos en que sea factible utilizar distintos multiplexores en distintos períodos de tiempo (como en el caso de una línea serie o una impresora). En los primeros, el multiplexor puede retener los derechos de acceso sobre los puertos e interrupciones del dispositivo y en los segundos el multiplexor puede bien compartir dichos puertos e interrupciones con otros multiplexores ``cooperativos'', bien liberar los puertos e interrupciones en el momento en que se desee que otro multiplexor entre en funcionamiento.

Podemos pensar en varios esquemas de compartición de controladores entre varios multiplexores tal y como puede verse en la figura 2.7, de izquierda a derecha:

  figure3518
Figure 2.7: Multiplexores que compiten por un dispositivo.

a.
Un multiplexor puede otorgar derechos sobre parte de los puertos del controlador a otros multiplexores y sincronizarse con ellos para realizar operaciones (por ejemplo, un multiplexor de un controlador multipuerto que da derechos a otro multiplexor para utilizar alguno de los puertos).

b.
Un multiplexor puede a su vez repartir el controlador de forma segura entre varios multiplexores (por ejemplo, un controlador de disco repartido en ``discos'' a su vez repartidos en ``bloques'' o un multiplexor de bloques que cede los derechos de algunos bloques a otro multiplexor de bloques).

c.
Por último un multiplexor puede retener a otros que intentan multiplexar el mismo dispositivo hasta que él considere oportuno (tal vez, nunca) y en dicho momento cederle los derechos de acceso a los puertos y a la línea de interrupción.


next up previous contents
Next: Migración y persistencia Up: kernels Distribuidos Adaptables Previous: Las abstracciones del sistema

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