Sistemas Distribuidos: Ejercicio de los temas arquitectura y comunicación en los sistemas distribuidos

Febrero del 2017.

Grupo de tarde.

Se pretende implementar un servicio de log global para un sistema distribuido basado en un esquema similar al usado en UNIX, donde cada mensaje de log tiene asociada una etiqueta con el siguiente formato: facility.priority. La facility corresponde al componente o subsistema al que está asociado el mensaje (por ejemplo, el correo, la web, el sistema de impresión o el kernel, hasta un total de 32 distintas) y la priority al grado de urgencia (8 niveles que van, de menor a mayor urgencia, desde info hasta panic). Tomando como ejemplo la facility web, todas las aplicaciones relacionadas con este servicio (como, por ejemplo, el navegador NW o el servidor web SW) escribirán mensajes de log especificando esta facility y el nivel de urgencia correspondiente. Por otro lado, el administrador del sistema debe especificar qué tratamiento se realiza con cada tipo de mensaje de log (por ejemplo, escribirlos en la consola del administrador, enviárselos por correo o imprimirlos). Para ello, el administrador desplegará una serie de aplicaciones que recibirán como información de configuración el tipo de mensajes de log que gestionan y que realizarán un determinado tratamiento con ellos (por ejemplo, CO los escribe en consola, MX los envía por correo y PR los imprime). Nótese que un mismo mensaje de log puede ser tratado por varias aplicaciones. Asimismo, téngase en cuenta que una aplicación de tratamiento de un cierto tipo de mensajes de log también puede necesitar generar a su vez mensajes de log (por, ejemplo, si la impresora no responde, la aplicación PR puede generar un mensaje de log asociado a la facility del sistema de impresión). Evidentemente, para evitar situaciones patológicas, el administrador no debería configurar que los mensajes de log asociados a una determinada facility sean tratados por una aplicación que usa esa facility. Para implementar este sistema, se utilizará una arquitectura editor/subscriptor con temas jerárquicos (2 niveles) y uso de comodines. Por motivos de trazabilidad y auditoría, todo mensaje de log será también guardado en un sistema de almacenamiento SA. La operación de escritura en SA seguirá un modelo cliente/servidor y siempre se añadirá al final del fichero (no escribe en la posición correspondiente al offset actual del proceso escritor sino que lo añade siempre al final del fichero). Por razones de seguridad, se almacenan varias copias de los datos en SA, existiendo una copia primaria. La operación de escritura se completará después de modificar la copia primaria, propagándose posteriormente a las otras copias. Las operaciones de lectura, que realizan procesos auditores, pueden acceder a cualquier copia. Por otro lado, si momentáneamente se deja de tener acceso a una de las copias, se seguirán actualizando las copias accesibles (una de las cuales será considerada como primaria) realizando un proceso de consolidación cuando se recupere la accesibilidad. Por último, dado que puede haber procesos de auditoría accediendo también a SA, se usará un servicio remoto de cerrojos (SC) para solventar los problemas de concurrencia, estando replicado dicho servicio para aumentar la fiabilidad.
  1. ¿Qué rol realiza el módulo NW?
    1. Sólo Ed
    2. Sólo Su
    3. Ed y Su
    4. Ninguno
  1. ¿Qué rol realiza el módulo PR?
    1. Ed y Su
    2. Sólo Su
    3. Sólo Ed
    4. Ninguno
  1. ¿Cuántos temas existen en el esquema editor/subscriptor?
    1. 32 * 8
    2. 32
    3. 8
    4. 32 + 8
  1. ¿Cuántas operaciones de subscripción se requieren para procesar todos los mensajes info y panic si se usan comodines?
    1. 2
    2. 16
    3. 64
    4. 40
  1. ¿Qué acción genera NW cuando detecta un error interno?
    1. publicación
    2. baja
    3. subscripción
    4. notificación
  1. ¿Qué acción realiza CO en su fase inicial?
    1. subscripción
    2. baja
    3. publicación
    4. notificación
  1. ¿Qué acción realiza CO en su fase final?
    1. baja
    2. subscripción
    3. publicación
    4. notificación
  1. ¿Qué acción realiza PR cuando detecta un error en la impresora?
    1. publicación
    2. baja
    3. subscripción
    4. notificación
  1. ¿Qué acción recibida por MX causa que envíe un mensaje?
    1. notificación
    2. subscripción
    3. publicación
    4. baja
  1. ¿De qué tipo de sistema se trata según el teorema CAP?
    1. AP
    2. CP
    3. CA
    4. CAP
  1. ¿De qué tipo de sistema se trata según el teorema PACELC?
    1. PAEL
    2. PAEC
    3. PCEC
    4. PCEL
  1. ¿Es idempotente y stateless la escritura sobre SA?
    1. No; Sí.
    2. Sí; No.
    3. No; No.
    4. Sí; Sí.
  1. ¿Qué módulo debería enviar los mensajes de renovación del lease si se aplica un esquema de leasing al editor/subscriptor?
    1. CO
    2. SW
    3. SC
    4. SA
  1. ¿Qué esquema de replicación de servicio sería más adecuado si se quiere minimizar el gasto de recursos de procesamiento (como, por ejemplo, consumo de energía) mientras el sistema no tenga errores aunque se sacrifique el tiempo de recuperación del servicio de cerrojos?
    1. cold standby
    2. hot standby
    3. warm standby
    4. Activa
  1. Se plantea usar un esquema con un filtro de eventos por contenido en vez de un filtro por temas. ¿Para cuál de estos casos ese cambio sería más ventajoso en el sentido de reducir el número de mensajes recibidos pero no deseados?
    1. Interés en tratar los mensajes generados por una aplicación que usa todas las facilities.
    2. Interés en tratar todos los mensajes del sistema.
    3. Interés en tratar todos los mensajes de tipo panic.
    4. Interés en tratar los mensajes de tipo panic o info que genera NW.

