Sistemas Distribuidos: Conceptos, Características y Aplicaciones

Conceptos Clave en Sistemas Distribuidos

Preguntas y Respuestas

  1. Completa las siguientes oraciones:

    1. En sistemas distribuidos cobra especial importancia la sincronización de los relojes de los procesos participantes.
    2. En un sistema distribuido se desea transparencia y se necesita consistencia para que funcione correctamente.
    3. El reloj TAI se retrasa 1 segundo en 30000 años.
    4. Multicast consiste en el envío de múltiples copias de un mismo mensaje desde un proceso origen a múltiples procesos destino.
    5. Denominación (gestión de nombres): la correspondencia entre objetos lógicos y físicos.
    6. Consistencia de réplica: se da cuando un conjunto de datos debe mantenerse copiado en varias estaciones.
    7. La búsqueda del servidor en RPC se hace mediante binding.
    8. La estandarización de la interfaz de comunicación entre el cliente y el servidor se hace mediante IDL.
    9. Un sistema es abierto si es fácilmente ampliable.
    10. Disponibilidad: la proporción del tiempo total en el que el sistema está disponible para su uso.
    11. Una característica de cumplimiento obligatorio para los sistemas distribuidos es la consistencia.
    12. En RPC síncrono, tras la llamada a RPC, el cliente queda bloqueado hasta recibir la respuesta.
    13. IDL es un lenguaje de definiciones de interfaz.
    14. CORBA es el modelo para el desarrollo de sistemas distribuidos orientados a objetos.
    15. La comunicación con un objeto CORBA puede ser síncrona, asíncrona o sin respuesta (one-way).
    16. El problema de los generales bizantinos se asemeja a la ……………… en sistemas distribuidos.
    17. ORBit es la implementación de CORBA en C++ y funciona en el sistema operativo Linux.

