Parcial 1 2024
- 
En los sistemas distribuidos generalmente se consideran las capas del stack OSI: - a. Capa de enlace
- b. Capa física
- c. Capa de red
- d. Capa de transporte/sesión/presentación y aplicación
 Justificación: 
- 
El protocolo "Transmission Control Protocol" se usa en los S.D porque permite: - a. Minimizar el número de paquetes que se envían por las redes
- b. Minimizar la latencia en las comunicaciones
- c. Disminuir los errores en las comunicaciones
- d. Garantizar la seguridad
 Justificación: 
- 
Cuando se menciona que un middleware puede ser usado por muchas aplicaciones diferentes, esto implica: - a. Los protocolos de la capa física no son necesarios.
- b. Tener la capacidad de poder usar/integrar distintos tipos de protocolos
- c. Las aplicaciones deben usar los mismos protocolos de comunicación
- d. Los sistemas donde se ejecutan esas aplicaciones tienen la misma capacidad y tipo
 Justificación: 
- 
Cuando se trabaja con un protocolo host-to-hostse establece una comunicación entre:- a. Distintos protocolos
- b. Distintas aplicaciones
- c. Sistemas operativos del mismo o diferentes tipos
- d. Middlewares
 Justificación: 
- 
Una comunicación síncrona implica - a. Establecer 3 momentos o etapas: envío, entrega y procesamiento
- b. Evitar la espera de la respuesta del servidor o del cliente
- c. Contar con sistemas de almacenamiento que registren el estado y datos de la comunicación
- d. Que las comunicaciones sean obligatoriamente persistentes
 Justificación: "almacenamiento" no implica que haya persistencia de la comunicación. Puede quedar en memoria y luego esfumarse. 
- 
Para el esquema de comunicación cliente/servidor se establecen: - a. Comunicaciones persistentes
- b. Comunicaciones síncronas
- c. Comunicaciones transitorias
- d. Bloqueos durante la comunicación de parte del cliente y no del servidor
 Justificación: si bien son cosas típicas del modelo cliente/servidor, no necesariamente lo van a incluir siempre 
- 
Una comunicación persistente y asíncrona implica - a. Gestión de colas de mensajes
- b. Dependencias de aplicaciones intermedias que aseguren la tolerancia a fallas
- c. Modelo Cliente/Servidor
- d. Bloqueo para espera de confirmación de envío o recepción
 Justificación: No necesariamente tienen que asegurar la tolerancia a fallas, mucho menos ser parte del modelo cliente servidor. Puede haber un esquema Pub/Sub donde ningún nodo es un servidor, y las colas de mensajería administran los mensajes enviados en este tipo de comunicación. Como es asíncrona, no hay bloqueo por espera de confirmación de envío ni recepción 
- 
RPC involucra: - a. Comunicación síncrona
- b. Sockets
- c. Gestión de conversión o adaptación de las funciones invocadas
- d. No se permite el uso de variables globales
 Justificación: Permiten el uso de variables globales, justamente, teniendo referencias a objetos. 
- 
MPI involucra: - a. Intercambio de objetos
- b. Gestión de MQ (colas de mensajes)
- c. Ejecución de tareas en varios cores y/o computadoras
- d. Comunicaciones síncronas o asíncronas
 Justificación: MPI permite sincronización de tareas ejecutadas en varios dispositivos, pero no la ejecución en sí 
- 
Una comunicación asíncrona persistente incluye: - a. Intercambio de mensajes
- b. Middlewares para la gestión de mensajes
- c. Buffers para la comunicación
- d. Operaciones básicas para el envío y recepción
 Justificación: Si se quiere asincronismo y persistencia, necesariamente tiene que haber un buffer de comunicación, que puede ser interpretado de alguna manera como middleware. Las otras 2 son básicas de cualquier tipo de comunicación. 
