Otro
paso en el diseño de un sistema operativo distribuido plantea las llamadas a
procedimientos remotos o RPCs. Los RPC amplían la llamada local a
procedimientos, y los generalizan a una llamada a un procedimiento localizado
en cualquier lugar de todo el sistema distribuido. En un sistema distribuido no
se debería distinguir entre llamadas locales y RPCs, lo que favorece en gran
medida la transparencia del sistema.
Una
de las dificultades más evidentes a las que se enfrenta el RPC es el formato de
los parámetros de los procedimientos. Un ejemplo es la posibilidad de que en un
sistema distribuido formado por diferentes tipos de ordenadores, un ordenador
con formato little endian llamara a un procedimiento de otro ordenador con
formato big endian, etc. Este problema se podría solucionar si tenemos en
cuenta que ambos programas conocen el tipo de datos de los parámetros, o
estableciendo un estándar en el formato de los parámetros, de forma que sea
usado de forma única.
Por
último queda por solucionar la tolerancia a fallos. Una llamada a un procedimiento
remoto puede fallar por motivos que antes no existían, como la pérdida de
mensajes o el fallo del cliente o del servidor durante la ejecución del
procedimiento.
La
limitación del RPC más clara en los sistemas distribuidos es que no permite
enviar una solicitud y recibir respuesta de varias fuentes a la vez, sino que
la comunicación se realiza únicamente entre dos procesos. Por motivos de
tolerancia a fallos, bloqueos, u otros, sería interesante poder tratar la
comunicación en grupo.
No hay comentarios:
Publicar un comentario