Ejercicio del tema sistemas de ficheros distribuidos

  1. En NFSv3, ¿cuál de las siguientes llamadas corresponde a una operación RPC?
    1. Ninguna de ellas 
    2. lseek 
    3. close 
    4. lock 

Explicación 

NFSv3 sigue un modelo de servicio remoto sin estado. Por tanto, las operaciones close y lseek no afectan al servidor, sino solo al cliente, no traduciéndose en ninguna operación RPC. Por el mismo motivo, no ofrece cerrojos, ya que esta funcionalidad requiere un servicio con estado, siendo ésta ofrecida por NLM (Network Lock Manager).

  1. En NFSv4, ¿cuál de las siguientes llamadas corresponde a una operación RPC?
    1. open, close y lock 
    2. lock, pero no open ni close 
    3. open y close, pero no lock 
    4. ni open, ni close, ni lock 

Explicación 

NFSv4 sigue un modelo de servicio remoto con estado. Por tanto, la operación open corresponde a una operación RPC, que entre otras funcionalidades, creará una zona en el servidor (información de sesión) correspondiente al cliente. Del mismo modo, la operación close corresponderá a una operación RPC que llega al servidor y que liberará la zona de sesión correspondiente a ese cliente y a esa sesión. Por último, NFSv4 ya integra la funcionalidad de cerrojos, por lo que la operación lock también corresponde a una operación RPC.

  1. ¿Cuál de los siguientes sistemas de ficheros tiene un UFID que no incluye la identificación del servidor? :
    1. Ninguno de los tres 
    2. AFS 
    3. NFSv3 
    4. NFSv4 

Explicación 

AFS tiene un UFID que consta de tres campos: id de volumen, id de inodo y número de versión. Por tanto, la identificador del servidor no está incluida en el UFID.

  1. Indicar cuál de estas afirmaciones sobre una SAN es correcta
    1. Los dispositivos de una SAN deben utilizar a los nodos de cómputo para comunicarse entre sí 
    2. El rendimiento ofrecido por una SAN suele ser menor que el de una solución tipo DAS 
    3. NFS no aprovecha el paralelismo que ofrece una SAN 
    4. Una SAN no se puede utilizar en conjunción con GPFS 

Explicación 

NFS almacena cada fichero en un único servidor, no aprovechando el paralelismo ofrecido por una SAN. El resto de afirmaciones son incorrectas: Los dispositivos de una SAN pueden comunicarse directamente entre sí, sin necesidad de utilizar los nodos de cómputo; el rendimiento de una solución tipo DAS suele ser menor que el de una SAN, porque tanto el disco como el servidor son cuellos de botella; por último, GPFS es compatible con una SAN.

  1. ¿En cuál de los siguientes sistemas de ficheros una llamada lseek implica un mensaje de protocolo?
    1. NFS v4 
    2. NFS v3 
    3. AFS v1 
    4. AFS v2 

Explicación 

Sólo en NFSv4, que sigue un modelo de servicio remoto con estado, la llamada lseek se traduce en un mensaje de protocolo que viaja entre cliente y servidor, dado que esa llamada afecta al servidor. En NFSv3 no, dado que es un servicio sin estado y por tanto, la llamada lseek sólo afecta al cliente. Finalmente, AFS, tanto versión 1 como 2, trabajan con el fichero de forma local, por lo que también la llamada lseek sólo afecta al cliente.

  1. En AFS, tenemos tres clientes (C1, C2 y C3) y un servidor S1. C1 y C2 tienen abierto el fichero F1 simultáneamente, teniendo C3 una copia del fichero F1 del servidor en su cache (F1-C3). C1 modifica el fichero y lo cierra (F1-C1). A continuación, C2 no modifica su copia del fichero (F1-C2) y lo cierra. En una sesión posterior, C3 abre el fichero y lo modifica (F1-C3-2). Si en una sesión posterior, C2 vuelve a abrir el fichero antes de que C3 lo cierre, indicar cuál de estas afirmaciones es correcta:
    1. C2 abrirá una copia equivalente a F1-C1 
    2. C2 abrirá una copia equivalente a F1-C2 
    3. C2 abrirá una copia equivalente a F1-C3-2 
    4. C2 no puede abrir la copia hasta que cierre la sesión C3 

Explicación 

C2 recibirá una revocación de su copia del fichero cuando vuelva a abrirlo en la segunda sesión y por tanto, se traerá la copia que hay en el servidor, que es una copia equivalente a F1-C1. La copia F1-C3-2 no afecta a la sesión de C2, puesto que son sesiones concurrentes y AFS sigue una semántica de sesión.

  1. En relación a GFS (versión 1), ¿cuál es la ventaja de usar un único nodo maestro?
    1. Mayor tolerancia a fallos 
    2. Mayor escalabilidad 
    3. Más simplicidad de diseño del sistema de ficheros 
    4. Requiere un nodo con menos capacidad de cómputo y menos memoria 

Explicación 