- 
El intercambio de mensajes basado en brokers: - a. Se usa para aplicaciones homogéneas
- b. Se usa en modelos Pub/Sub
- c. Se usa para aplicaciones heterogéneas
- d. La gestión de MQ se realiza en nodos que se comunican
 Justificación: Los brokers siguen como capa de abstracción de alguna manera. Justamente las colas de mensajería son procesos/nodos aparte de los nodos que quieren comunicarse. Si la aplicación es homogénea, ¿para qué querés una cola de mensajería? 
- 
Para establecer un envío multicast: - a. Solo se pueden usar arquitecturas de computadoras en forma de árbol
- b. Siempre se requiere un sistema de routing
- c. Es posible aumentar la latencia por saturación de los canales de comunicación
- d. Se necesita comunicación directa entre nodos
 Justificación: No siempre tienen que ser arquitecturas en forma de árbol. El enrutamiento se requiere si la arquitectura es de tipo mesh 
- 
Un esquema de comunicación basado en flooding: - a. Es más eficiente mientras más nodos contenga la red
- b. Siempre debe contener nodos edge
- c. El envío de mensajes se hace solo al nodo más cercano
- d. Se seleccionan los vecinos según el desempeño de la comunicación entre nodos
 Justificación: Flooding toma un nodo, ese nodo le envía mensajes a todos sus vecinos excepto a quien le haya mandado el mensaje, lo cual está directamente relacionado con el desempeño de la red 
- 
Un sistema distribuido centralizado - a. Usa varios nodos centrales para controlar las comunicaciones
- b. Usa una estructura en malla para establecer las comunicaciones
- c. No es un sistema distribuido
- d. La centralización se basa en la forma en cómo se estructura la red de comunicación
 Justificación: No necesariamente van a usar varios nodos centrales, no es condición necesaria. La estructura en malla no tiene nada que ver. Justamente es un sistema distribuido. 
- 
¿Qué significa que un sistema distribuido es un sistema informático en red en el que los procesos y recursos están suficientemente distribuidos entre varias computadoras? - a. Que todos los procesos pertenecen a diferentes computadoras
- b. Que todos los recursos están en diferentes computadoras
- c. Que algunos de los procesos y recursos están en diferentes computadoras o dispositivos
- d. Que una computadora ejecute un solo proceso o contenga un solo recurso
 Justificación: 
- 
El escalamiento en un S.D depende de: - a. Los protocolos de comunicación que se usen
- b. De las aplicaciones que se usen
- c. Del tipo de usuario que se considere
- d. De las APIs con las que se cuente
 Justificación: Del tipo de usuario no depende en absoluto, pero sí de su cantidad. Es decir, la escala depende mucho del tráfico y uso del sistema. 
- 
La distribución lógica y física considera: - a. La forma en que las organizaciones (individuos) participan
- b. Las aplicaciones utilizadas
- c. El tipo de red utilizado
- d. Los protocolos de comunicación
 Justificación: 
- 
Cuando las aplicaciones son independientes a los algoritmos - a. Se pueden usar diferentes arquitecturas de computadoras para el mismo algoritmo
- b. Todos los algoritmos son independientes a todas las aplicaciones
- c. Todas las aplicaciones son independientes de cualquier algoritmo
- d. Un algoritmo puede ser implementado en diferentes aplicaciones
 Justificación: 
- 
La transparencia en la distribución implica: - a. Tener un middleware
- b. Tener una sola aplicación que le permita al usuario integrar todos los recursos y procesos, en una única interfaz visual.
- c. Que el usuario no conozca los detalles de la forma en que se comunican los procesos
- d. Que el usuario administre cada recurso de forma transparente
 Justificación: 
- 
Para distinguir entre la latencia y las fallas, se puede usar: - a. El tiempo como única métrica de detección
- b. Protocolos que usen estrategias de confirmación de recepción de mensajes
- c. Un registro de los tiempos de respuesta
- d. Un tiempo máximo de espera
 Justificación: 