Las siguientes preguntas corresponden al tema de comunicación y, por tanto, no entran en este curso

  1. Sea una función con 4 parámetros que representan la dirección de 2 buffers y sus tamaños respectivos, y que va recibir un mensaje por un socket tal que la primera parte es una cabecera que se almacenará en el primer buffer y la segunda es el cuerpo del mensaje que se guardará en el segundo. ¿Qué servicio del S.O. puede optimizar la operación de esa función?
    1. readv
    2. mmap
    3. sendfile
    4. recv
  1. Suponga que un proceso tiene que enviar un mensaje a otro y, a continuación, recibir uno de un tercero. Para ello realiza la secuencia: define una variable; rellena la variable con el contenido del primer mensaje; lo envía; invoca una llamada de recepción bloqueante especificando la misma variable. ¿Para qué tipo de envío esta solución no es adecuada?
    1. Envío con retorno inmediato.
    2. Envío con retorno después de copia local.
    3. Envío con retorno cuando ha llegado el mensaje al nodo remoto.
    4. Envío con retorno cuando el proceso remoto ha recibido el mensaje.
  1. Suponga un sistema de comunicación en grupo causal con 4 procesos (de P1 a P4) donde P1 recibe un mensaje de P4 con un vector (2,3,4,5). ¿Cuál de los siguientes vectores que corresponden al proceso receptor P1 es correcto (algunos tienen valores no factibles) y permite la entrega inmediata del mensaje?
    1. (4,5,4,4)
    2. (1,3,5,4)
    3. (4,5,6,6)
    4. (4,2,4,4)
  1. ¿En cuántos de los siguientes esquemas de serialización el tamaño del objeto serializado depende de la longitud que tengan los nombres de los campos del objeto original: XDR, JSON, Protocol Buffers y Java Serialization?
    1. 2
    2. 1
    3. 3
    4. 4
  1. ¿Cuáles de los siguientes mecanismos de comunicación proporcionan desacoplamiento espacial: sockets y RabbitMQ?
    1. RabbitMQ
    2. sockets
    3. Ambos
    4. Ninguno