Actividad de cierre IV

Description

Autor: Angel Alejandro Castañeda Mora
ANGEL ALEJANDRO CASTANEDA MORA
Flashcards by ANGEL ALEJANDRO CASTANEDA MORA, updated about 2 months ago
ANGEL ALEJANDRO CASTANEDA MORA
Created by ANGEL ALEJANDRO CASTANEDA MORA about 2 months ago
2
0

Resource summary

Question Answer
¿Cuáles son los tipos de relojes? En sistemas distribuidos, los relojes se clasifican principalmente en dos tipos: Relojes Físicos, que intentan medir el tiempo real y mantenerse sincronizados con una referencia externa (ej. UTC), y Relojes Lógicos, que se enfocan en ordenar eventos basándose en la relación de causalidad "sucede antes que", sin necesidad de una correspondencia exacta con el tiempo físico. Ejemplos de relojes lógicos son los relojes de Lamport y los relojes vectoriales.
¿Qué es y para qué sirve la sincronización? La sincronización en sistemas distribuidos es el proceso de coordinar acciones y mantener la consistencia de los datos entre múltiples procesos o nodos que operan de manera concurrente. Sirve para ordenar eventos, controlar el acceso a recursos compartidos (exclusión mutua), asegurar que todos los nodos tengan una vista consistente de los datos y coordinar transacciones distribuidas.
¿Cuáles son los algoritmos de sincronización? Los algoritmos de sincronización de relojes buscan mantener la consistencia temporal entre los nodos. Algunos de los más conocidos son: el Algoritmo de Cristian, donde un cliente se sincroniza con un servidor de tiempo; el Algoritmo de Berkeley, que elige un "maestro" para promediar los tiempos de los nodos y dictar los ajustes; y el Protocolo de Tiempo de Red (NTP), un protocolo jerárquico y robusto ampliamente utilizado en Internet.
¿Cuáles son los algoritmos de elección? Los algoritmos de elección se utilizan para designar un proceso como coordinador o líder en un sistema distribuido. Los dos algoritmos clásicos son: el Algoritmo del Abusón (Bully Algorithm), donde el proceso con el identificador más alto se impone como líder, y el Algoritmo de Anillo (Ring Algorithm), donde los procesos, organizados en un anillo lógico, pasan un mensaje de elección para determinar al líder.
¿Qué es una transacción atómica? Una transacción atómica es una secuencia de operaciones que se ejecuta como una única unidad indivisible de trabajo. Esto significa que o todas las operaciones dentro de la transacción se completan con éxito, o ninguna de ellas se aplica, revirtiendo el sistema a su estado original. Esta propiedad, conocida como atomicidad, es fundamental para mantener la integridad de los datos en sistemas de bases de datos y otros sistemas transaccionales.
¿Cuáles son las características principales del algoritmo de Lamport? El algoritmo de relojes lógicos de Lamport se caracteriza por: 1) Proporcionar un ordenamiento parcial de eventos basado en la relación de causalidad "sucede antes que". 2) Utilizar un contador numérico simple (timestamp) en cada proceso. 3) Ser relativamente simple de implementar. 4) No detectar la concurrencia de eventos; dos eventos con el mismo timestamp de Lamport no son necesariamente concurrentes.
¿Cuáles son las condiciones para la asignación de un tiempo en el algoritmo Lamport? La asignación de timestamps en el algoritmo de Lamport sigue dos reglas fundamentales: 1) Entre eventos en el mismo proceso: El contador del proceso se incrementa antes de que ocurra cada evento. 2) Para eventos de envío y recepción de mensajes: Cuando un proceso envía un mensaje, incluye su timestamp actual. Al recibir el mensaje, el proceso receptor ajusta su propio reloj al máximo entre su valor actual y el timestamp del mensaje recibido, y luego lo incrementa en uno.
¿Cuántos son los mensajes por dato/salida, el retraso antes del dato en tiempo de mensajes y el principal problema de Anillo de fichas de exclusión mutua? En el algoritmo de Anillo de Fichas (Token Ring) para exclusión mutua: Mensajes por entrada/salida a la sección crítica: Varía de 1 (si el proceso ya tiene el token) a N (en el peor de los casos, donde N es el número de procesos). Retraso antes de la entrada: De 0 a N-1 pasos de mensaje para obtener el token. Principal problema: La pérdida del token, que puede detener el progreso del sistema, y la falla de un proceso, que puede romper el anillo lógico.
¿Cuáles son los dos algoritmos de elección? Los dos algoritmos de elección más representativos en sistemas distribuidos son el Algoritmo del Abusón (Bully Algorithm) y el Algoritmo de Anillo (Ring Algorithm).
¿Qué es una transacción atómica? Una transacción atómica es un conjunto de operaciones que se tratan como una única unidad lógica. La característica fundamental es la atomicidad, que garantiza que o todas las operaciones se ejecutan con éxito, o ninguna lo hace, asegurando la consistencia de los datos.
¿Qué problema de los relojes físicos intentan solucionar los relojes lógicos? Los relojes lógicos abordan el problema del deslizamiento del reloj (clock skew) y la dificultad de mantener una sincronización perfecta de los relojes físicos en un sistema distribuido. En lugar de depender del tiempo real, se centran en el orden causal de los eventos.
¿Qué garantiza la propiedad de "atomicidad" en las transacciones? La atomicidad garantiza que una transacción es una operación de "todo o nada". Si la transacción tiene éxito, todos sus cambios se confirman permanentemente. Si falla por cualquier motivo, todos los cambios realizados se deshacen (rollback).
¿En qué se diferencia el Algoritmo del Abusón del Algoritmo de Anillo? La principal diferencia radica en la comunicación. En el Algoritmo del Abusón, un proceso puede comunicarse con todos los demás procesos (especialmente aquellos con IDs más altos). En el Algoritmo de Anillo, la comunicación está restringida al sucesor lógico en el anillo.
¿Qué es la "exclusión mutua" en sistemas distribuidos? La exclusión mutua es una propiedad que garantiza que, en un momento dado, solo un proceso puede acceder a un recurso compartido o ejecutar una sección crítica de código, previniendo así condiciones de carrera e inconsistencias de datos.
¿Cómo funciona el Algoritmo de Berkeley para la sincronización de relojes? Un proceso "maestro" sondea a los otros procesos ("esclavos") para conocer sus tiempos. Luego, calcula un tiempo promedio y envía a cada esclavo el ajuste necesario para su reloj local, en lugar de enviar la hora exacta.
Menciona una desventaja del Algoritmo del Abusón. Una desventaja es la alta sobrecarga de mensajes que puede generar, especialmente si el proceso con el ID más bajo inicia una elección y muchos procesos con IDs más altos responden.
¿Qué información adicional proporciona un reloj vectorial en comparación con un reloj de Lamport? Un reloj vectorial no solo puede determinar si un evento A ocurrió antes que un evento B, sino que también puede determinar si los eventos A y B son concurrentes (no están causalmente relacionados), algo que los relojes de Lamport no pueden hacer.
¿Qué es un "token" en el contexto de la exclusión mutua? Un "token" es un mensaje especial o un privilegio que se pasa entre los procesos de un sistema distribuido. La posesión del token otorga al proceso el derecho a entrar en su sección crítica.
¿Cuál es el objetivo principal del protocolo NTP? El objetivo principal de NTP (Network Time Protocol) es proporcionar una sincronización de tiempo precisa y fiable para los ordenadores en redes de datos con latencia variable, como Internet.
¿Qué significa que un sistema distribuido sea "tolerante a fallos"? Significa que el sistema puede continuar operando correctamente, posiblemente con una degradación del rendimiento, incluso si uno o más de sus componentes fallan.
¿Por qué es importante el ordenamiento de eventos en sistemas distribuidos? Es crucial para la consistencia de los datos replicados, la depuración de errores, la implementación de transacciones distribuidas y para asegurar que las operaciones se apliquen en un orden lógico y predecible en todos los nodos.
Define "sección crítica". Una sección crítica es un segmento de código que accede a recursos compartidos (como variables o archivos) y que no debe ser ejecutado por más de un proceso a la vez para evitar inconsistencias.
¿Qué es el "retraso de propagación" y cómo afecta a la sincronización? Es el tiempo que tarda un mensaje en viajar desde el emisor hasta el receptor. Este retraso es variable e impredecible, lo que introduce incertidumbre y es el principal desafío a superar por los algoritmos de sincronización de relojes.
¿En qué consiste la propiedad de "Aislamiento" (Isolation) en las transacciones (ACID)? El aislamiento asegura que las transacciones concurrentes no interfieran entre sí. El resultado de ejecutar múltiples transacciones simultáneamente debe ser el mismo que si se hubieran ejecutado de forma secuencial.
¿Cómo maneja el Algoritmo de Anillo la falla del proceso que tiene el token? La falla del proceso con el token es un problema significativo. Se requieren mecanismos adicionales, como temporizadores de espera (timeouts), para detectar la pérdida del token y regenerarlo, a menudo iniciando un nuevo proceso de elección.
¿Qué es la "causalidad" en el contexto de los relojes lógicos? La causalidad se refiere a la relación "sucede antes que". Un evento A causa un evento B si A debe ocurrir antes que B. Por ejemplo, el envío de un mensaje siempre ocurre antes de su recepción.
¿Cuál es la función de un "servidor de tiempo"? Un servidor de tiempo es una máquina con acceso a una fuente de tiempo muy precisa (como un reloj atómico o GPS) y que sirve como referencia para que otros ordenadores en la red sincronicen sus propios relojes.
¿Qué son las "propiedades ACID" de las transacciones? Son un conjunto de propiedades (Atomicidad, Consistencia, Aislamiento y Durabilidad) que garantizan que las transacciones de una base de datos se procesen de forma fiable.
Describe brevemente el algoritmo de Ricart-Agrawala para la exclusión mutua. Es un algoritmo basado en permisos. Un proceso que desea entrar en la sección crítica envía una solicitud a todos los demás procesos. Solo puede entrar cuando recibe una respuesta afirmativa de todos ellos. Utiliza timestamps de Lamport para resolver conflictos.
¿Qué es un "deadlock" o interbloqueo en sistemas distribuidos? Un interbloqueo es una situación en la que dos o más procesos se bloquean mutuamente, cada uno esperando a que el otro libere un recurso que necesita, lo que resulta en un cese total del progreso de esos procesos.
Show full summary Hide full summary

Similar

Gallardo_Ramon_SCD
Alex Gallardo
Actividad de Cierre III
MALLY SAMIRA HERNANDEZ MARTINEZ
Flash cards actividad de cierre
ADRIANA LORELY LIZARRAGA MIRAMONTES