- 
Entre las similitudes entre políticas y mecanismos están - a. La política y el mecanismo proviene de una decisión organizacional
- b. La forma de implementación
- c. Se usan como conceptos análogos
- d. Ninguna de las anteriores
 Justificación: 
- 
Cuando un S.D permite agregar dominios de forma transparente al usuario se está refiriendo a: - a. Escalabilidad administrativa
- b. Escalabilidad geográfica
- c. Escalabilidad de procesos
- d. Todas las anteriores
 Justificación: 
- 
Entre las semejanzas entre un S.D y uno paralelo están: - a. Tener diferentes clocks
- b. Tener el mismo clock
- c. Tener múltiples procesadores o cores en una o varias computadoras
- d. Tener procesadores de alto rendimiento en todos los sistemas
 Justificación: No necesariamente vas a tener procesadores de alto rendimiento. Podes tener un sistema distribuido o paralelo tomando tu máquina personal como nodo. Los S.D tienen distintos clocks, mientras que los paralelos lo comparten. 
- 
La memoria virtual sirve para: - a. Implementar memoria compartida
- b. Extender la capacidad real de la memoria física
- c. Virtualizar el almacenamiento secundario
- d. Todas las anteriores
 Justificación: 
- 
Un S.D local o clúster cuenta con: - a. Un mismo clock para todos los nodos
- b. Un clock diferente para c/nodo
- c. Un nodo coordinador
- d. Distribución de datos y/o instrucciones
 Justificación: 
- 
En un S.D se usa una arquitectura multicapa para: - a. Disminuir la cantidad de protocolos de comunicación
- b. Descomponer el proceso de comunicación en tareas más simples
- c. Aumentar el grado de confiabilidad en las comunicaciones
- d. Tener un mejor control en el manejo de errores
 Justificación: Justamente si tenés muchas capas podrías terminar teniendo varios protocolos de comunicación 
- 
En una arquitectura orientada o basada en objetos: - a. Un objeto representa un solo nodo o computadora en el sistema
- b. Un dispositivo en el sistema puede manejar varios objetos
- c. La estrategia es distribuir las tareas entre objetos independientemente de los nodos del sistema
- d. Un objeto puede resolver una única tarea particular solamente
 Justificación: 
- 
En una arquitectura REST se busca: - a. Disminuir la cantidad de tipos de operaciones para facilitar la integración entre nodos en el sistema
- b. Los recursos son manejados y controlados de forma compartida
- c. Los recursos están distribuidos y se acceden a través de protocolos compatibles con REST
- d. Ninguna de las anteriores
 Justificación: La idea es que los nodos de esta arquitectura se acoplen a una cierta interfaz, y que las operaciones a realizar se limiten a los distintos métodos de HTTP. No necesariamente los recursos van a estar manejados y controlados de manera compartida, puesto que puedo tener una arquitectura REST con 1 solo servidor y N clientes, donde los recursos los termina manejando solo el server. La 3ra opción es solo una implicancia de una arquitectura REST 
- 
En un S.D una interfaz permite - a. Comunicación entre aplicaciones del mismo tipo
- b. Comunicación entre aplicaciones de distinto tipo
- c. Comunicación entre dispositivos iguales
- d. Comunicación entre dispositivos diferentes
 Justificación: Justamente se ponen estos contratos para abstraerse tanto del tipo de aplicación como del tipo de dispositivo. 
- 
Entre las ventajas de tener un coordinador en un S.D están: - a. Aumentar el control de la comunicación entre nodos
- b. Aumentar la seguridad del sistema
- c. Aumentar la coherencia de datos
- d. Evitar SPoFs (Single Points of Failure)
 Justificación: Claramente provocás un SPoF. La comunicación está más controlada porque todo pasa por el coordinador, lo cual te da una arquitectura más robusta y más sencilla de implementar. Lo mismo aplica para la seguridad y la coherencia de datos (todo pasa por el coordinador) 
