next up previous contents
Next: Doors Up: Otros enfoques en IPC Previous: Señales

Mensajes y Puertos

Casi la totalidad de los tex2html_wrap_inline8127kernels existentes utilizan algún tipo de buzón de mensajes o puerto como abstracción principal para IPC.

Los puertos son sencillamente buzones a los que las aplicaciones pueden enviar mensajes [55, 74]. Naturalmente también es posible recibir mensajes de estos buzones.

En sistemas como Mach [55, 2] y otros muchos, los puertos tienen capacidad de almacenamiento y retienen los mensajes enviados que no han podido entregarse. Cuando el almacenamiento se agota se aplica algún mecanismo de control de flujo. Aquellas aplicaciones que no necesitan almacenamiento de mensajes deben soportar la sobrecarga añadida por esta facilidad, puesto que no es opcional. Las aplicaciones que desean almacenamiento de mensajes deben adoptar la implementación suministrada por el tex2html_wrap_inline8127kernel, dado que ésta está contenida y cableada dentro del núcleo.

Hay otro inconveniente que presentan los puertos empleados comúnmente. Éstos están fijos en un determinado nodo del sistema y no es posible reubicarlos. La distribución de puertos suministrada en modernos tex2html_wrap_inline8127kernels suele consistir tan sólo en la posibilidad de invocar transparentemente a puertos remotos. Como consecuencia, es típicamente imposible ``mover'' una aplicación y los puertos por ella servidos de un nodo a otro, con lo que es necesario emplear mecanismos adicionales (que introducen otro nivel de sobrecarga en el sistema de IPC) para ``reconectar'' los posibles clientes a la aplicación siempre que ésta sufre un cambio de ubicación.

Lo que es más, en algunos casos los puertos no sólo están anclados a un nodo sino también a una aplicación concreta y no es posible que una aplicación ceda algunos puertos a otra para delegar parte de su carga de trabajo. Afortunadamente existen sistemas flexibles como Kea [169] y otros permiten la cesión o delegación de puertos--aunque, típicamente, no toleran la ``reubicación'' de los mismos.

Por último, es habitual que los tex2html_wrap_inline8127kernels que incorporan puertos (salvo honrosas excepciones como L4 [110, 109] y otros) sólo soporten un modelo de objetos activo. Consiste éste en múltiples aplicaciones (u objetos) que poseen uno o más flujos de control (están activos) y se comunican entre sí mediante envío de mensajes. Esto introduce problemas de latencia y jitters en las implementaciones de modelos cliente/servidor. La causa es la variabilidad que introduce la ejecución del planificador entre las ejecuciones del cliente y del servidor.

Como sostienen algunos autores [72], los tex2html_wrap_inline8127kernels deberían soportar modelos de objetos pasivos. En el modelo de objetos pasivos los clientes ceden su flujo de control al servidor durante la ejecución de éste. No es necesario replanificar en cada interacción cliente/servidor y la latencia es menor y más regular.

Los portales de Off tratan de superar los problemas arriba mencionados, como veremos a lo largo de este apartado.


next up previous contents
Next: Doors Up: Otros enfoques en IPC Previous: Señales

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