Práctica Remote Procedure Call (Sistemas Operativos)

De Cuba-Wiki
Revisión del 18:34 5 dic 2006 de 200.61.162.25 (discusión) (→‎Ejercicio 02:)
(difs.) ← Revisión anterior | Revisión actual (difs.) | Revisión siguiente → (difs.)

Ejercicio 01:

Pascal tiene una construcción llamada variante de registro, en la que un campo de un registro puede contener una de varias alternativas. Durante la ejecución, no existe una forma segura de decir cuál de ellas se encuentra en dicho campo. Tiene esta característica de Pascal algunas implicaciones para las llamadas a procedimientos remotos?
Explique su respuesta.
Si se necesita enviar este campo a traves de una llamada RPC, se debe saber como serializar el mismo (convertirlo a una cadena de bytes). Si no se conoce el contenido, puede resultar en que no se pueda serializar correctamente, produciendo problemas asi si se lo intentase enviar al servidor por RPC.

Ejercicio 02:

La secuencia usual de los pasos de RPC incluye una interrupción al núcleo para que el mensaje se envíe del cliente al servidor. Supongamos que existe un circuito coprocesador especial para realizar la E/S de la red y que este circuito es directamente direccionable desde el espacio del usuario. Tendría importancia esto ? Cuáles serían los pasos de RPC en este caso ?

Ejercicio 03:

El circuito SPARC utiliza una palabra de 32 bits en formato big endian. Si una SPARC envía el entero 2 a una 486, que es little endian, cuál es el valor numérico que vería? 2 = 00 00 00 02. Al enviarla llega "al revez" 20 00 00 00 = 536.870.912.

Ejercicio 04:

4) Una forma de manejar la conversión de parámetros en los sistemas RPC es que cada máquina envíe los parámetros en su propia representación, mientras que la otra realice la traducción, en caso necesario. En el texto se sugiere que el sistema original se podría indicar mediante un código en el primer byte. Sin embargo, puesto que precisamente el problema es localizar el primer byte de la palabra podría funcionar este método ? es incorrecto el apunte?
Si, es correcto. El problema de big endian vs little endian es cuando se tiene un "entero" de tamaño de 2 o mas bytes, como estan ordenados internamente los bytes que lo componen. Un Byte es "representado igual" en las dos arquitecturas.

Ejercicio 05:

Ejercicio 06:

Ejercicio 07:

7) Para cada una de las siguientes aplicaciones cuál de las semánticas "al menos una vez" o "a lo sumo una vez" sería la mejor ? Analice.
a) lectura y escritura de archivos desde un servidor de archivos: "al menos una vez" (Siempre y cuando la escritura no sea un append)
b) compilación de un programa: "al menos una vez"
c) sistema electrónico de transferencia de fondos: "a lo sumo una vez"

Ejercicio 08:

Ejercicio 09:

9) RPC es:
a) un mecanismo que permite que un proceso se comunique explícitamente con otro proceso remoto
b) un mecanismo que permite tratar llamadas a procesos remotos como si fueran locales
c) un mecanismo que permite que dos procesos estén ejecutando simultáneamente
d) todas
e) ninguna

RPC es b) un mecanismo que permite tratar llamadas a procesos remotos como si fueran locales

Ejercicio 10:

Un stub cliente es:
a) una librería que provee RPC que se linkedita con el programa cliente y maneja el empaquetamiento de los parámetros y el armado del mensaje
b) un proceso del S.O. que es llamado por el programa cliente y que maneja el empaquetamiento de los parámetros y el armado del mensaje
c) una porción de código que se compila junto con el programa cliente y maneja el empaquetamiento de los parámetros y el armado del mensaje
d) todas
e) ninguna

Un stub cliente es: c) una porción de código que se compila junto con el programa cliente y maneja el empaquetamiento de los parámetros y el armado del mensaje

Ejercicio 11:

11) RPC:
a) no maneja el pasaje de parámetros por referencia
b) utiliza el mecanismo de copy/restore para manejar los parámetros por referencia
c) maneja las referencias empaquetando directamente los punteros
d) todas
e) ninguna

RPC: b) utiliza el mecanismo de copy/restore para manejar los parámetros por referencia

Ejercicio 12:

Ejercicio 13:

Ejercicio 14:

Ejercicio 15:

15) Ordenar la siguiente secuencia de acciones
a) el kernel remoto pasa el mensaje al stub server
b) el stub cliente empaqueta los parámetros y arma el mensaje que pasa al kernel local
c) el kernel local pasa el mensaje al stub cliente
d) el server ejecuta el requerimiento y genera un reply
e) el kernel remoto realiza el send del mensaje al kernel local
f) el stub cliente desempaqueta y pasa los datos al programa cliente
g) el kernel local realiza el send del mensaje al kernel remoto
h) el stub server desempaqueta los parámetros y los pasa al server
i) el programa cliente llama a un procedimiento (que no sabe que es remoto)
j) el stub server empaqueta el resultado y lo pasa al kernel

Ordenadas son: i) el programa cliente llama a un procedimiento (que no sabe que es remoto)
b) el stub cliente empaqueta los parámetros y arma el mensaje que pasa al kernel local
g) el kernel local realiza el send del mensaje al kernel remoto
a) el kernel remoto pasa el mensaje al stub server
h) el stub server desempaqueta los parámetros y los pasa al server
d) el server ejecuta el requerimiento y genera un reply
j) el stub server empaqueta el resultado y lo pasa al kernel
e) el kernel remoto realiza el send del mensaje al kernel local
c) el kernel local pasa el mensaje al stub cliente
f) el stub cliente desempaqueta y pasa los datos al programa cliente

Ejercicio 16:

Ejercicio 17:

Ejercicio 18:

Ejercicio 19:

Ejercicio 20:

Ejercicio 21:

Ejercicio 22:

Ejercicio 23:

Ejercicio 24:

Ejercicio 25:

Ejercicio 26:

Ejercicio 27:

Ejercicio 28:

Ejercicio 29:

Ejercicio 30:

Ejercicio 31: