Algunos kernel tienen operaciones específicas ajustadas a la invocación remota. Amoeba, por ejemplo, tiene DoOperation/GetRequest--SendReply. Es más eficiente que el simple Send-Receive (y más fiable y legible). Amoeba y otros sistemas tienen también comunicación con grupos o radiado (parcial) (broadcast). Es importante para tolerancia de fallos, mejora de rendimiento y reconfigurabilidad. Diversas variantes: como mensajes, como múltiples RPCs, con un sólo valor devuelto, con varios valores devueltos (todos juntos o pidiendo uno a uno), etc. En la práctica, mecanismos de comunicación de alto nivel tales como RPC/RMI, radiado y notificación de sucesos (parecido a los manejadores de interrupciones), se implementan en middleware y no en el kernel. Normalmente, sobre un nivel TCP/IP, por razones de transportabilidad, (aunque resulta ``caro")
La IPC ofrece un mecanismo que permite a los procesos comunicarse y sincronizar sus acciones. La mejor forma de proveer la comunicación entre procesos es mediante un sistema de mensajes. La función de un sistema de mensaje es permitir a los procesos comunicarse entre sí sin tener que recurrir a variables compartidas. Un recurso IPC ofrece por los menos 2 operaciones: - enviar (mensaje) (send) y recibir (mensaje) (receive). Sea P y Q dos procesos que requieren comunicarse deberán enviarse mensajes; para ello debe existir un enlace de comunicación entre ellos. Este enlace puede implementarse de diversas maneras. Los métodos para implementar lógicamente un enlace y las operaciones de enviar / recibir son:
Comunicación directa o indirecta
Uso de buffer automático o explícito
Envío por copia o envío por referencia
Mensajes de tamaño fijo o variables
No hay comentarios:
Publicar un comentario