Desarrollo de Conceptos en Sistemas Distribuidos

  1. ¿Qué es un sistema distribuido?

    Colección de computadoras separadas físicamente y conectadas entre sí por una red de comunicaciones.

  2. ¿Qué características tiene un sistema distribuido?

  3. Mencione 3 ventajas de los sistemas distribuidos.

    • Comparten datos: acceso a bases de datos comunes.
    • Comparten dispositivos: impresoras, escáneres, etc.
    • Comunicación: facilita la comunicación (e-mail).
    • Flexibilidad: reparto de carga eficiente.
  4. Mencione 3 desventajas de los sistemas distribuidos.

    • Software: hay poco software disponible.
    • Red: se puede saturar.
    • Seguridad: más difícil de asegurar.
  5. Indique 4 áreas de aplicación de los sistemas distribuidos.

    • Comunicaciones (web y software).
    • Sistemas operativos distribuidos.
    • Bases de datos distribuidas.
    • Servidores distribuidos de ficheros.
    • Lenguajes de programación distribuida.
    • Sistemas tolerantes a fallos.
  6. ¿Por qué nacen los sistemas distribuidos y cuándo?

    Los sistemas distribuidos comenzaron a desarrollarse al ritmo del crecimiento de las redes locales a principios de los años 70.

    Se ha pretendido lograr que el procesamiento de la información no se haga en un solo equipo, sino en diferentes, incluso que estos estén en diferentes lugares.

    1. ¿En qué consiste la consistencia de actualización?

      Cuando varios procesos acceden concurrentemente a un dato para actualizarlo, se puede producir una inconsistencia, ya que la actualización de todo el dato en su conjunto no se realiza como una única operación atómica en exclusión mutua.

    2. ¿En qué consiste la consistencia de replicación?

      Cuando un conjunto de datos debe mantenerse replicado en varias estaciones.

    3. ¿En qué consiste la consistencia de caché?

      Para agilizar el acceso a datos compartidos.

    4. ¿En qué consiste la consistencia de reloj?

      Muchos de los algoritmos utilizados en aplicaciones y programación de sistemas dependen de unas marcas de tiempo que indican el momento en el que ha sucedido un evento.

    5. ¿En qué consiste la consistencia de interfaz de usuario?

      En una aplicación interactiva distribuida, a veces, se pulsa un botón del ratón y no cambia nada en la pantalla.

  7. ¿Cómo se comparten recursos en sistemas distribuidos?

  8. ¿En qué consiste la escalabilidad y qué repercusión tiene en los protocolos de comunicación de los clientes?

    Un sistema distribuido debe ser fácilmente ampliable, sin que para ello los usuarios deban modificar su protocolo de comunicación ni la eficiencia del sistema se vea afectada.

  9. ¿Qué problemas surgen de la distribución de sistemas?

    • Denominación.
    • Comunicación.
    • Reparto de carga.
    • Consistencia.
  10. ¿Cuál es el objetivo principal de los sistemas distribuidos?

    Compartir recursos fácilmente.

  11. ¿Qué entendemos por consistencia de interfaz de usuario y por qué es importante?

    Cuando un usuario está trabajando con una aplicación interactiva distribuida, y en la máquina cliente realiza una acción, este está pendiente de lo que suceda. Es aquí donde se produce la inconsistencia, pues no se corresponde lo tecleado con lo reflejado en la pantalla.

  12. ¿Qué es el stub del cliente y para qué sirve?

    Es la interfaz estática a los servicios declarados en las interfaces IDL. Para el cliente, todas las llamadas parecen locales.

    Se encarga de empaquetar los parámetros y la solicitud, y enviarlos al intermediario en el servidor.

  13. Mencione un lenguaje IDL.

    IDL describe interfaces remotas en un lenguaje neutral.

  14. ¿Cuál es la función del binder en un sistema distribuido?

    Es un servicio separado que mantiene una tabla que contiene correspondencias de nombres de servicios con puertos de servidor.

  15. Mencione 4 aplicaciones de los sistemas distribuidos.

    • Videoconferencia.
    • Aplicaciones bancarias.
    • Correo electrónico.
    • Servicio de transferencia de ficheros (FTP).
    • World Wide Web (WWW).
  16. ¿Qué se entiende por transparencia?

    Consiste en ocultarle al usuario del sistema el hecho de que este está compuesto por múltiples y heterogéneos equipos separados.

  17. ¿Qué requisitos mínimos deben existir para que exista un sistema distribuido?

    • Colección de computadoras independientes.
    • Separadas físicamente.
    • Conectadas entre sí por una red de comunicaciones.
  18. ¿Qué es RMI y para qué sirve?

    RMI (Remote Method Invocation). Procedimiento de invocación a métodos remotos.

    Sirve para soportar llamadas a procedimientos remotos entre objetos que se ejecutan sobre máquinas virtuales Java (JVM).

  19. ¿Qué ventajas nos da utilizar CORBA respecto a los sockets para desarrollar sistemas distribuidos?

    • Gestión de vida del servidor.
    • Llamada a procedimiento remoto síncrono o asíncrono como abstracción.
    • La alta capacidad de configuración.
    • Libertad de elección de los detalles de transferencia de datos.
    • La compresión de los datos.
  20. ¿Por qué es importante sincronizar la hora en sistemas distribuidos?

    Se requiere que los procesos estén de acuerdo en el orden en el que se han producido los eventos que les relacionan.

  21. ¿Qué es CORBA y qué se necesita para implementarlo?

    Es un estándar definido por Object Management Group (OMG) que permite que diversos componentes de software escritos en múltiples lenguajes de programación y que corren en diferentes computadoras, puedan trabajar juntos; es decir, facilita el desarrollo de aplicaciones distribuidas en entornos heterogéneos.

    • ORB.
    • IDL.
  22. ¿Qué función cumple el compilador de IDL en CORBA?

    El encargado de asegurar la independencia del lenguaje de programación utilizado.

  23. ¿Para qué sirve el algoritmo de Cristian y cómo se usa?

    El algoritmo de Cristian (1989) es un método, dentro de la computación distribuida, para la sincronización de relojes. Cristian describe el método como probabilístico debido a que se consigue la sincronización solo si el tiempo de respuesta es suficientemente corto comparado con la precisión requerida. Consiste en un servidor conectado a una fuente de UTC y unos clientes que se sincronizan con dicho servidor.

  24. ¿Para qué sirve NTP y dónde se utiliza?

    Sincroniza los relojes de los hosts y routers de Internet.

    El software de NTP está hecho casi para todo tipo de workstations y servidores bajo las plataformas existentes hoy en día – desde PCs hasta Crays – Unix, Windows, VMS y sistemas embebidos, incluso routers y UPS.

  25. ¿Qué entendemos por exclusión mutua y qué consideraciones hay que tener en sistemas distribuidos?

    Evitar el uso simultáneo de recursos comunes.

    • Consistencia de actualización.
    • Consistencia de replicación.
    • Consistencia de caché.
    • Consistencia de reloj.
    • Consistencia de interfaz de usuario.
  26. ¿Para qué sirve el algoritmo de Bully y cuándo se utiliza?

    Es un algoritmo de elección. Cuando falla la detección del proceso coordinador, un proceso cualquiera podría asumir temporalmente el rol de coordinador.

  27. Dé un ejemplo de estructura de nombre jerárquica.

    dia.eui.upm.es/notas.html

    atc.eui.upm.es/notas.html

  28. ¿Cuáles son las funciones que realiza el servidor de nombres?

    Proporciona resolución de nombres para redes basadas en TCP/IP.

  29. ¿Cómo puede el cliente saber dónde se encuentra el binder?

    El binder puede estar en:

    • En una dirección fija (la sabe el S.O.).
    • Variable de entorno.
    • Broadcast de búsqueda.
  30. ¿Cuáles son las aplicaciones de multicast?

    • Audioconferencia.
    • Videoconferencia.
    • Servicio de teléfono multimedia.
  31. ¿Cuál es la estructura de las RPC?

    Z

  32. ¿Qué tipos de errores se producen en la ejecución de RPC?

    • Errores de comunicación.
    • Fallo en el servidor.
    • Fallo en el cliente.
  33. ¿Qué función cumple el compilador de interfaces en RPC?

    Socialización.

  34. ¿Cómo está compuesto CORBA?

    • Modelo de objetos.
    • Modelo de referencia.
  35. Indique 3 implementaciones de CORBA.

    ORBacus, ORBit, JacORB.

  36. Indique 3 características principales de RMI.

    • Implementación 100% Java.
    • Independencia del protocolo de comunicación.
    • Por la facilidad de su uso en la programación por estar específicamente diseñado para Java.
    • Permite la comunicación entre objetos situados (creados y ejecutados) en máquinas diferentes.
    • Cada objeto remoto implementa una interfaz remota, que especifica cuáles métodos pueden ser invocados por los clientes.
  37. ¿Cómo está compuesta la arquitectura RMI?

    Z

  38. Cite 3 desventajas de RMI.

    • El paso de parámetros por valor implica tiempo para hacer la serialización.
    • No es rápido, disminuye con el incremento del sistema.
    • Limitaciones debido a su integración con Java.
  39. ¿Para qué sirve el algoritmo de Berkeley?

    Está pensado para entornos en los que no se dispone de ningún receptor de tiempo y lo único que se pretende es que todos los ordenadores se mantengan sincronizados con una misma hora.

  40. ¿En qué consiste el consenso distribuido?

    En llegar a una decisión común a partir de valores iniciales y a pesar de fallos.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.