Expresiones Regulares
Diseño de Sistemas Operativos Sistemas Distribuidos
Juan Pavón Mestras Dep. Sistemas Informáticos y Programación Universidad Complutense Madrid http:// grasia.fdi.ucm.es/jpavon/dso
RPC
Llamada a procedimiento remoto (Remote Procedure Call)
n
Birrell y Nelson (1984)
n
Intentar que los programas puedan llamar a procedimientos localizados enotras máquinas
• De manera similar a como se hace una llamada a procedimiento local • Proporciona transparencia de distribución
n
Cuando un proceso en una máquina A llama a un procedimiento en la máquina B:
• El proceso que realiza la llamada desde A se suspende • La ejecución del procedimiento se realiza en B • La información se puede pasar de un proceso a otro como parámetros, y regresarcomo resultado del procedimiento • El programador no se preocupa de la transferencia de mensajes
© JPM, UCM 2001-02
RPC
2
1
RPC
n
Problemas que resuelve:
n
n n
Ambos procesos están en espacios de direcciones distintos Transferencia de parámetros y resultados Heterogeneidad
• Qué pasa si las dos máquinas tienen arquitecturas distintas
n
Fiabilidad
• Qué pasa si hayfallos en alguna de las máquinas • Qué pasa si hay fallos en el canal de comunicaciones
n n
Localización y selección de servicios Seguridad
© JPM, UCM 2001-02
RPC
3
RPC
Operación básica llamada
Cliente
Proxy Servidor (stub)
regreso
KERNEL
Proxy Cliente (stub)
llamada
Servidor
regreso
KERNEL
RED DE COMUNICACIONES
© JPM, UCM 2001-02 RPC 4
2
RPC
nn
Automatización Ayuda a la transparencia de distribución
n
n
RPC esconde el código de red en los stubs de cliente y servidor Los stubs se generan automáticamente
• rpcgen especificación
n
Se protege a la aplicación de los detalles de red
n
Sockets, marshalling de los parámetros, orden de los bytes, temporizadores, control de flujo, reconocimientos, retransmisiones, etc.
nPermite seleccionar llamadas locales a procedimientos o remotas, según la localización del procedimiento llamado
RPC 5
© JPM, UCM 2001-02
Plataformas RPC
n
OSF/DCE (Distributed Computing Environment)
n n
n
Paquete de multithreading Varios modelos de RPC y varios tipos de representación de datos y protocolos de red Servicios: Tiempo, Directorio, Seguridad, Archivos Antes SunRPC/XDR RFCs 1831 (ONC RPC) y 1832 (XDR)
n
ONC RPC
n n
n
Extensiones a arquitecturas de computación de objetos distribuidos
n n
Java RMI OMG CORBA
RPC 6
© JPM, UCM 2001-02
3
Servicios sobre RPC NFS (Network File System)
/etc/ e x p o r t s
cliente
servidor remoto
/u s r/ m a n -a c c e s s = c l i e n t e
/
/h o m e
/u s r
/
/u s r/ m a n
/l i b/u s r
/u s r/ b i n
/u s r/ l o c a l
/u s r/ b i n
/u s r/ l o c a l
/u s r/ m a n
/usr/etc/ mount remote:/usr/man /usr/man
Directorio en máquina remota
© JPM, UCM 2001-02 RPC
nombre local
7
Servicios sobre RPC NFS (Network File System)
llamadas al sistema
I/F NFS Servidor NFS
VFS
Otro VFS ( p .e j . P C - F S )
4.2 VFS
Cliente NFS
4.2 BSD UFSRPC/XDR
RPC/XDR
RED
© JPM, UCM 2001-02 RPC 8
4
Servicios sobre RPC NFS (Network File System)
Cliente 1 Aplicación 3 filehandle pathname filehandle 2 Servidor mount Servidor NFS Servidor
© JPM, UCM 2001-02
RPC
9
Servicios sobre RPC Port Mapper
Servidor Cliente 2
bind
a 111 portmapper
Aplicación 3
registra
1
utiliza
b c
Programa Servidor
© JPM, UCM2001-02
RPC
10
5
Servicios sobre RPC
n
Especificación del protocolo del Port Mapper en RPC
const PMAP_PORT = 111; /* portmapper port number */ /* A mapping of (program, version, protocol) to port number */ struct mapping { unsigned int prog; unsigned int vers; unsigned int prot; unsigned int port; }; Struct *pmaplist { mapping map; pmaplist next; }; /* Port mapper procedures */...
Regístrate para leer el documento completo.