Duarte
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...
Regístrate para leer el documento completo.