- 
En cuanto a un middleware, se puede afirmar: - a. Que es un intermediario entre HW y SW.
- b. Que es un sistema compuesto por varias aplicaciones
- c. Que es un sistema que ofrece al usuario la capacidad de uso de diferentes sistemas operativos
- d. Todas las anteriores
 Justificación: Lo de los sistema operativos es cierto en el caso del Hypervisor de las máquinas virtuales, el cual es un middleware entre el Host OS y las distintas VM. No necesariamente tiene que estar compuesto por varias apps, pero se puede implementar de esta manera. 
- 
Un wrapper siempre usa: - a. Un nodo broker que intermedia entre aplicaciones que no están diseñadas para la comunicación entre nodos o dispositivos
- b. Un hardware o software intermediario entre aplicaciones que carecen de APIs para proveer interacción con otros nodos
- c. Una capa de software adicional que le permite a una aplicación interactuar con otra
- d. Una capa de hardware adicional que le permite a un nodo interactuar con otro
 Justificación: Es un tipo de middleware que encapsula otro cacho de software/hardware y le agrega comportamiento, lo cual puede derivar en las opciones seleccionadas. 
- 
Un modelo cliente/servidor puede ser considerado como: - a. Una arquitectura descentralizada
- b. Una arquitectura centralizada
- c. Un modelo diseñado para la comunicación entre varios nodos clientes y varias réplicas de un servidor.
- d. Un modelo diseñado para proveer servicios a varios nodos clientes
 Nota: Esta es la única que me genera duda, porque en clase dijeron que no es una arquitectura descentralizada, ya que por definición el modelo cliente/servidor es centralizado, pero al Tiny le marcaron que es descentralizado 
- 
En cuanto a una arquitectura NFS: - a. Se la puede considerar P2P
- b. Se puede considerar un modelo cliente/servidor de uso particular
- c. Se le puede considerar un modelo en capas
- d. Todas las anteriores
 Justificación: Es un sistema de archivos en la red, no es P2P. 
- 
Un sistema P2P desestructurado se usa para: - a. Conformar un anillo de comunicación entre nodos para tomar una decisión entre los mismos
- b. Seleccionar un nodo líder o coordinador
- c. Sincronizar el tiempo entre todos los nodos
- d. Todas las anteriores
 Justificación: 
- 
Un sistema de Cloud Computing ofrece servicios: - a. Orientados a Infraestructura
- b. Orientados a Middleware
- c. Orientados a Software
- d. Orientados a Plataforma
 Justificación: Lo vimos en AWS pero no me acuerdo 
- 
Los sistemas edge: - a. Son estructurados en forma de hipercubos o mallas
- b. El nivel de latencia es alto, el nivel de confiabilidad y seguridad es bajo
- c. Son estructurados en forma de anillo
- d. Ninguna de las anteriores
 Justificación: La respuesta "b" no está comparando con nada, por lo que no se puede afirmar esto 
- 
Para un sistema basado en blockchain - a. Se usan cadenas de bloques independientes y totalmente diferentes en varios nodos
- b. Procura mantener una sola versión válida de la cadena de bloques distribuida (replicada)
- c. Un nodo coordinador decide sobre la validez de los bloques en la cadena
- d. Se hacen réplicas de la cadena de bloques en diferentes nodos
 Justificación: 
- 
Se puede afirmar que un proceso y un thread - a. Pueden ejecutar un mismo programa
- b. Son conceptos totalmente separados
- c. Los threads representan varias ejecuciones de un mismo proceso
- d. Un proceso puede compartir sus recursos entre los threads del mismo proceso
 Justificación: 
- 
Un S.D tiene entre sus objetivos principales - a. Disminuir la latencia en la ejecución de un thread
- b. Aumentar el rendimiento de aplicaciones no paralelizables
- c. Mejorar la performance de la ejecución de tareas
- d. Aumentar la capacidad de cómputo y almacenamiento
 Justificación: No tiene sentido hacer un sistema distribuido para aplicaciones no paralelizables. Tampoco tiene sentido disminuir la latencia de un thread puesto que la latencia es propia de la red.