Un único nodo maestro no ofrece ni mayor tolerancia a fallos ni mayor escalabilidad. Por otro lado, dado que las tareas del sistema de ficheros no se reparten entre diferentes nodos, el nodo maestro necesita mayor capacidad de cómputo y mayor memoria para gestionar toda la funcionalidad. Finalmente, el uso de un único nodo maestro simplifica el diseño del sistema de ficheros, dado que el diseño de un sistema centralizado es más sencillo que el diseño de un sistema distribuido.

  1. Se tiene un sistema de ficheros paralelo que utiliza stripping y nodos de E/S. Considere que el sistema dispone de 3 nodos de E/S y se utiliza cache de datos en los nodos de cómputo. El tamaño de bloque del sistema de ficheros es 16KB, se lleva a cabo prefetching secuencial de 1 bloque adicional y el tamaño de la rodaja es 48KB. Además, se supone que la cache está inicialmente vacía y tiene un tamaño suficiente para albergar todos los bloques a los que se vaya accediendo. Si el primer nodo de E/S tiene B1, B2 y B3 del fichero f y el resto de los bloques, de manera secuencial se reparten entre el resto de nodos de E/S, es decir, el segundo nodo tiene B4, B5 y B6 y así sucesivamente ¿Cuántas solicitudes a los nodos de E/S tendrá que realizar un nodo de cómputo que pretenda realizar una operación de lectura de los primeros 192K del fichero f?
    1. 4 solicitudes al primer nodo, 2 solicitudes al segundo nodo y 2 solicitudes al tercer nodo 
    2. 6 solicitudes al primer nodo, 3 solicitudes al segundo y 3 solicitudes al tercer nodo 
    3. 3 solicitudes a cada uno de los 3 nodos de E/S 
    4. 2 solicitudes a cada uno de los 3 nodos de E/S 

Explicación 

El tamaño de la rodaja es de 3 bloques (3*16KB= 48KB). Los primeros 192K del fichero se encuentran situados en los 3 nodos de E/S  (3*48=144KB) y los bloques restantes (48KB) en el primer nodo. Como se lleva a cabo prefetching secuencial de 1 bloque adicional, a cada uno de los nodos sólo se les hace 2 solicitudes para traerse los 3 bloques correspondientes. Por tanto, se harán 4 solicitudes al primer nodo, 2 solicitudes al segundo nodo y 2 solicitudes al tercer nodo.

  1. En GPFS, tenemos una aplicación compuesta por 3 procesos. Se llevan a cabo la siguiente secuencia de operaciones:
    1. - El primer proceso escribe 32K sobre un fichero f desde el inicio (desplazamiento = 0) 
    2. -  El primer proceso escribe 32K sobre el fichero f, comenzando en el desplazamiento 64K 
    3. -  El segundo proceso escribe 32K sobre el fichero f, comenzando en el desplazamiento 96K
    4. - El segundo proceso escribe 32K sobre el fichero f, comenzando en el desplazamiento 128K 
    5. - El tercer proceso escribe 32K en el fichero f, desde el desplazamiento 192K 
    6. - El primer proceso escribe otros 32K en el mismo fichero, desde el desplazamiento 32K 
    7. - El segundo proceso escribe otros 32K en el mismo fichero, desde el desplazamiento 128K Indicar cuántos tokens son solicitados en total por los 3 procesos al Gestor de Tokens:
    1. 4 
    2. 3 
    3. 7 
    4. 1 

Explicación 

El primer proceso (P1) accede al Gestor de Tokens, que le concede el token [0, ∞). Para llevar a cabo la segunda operación, no necesita contactar con el Gestor de Tokens. A continuación, el segundo proceso (P2) contacta con el Gestor de Tokens, quién le concede el token [96K, ∞), ajustando el token de P1 a [0, 96K). La cuarta operación no necesita contactar con el Gestor de Tokens. A continuación, el tercer proceso (P3) contacta con el Gestor de Tokens, obteniendo el token [192K, ∞), ajustando el token de P2 a [96K, 192K). El resto de operaciones se pueden realizar sin necesidad de contactar al Gestor de Tokens. Por tanto, 3 tokens son solicitados en total por los 3 procesos.

  1. En la secuencia anterior, ¿cuántos ajustes de tokens hacen los 3 procesos en total, considerando ajuste a la revocación de tokens que entren en conflicto con el rango requerido?
    1. 3 
    2. 0 
    3. 2 
    4. 7 

Explicación 

Como se ha explicado en la pregunta anterior, se llevan a cabo 2 ajustes de tokens.

  1. Al final de dicha secuencia, ¿qué token tendrá el primer proceso?
    1. [0,96K) 
    2. [32K,96K) 
    3. [0,64K) 
    4. [0,128K) 

Explicación 

Como se ha explicado en la pregunta 9, el token de P1 será [0,96K) al final de la secuencia.

  1. Al final de dicha secuencia, ¿qué token tendrá el segundo proceso?
    1. [96K,192K) 
    2. [96K,160K) 
    3. [128K,160K) 
    4. [128K,192K) 

Explicación 

Como se ha explicado en la pregunta 9, el token de P2 será [96K,192K) al final de la secuencia.

  1. Al final de dicha secuencia, ¿qué token tendrá el tercer proceso?
    1. [160K, ∞) 
    2. [192K, ∞) 
    3. [160K, 192K) 
    4. [192K, 224K) 

Explicación 

Como se ha explicado en la pregunta 9, el token de P3 será [192K,∞) al final de la secuencia.