Duarte

Páginas: 13 (3180 palabras) Publicado: 19 de septiembre de 2012
Llamadas a Procedimientos Remotos (RPC)

INTRODUCCIÓN INTRODUCCIÓN
Sistema de Procesamiento Distribuido: Conjunto de computadoras conectadas en red que le dan la sensación al usuario de ser una sola computadora Ventajas: • Compartición De Recursos • Concurrencia • Alta escalabilidad • Tolerancia a fallos Desventajas: • Mayor complejidad • Aspectos de seguridad

Modo de Operación
Creaciónservidor ⇒ añadir stub de cliente y stub servidor Clientes usan stub para llamar a los servicios ofrecidos por servidor No envían mensajes a través de las primitivas de comunicación. Realizan llamada a procedimiento stub con parámetros adecuados. Stub empaqueta parámetros, envía send al núcleo y llama a receive. Núcleo envía mensaje a núcleo remoto. Máquina servidor→ Stub servidor llama a receive yespera mensaje Mensaje llega a núcleo remoto ⇒ lo deja en el buzón del stub que desempaqueta parámetros y realiza llamada al servidor. Stub servidor recibe resultados ⇒ los empaqueta para formato send y llama a send para enviárselos al cliente. Nuevo ciclo con receive a la espera de una nueva petición. Mensaje resultados llega al núcleo cliente → buzón correspondiente Cliente llamó a receive ⇒recoge los resultados del buffer. Stub desempaqueta los parámetros y devuelve el resultado.

Llamadas a Procedimientos Remotos
Creado por Bireel & Nelson en 1984. Permiten a los programas llamar procedimientos localizados en otras máquinas. Un proceso X en una máquina A, puede llamar un procedimiento localizado en una máquina B. Información puede llevarse del proceso invocador al invocado dentrode los parámetros. Ningún mensaje u operación de E/S es visible para el programador. Problemas a resolver: Procedimiento invocador e invocado se ejecutan en diferentes máquinas, i.e. diferentes direcciones y posiblemente diferentes arquitecturas. Ambas máquinas pueden fallar.

MODELO RPC MODELO RPC
Proceso del Cliente Proceso del Servidor

Cliente

Servidor

procedimiento local = (1)(10)

(6)

(5)

Stub del Cliente

Stub del Servidor

Llamada del Sistema = (2)

(9)

(7)

(4)

(8)

Funciones de Red
Comunicación de red = (3) Kernel Local

Funciones de Red
Kernel Remoto

El concepto RPC permite ocultar los detalles del código relacionados con la comunicación a través de la red, facilitando el desarrollo de aplicaciones cliente/servidor

Llamadas aProcedimientos Remotos (RPC)
Proceso Cliente
Main(){ some code; ... call rpc(a,b,c); ... más código; }

Proceso Servidor
receive(x,y,invocador)
Procedure rpc(x,y,z){ código que usa x,y; ... return(z=result); }

send((x=a, y=b), rpc) receive(c=z, rpc)

send(z,invocador)

Modo de Operación
Máquina Cliente
stub del cliente
call cliente return Pack parámetros Unpack resultado

MáquinaServidor
stub del servidor
Unpack parámetros Pack resultado call servidor return

kernel

kernel

Mensaje transportado en la red

Transferencia de Parámetros en RPC
stubs Máquina Cliente Máquina Servidor

Ordenamiento de Parámetros

mensaje : sum : 4 n=sum(4,7); : 7 :

mensaje sum(i,j)
sum

4
7

int i,j; { return(i+j); }

kernel

kernel

Modelo Cliente-Servidor,mensajes.
cliente (leer FA45 de arch1) servidor

cliente

(ack)

servidor

cliente

(34759037F3247A)

servidor

cliente

(ack)

servidor

Ejecución de una Llamada Local
main() { : count = read(fd, bytes, buf) : } main() { : count = read(fd, bytes, buf) : } main() { : count = read(fd, bytes, buf) : }

Variables locales al main

SP

Variables locales al main bytes buf fddirección regreso

Variables locales al main

SP

SP

a) Stack antes llamada read

b) Stack durante ejecución read

c) Stack después llamada read

Tipos de Paso de Parámetros
Por valor
en el stack se copia el valor del parámetro valor de salida es igual al valor de entrada

Por referencia
en el stack se almacena la dirección de la variable es posible modificar el valor del...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Duarte
  • Duarte
  • duarte
  • Duarte
  • duarte
  • duarte
  • Duarte
  • Duarte

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS