Flashcards
Actividad de cierre IV
Cards in this deck (33)
- 1¿Cuáles son los tipos de relojes?* Relojes físicos: Estos son relojes hardware que están integrados en los dispositivos de cómputo y se utilizan para mantener un seguimiento del tiempo real.
* Relojes lógicos: Los relojes lógicos son relojes virtuales que se utilizan para ordenar eventos dentro de un sistema distribuido.
* Relojes vectoriales: Los relojes vectoriales son una extensión de los relojes lógicos que también mantienen información sobre el orden relativo de eventos entre diferentes nodos en el sistema.
* Relojes causales: Los relojes causales son una forma de relojes vectoriales que imponen una relación de causalidad entre eventos en el sistema distribuido. - 2¿Qué es y para que sirve la sincronización?Se refiere al proceso de coordinar la ejecución de múltiples tareas o procesos para evitar condiciones de carrera, garantizar la consistencia de los datos y mantener la integridad del sistema. La sincronización es esencial en entornos donde múltiples tareas o procesos comparten recursos o interactúan entre sí, ya que permite que estas actividades se ejecuten de manera ordenada y predecible.
- 3¿Cuáles son los algoritmos de sincronización?* Exclusión mutua: algoritmo para garantizar la exclusión mutua entre dos procesos utilizando variables compartidas como turnos y banderas de interés.
* Semáforos: son variables especiales que permiten a los procesos sincronizarse y coordinar el acceso a recursos compartidos.
* Monitores: son estructuras de datos que encapsulan variables y procedimientos relacionados, permitiendo la sincronización y el acceso seguro a recursos compartidos.
* Locks (Cerrojos): Cuando un proceso intenta adquirir un cerrojo que ya está en uso, el proceso entra en un bucle de espera activa hasta que el cerrojo esté disponible.
* Variables de condición: Son variables especiales utilizadas en conjunción con monitores para permitir que los procesos esperen y sean notificados sobre ciertas condiciones. - 4¿Cuáles son los algoritmos de elección?* Algoritmo de Bully: se utiliza para elegir un coordinador en un sistema distribuido. Si un nodo detecta que el coordinador actual ha fallado, inicia una elección enviando un mensaje a todos los nodos con un ID más alto.
* Algoritmo de Anillo: los nodos están organizados en un anillo lógico y se pasa un token de nodo en nodo. Cuando un nodo detecta que el coordinador ha fallado, inicia una elección enviando un mensaje a través del anillo.
* Algoritmo de Líder Completo: Cada nodo mantiene una lista de todos los nodos del sistema y sus estados. Cuando un nodo detecta un fallo, inicia una elección enviando un mensaje a todos los demás nodos.
* Algoritmo de Paxos: algoritmo de consenso más general que se utiliza para garantizar que un conjunto de nodos en un sistema distribuido llegue a un acuerdo sobre una serie de propuestas, incluso en presencia de fallas.
* Algoritmo de View-Synchronous: Utilizado en sistemas que operan en modo de vista sincrónica, donde los nodos pueden fallar, pero el conjunto de nodos que está activo permanece constante durante cada ronda de elección. - 5¿Qué es una transacción atómica?Es una unidad de trabajo en un sistema de bases de datos que se ejecuta completamente o no se ejecuta en absoluto. Esto significa que, si una transacción se inicia, todas las operaciones que la componen deben completarse con éxito para que la transacción se considere exitosa. Si ocurre un error en alguna parte de la transacción, todas las operaciones realizadas hasta ese punto deben deshacerse o revertirse, dejando la base de datos en un estado consistente.
- 6¿Cuáles son las características principales del algoritmo de Lamport?* Relojes lógicos: El algoritmo de Lamport utiliza relojes lógicos para registrar el orden de eventos en un sistema distribuido.
* Orden parcial: El algoritmo de Lamport establece un orden parcial entre eventos en el sistema distribuido. Dos eventos pueden ser comparados entre sí para determinar su orden relativo en el tiempo.
* Relación causales: El algoritmo de Lamport garantiza que si un evento A causó otro evento B, entonces el reloj lógico de A será menor que el reloj lógico de B. Esta relación causal entre eventos es fundamental para garantizar la consistencia en sistemas distribuidos.
* Coherencia temporal: Aunque los relojes lógicos de Lamport no necesariamente reflejan el tiempo real, garantizan la coherencia temporal dentro del sistema distribuido.
* Simplicidad: El algoritmo de Lamport es relativamente simple y fácil de entender e implementar. Utiliza un concepto básico de relojes lógicos y una regla simple para comparar eventos, lo que lo hace adecuado para su uso en una variedad de entornos distribuidos. - 7¿Cuáles son las condiciones para la asignación de un tiempo en el algoritmo Lamport?* Incremento local: Cada vez que ocurre un evento local en un proceso, su reloj lógico local se incrementa en una unidad. Esto significa que cada evento local recibe un tiempo mayor que el evento anterior en el mismo proceso.
* Envío de mensajes: Cuando un proceso envía un mensaje, adjunta su tiempo actual de reloj lógico al mensaje como un timestamp. Este timestamp refleja el tiempo en el que ocurrió el evento de envío del mensaje en el proceso emisor.
* Recepción de mensajes: Cuando un proceso recibe un mensaje, actualiza su reloj lógico local para garantizar que sea mayor que el tiempo registrado en el mensaje recibido. Específicamente, el tiempo en el reloj lógico se ajusta para ser el máximo entre el tiempo actual del reloj lógico y el tiempo registrado en el mensaje más uno. - 8¿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?* Mensajes por dato/salida: En el Anillo de Fichas, cada proceso solo puede enviar un mensaje de datos (o realizar una salida) cuando posee la ficha, que es un tipo especial de mensaje utilizado para gestionar la exclusión mutua. Por lo tanto, se envía un mensaje de datos/salida por ficha en posesión del proceso.
* Retraso antes del dato en tiempo de mensajes: El retraso antes del dato en tiempo de mensajes en el Anillo de Fichas puede ser significativo, ya que los procesos deben esperar a que la ficha circule por el anillo antes de poder enviar sus propios mensajes de datos/salida. Esto puede introducir un retraso adicional en la comunicación entre los procesos.
* Principal problema del Anillo de Fichas de Exclusión Mutua: El principal problema del Anillo de Fichas para la exclusión mutua es la posible pérdida de la ficha. Si un proceso que posee la ficha falla o se vuelve inaccesible antes de pasar la ficha al siguiente proceso en el anillo, el sistema puede quedarse sin una manera de garantizar la exclusión mutua. - 9¿Cuáles son los dos algoritmos de elección?* Algoritmo de Bully: El algoritmo de Bully es un algoritmo descentralizado utilizado para elegir un coordinador o líder entre un grupo de nodos en un sistema distribuido. Si un nodo detecta que el coordinador actual ha fallado, inicia una elección enviando un mensaje de "elección" a todos los nodos con identificadores más altos. Si no recibe respuesta de ningún nodo con un identificador más alto, se declara a sí mismo como el coordinador.
* Algoritmo de Anillo (Ring Algorithm): El algoritmo de Anillo es otro algoritmo descentralizado utilizado para elegir un coordinador entre un grupo de nodos en un sistema distribuido. Los nodos están organizados en un anillo lógico y se pasa un "token" de nodo en nodo. Cuando un nodo detecta que el coordinador ha fallado, inicia una elección enviando un mensaje a través del anillo. El nodo que recibe el mensaje y tiene el identificador más alto se convierte en el nuevo coordinador. - 10¿Qué es una transacción atómica?Es una unidad de trabajo en un sistema de bases de datos que se ejecuta completamente o no se ejecuta en absoluto. Esto significa que, si una transacción se inicia, todas las operaciones que la componen deben completarse con éxito para que la transacción se considere exitosa. Si ocurre un error en alguna parte de la transacción, todas las operaciones realizadas hasta ese punto deben deshacerse o revertirse, dejando la base de datos en un estado consistente.
- 11Algoritmos para la sincronización de relojes: CristianPropuesto por el científico de la computación Leslie Lamport, este algoritmo utiliza un servidor de tiempo centralizado para sincronizar los relojes de los nodos en un sistema distribuido. Los nodos envían solicitudes de tiempo al servidor y ajustan sus relojes en consecuencia.
- 12Algoritmos para la sincronización de relojes: BerkeleyEn este enfoque, un nodo es designado como el "nodo maestro" que coordina la sincronización de los relojes en el sistema. El nodo maestro recopila los tiempos de los relojes de los nodos y calcula un promedio, luego envía ajustes de tiempo a los nodos para sincronizar sus relojes.
- 13Algoritmos para la sincronización de relojes: Protocolo de Temporización del Protocolo de Red (NTP)NTP es un protocolo de red ampliamente utilizado para la sincronización de relojes en Internet y otras redes. Utiliza una arquitectura cliente-servidor, donde los clientes envían solicitudes de tiempo a servidores NTP confiables para sincronizar sus relojes.
- 14Algoritmos para la sincronización de relojes: Precision Time Protocol (PTP)PTP es un protocolo de sincronización de relojes diseñado para aplicaciones que requieren una sincronización de alta precisión, como en sistemas de control industrial o telecomunicaciones. PTP permite una sincronización a nivel de submicrosegundos utilizando técnicas como la estampación de tiempo en hardware.
- 15Algoritmos para la sincronización de relojes: Algoritmo de reloj vectorialEste tipo de algoritmo utiliza información de estampación de tiempo de eventos para construir una relación de orden entre eventos en el sistema distribuido. Los relojes vectoriales pueden ser utilizados para garantizar una sincronización parcial de los relojes en sistemas donde no es necesario un ajuste preciso de los relojes.
- 16Uso de relojes sincronizadosLos relojes sincronizados son esenciales en sistemas distribuidos donde la coordinación precisa del tiempo es crucial. Algunos de los usos más importantes de los relojes sincronizados incluyen:
* Coordinación de eventos
* Prevención de colisiones
* Establecimiento de secuencias temporales
* Registro de eventos
* Garantía de consistencia de datos - 17¿Qué es la exclusión mutua?Se refiere a la necesidad de garantizar que, en un momento dado, solo un proceso tenga acceso a un recurso compartido. En otras palabras, la exclusión mutua asegura que no haya dos o más procesos concurrentes ejecutando una sección crítica o accediendo a un recurso compartido al mismo tiempo.
- 18¿Qué es un algoritmo centralizado y para qué sirve?Un algoritmo centralizado es aquel en el cual una entidad central coordina y controla las acciones de los demás participantes o nodos en un sistema distribuido. En estos algoritmos, todas las decisiones y procesos relevantes son manejados por un único nodo o entidad central, mientras que los demás nodos actúan siguiendo sus instrucciones o directrices.
En un contexto más amplio, los algoritmos centralizados pueden aplicarse en diferentes áreas, incluyendo la sincronización de relojes, la gestión de recursos, la coordinación de tareas y la toma de decisiones. - 19¿Qué es un algoritmo distribuido y para qué sirve?Un algoritmo distribuido es un conjunto de instrucciones o procedimientos diseñados para resolver un problema o realizar una tarea en un entorno donde múltiples nodos o procesadores independientes colaboran entre sí, generalmente a través de una red de comunicación, para lograr un objetivo común. Estos algoritmos se utilizan en sistemas distribuidos, donde los recursos y la información están distribuidos entre varios nodos o dispositivos interconectados.
La principal característica de un algoritmo distribuido es que cada nodo en el sistema tiene una visión limitada o parcial del sistema completo y opera de manera autónoma, tomando decisiones basadas en la información disponible localmente y en la comunicación con otros nodos. Esto contrasta con los algoritmos centralizados, donde hay una entidad central que coordina y controla todas las operaciones. - 20¿Qué es un algoritmo de anillo de fichas y para qué sirve?también conocido como algoritmo del token ring, es un método utilizado en sistemas distribuidos para garantizar la exclusión mutua y coordinar el acceso a recursos compartidos entre múltiples nodos conectados en un anillo lógico. En este algoritmo, se utiliza un "token" especial que circula de nodo en nodo en un anillo lógico, y solo el nodo que posee el token tiene permiso para acceder al recurso compartido en un momento dado. Los nodos que no poseen el token deben esperar pacientemente a que les llegue.
- 21Modelo de transacción atómicaEl modelo de transacción atómica se basa en el concepto ACID, que son las siglas en inglés de Atomicidad (Atomicity), Consistencia (Consistency), Aislamiento (Isolation) y Durabilidad (Durability).
* Atomicidad: Una transacción se considera atómica si todas sus operaciones se ejecutan con éxito o ninguna de ellas se ejecuta en absoluto.
* Consistencia: Después de que una transacción se completa con éxito, la base de datos debe mantener un estado consistente, respetando todas las restricciones de integridad y las reglas de negocio definidas.
* Aislamiento: Las operaciones de una transacción en ejecución no deben interferir con las operaciones de otras transacciones concurrentes.
* Durabilidad: Una vez que una transacción se ha completado con éxito, los cambios realizados por esa transacción deben ser duraderos y persistir incluso en caso de fallo del sistema o reinicio. - 22¿Qué es la implantación?La implantación se refiere al proceso de llevar a cabo la ejecución real de un sistema o aplicación en un entorno operativo. Esto implica tomar el software desarrollado y ponerlo en funcionamiento en el hardware y la infraestructura de red específicos donde se utilizará.
- 23¿Cuáles son los pasos en el proceso de implantación de un sistema distribuido?* Preparación del entorno: Antes de la implantación, es necesario configurar y preparar el entorno operativo donde se ejecutará el sistema.
* Instalación del software: Una vez que el entorno está preparado, se instala el software del sistema distribuido en los nodos correspondientes.
* Configuración: Después de instalar el software, se realiza la configuración necesaria para adaptarlo al entorno operativo específico.
* Pruebas: Una vez que el sistema está instalado y configurado, se realizan pruebas exhaustivas para verificar que todo funcione correctamente en el entorno operativo real.
* Despliegue: Una vez que las pruebas son exitosas, el sistema distribuido se despliega oficialmente en producción.
* Monitoreo y mantenimiento: Una vez que el sistema está en producción, se establecen mecanismos de monitoreo para supervisar su rendimiento, disponibilidad y seguridad. - 24¿Qué es el control de concurrencia?El control de concurrencia es un aspecto crucial en sistemas de bases de datos distribuidas y sistemas concurrentes en general. Se refiere a la gestión y coordinación de múltiples operaciones concurrentes que acceden y modifican datos compartidos para garantizar la consistencia y la integridad de los mismos. El objetivo principal del control de concurrencia es evitar problemas como las condiciones de carrera, las lecturas sucias, las lecturas no repetibles y las escrituras fantasma.
- 25Bloqueo en sistemas distribuidosEl bloqueo en sistemas distribuidos es un mecanismo utilizado para garantizar la exclusión mutua y evitar que múltiples procesos accedan simultáneamente a recursos compartidos. A diferencia del bloqueo en sistemas centralizados, donde un proceso puede bloquear un recurso localmente, en sistemas distribuidos, el bloqueo implica la coordinación entre nodos o procesos distribuidos.
- 26Estrategias para implementar el bloqueo en sistemas distribuidos* Bloqueo centralizado: En este enfoque, se designa un nodo centralizado o un servidor como el coordinador del bloqueo.
* Bloqueo distribuido: En este enfoque, los nodos o procesos distribuidos colaboran entre sí para gestionar los bloqueos.
* Bloqueo basado en tokens: En este enfoque, se utiliza un "token" especial que se pasa de un nodo a otro para controlar el acceso a los recursos compartidos.
* Bloqueo optimista: En este enfoque, los procesos asumen que no habrá conflictos de acceso a recursos compartidos y realizan operaciones sin bloquear explícitamente el recurso. - 27¿Qué es la detección distribuida de bloqueos?La detección distribuida de bloqueos es un proceso utilizado en sistemas distribuidos para identificar y resolver situaciones donde se produce un bloqueo mutuo entre varios nodos o procesos que compiten por recursos compartidos. En un entorno distribuido, donde múltiples nodos pueden solicitar acceso simultáneo a los mismos recursos, es crucial detectar y resolver bloqueos de manera eficiente para evitar el estancamiento del sistema.
- 28¿Cuál es el proceso de detección distribuida de bloqueos?* Monitoreo de bloqueos: Cada nodo o proceso en el sistema distribuido monitorea los bloqueos que ha adquirido y las solicitudes de bloqueo que ha enviado a otros nodos.
* Detección de ciclos de espera: Los nodos monitorean continuamente las relaciones de bloqueo entre sí para detectar posibles ciclos de espera, donde un nodo está esperando por un recurso que está bloqueado por otro nodo, que a su vez está esperando por un recurso bloqueado por el primer nodo.
* Resolución de bloqueos: Una vez que se detecta un ciclo de espera, se inicia el proceso de resolución de bloqueos para romper el ciclo y permitir que los procesos continúen ejecutándose.
* Algoritmos de detección y resolución: Se pueden utilizar diferentes algoritmos para la detección y resolución de bloqueos en sistemas distribuidos. - 29¿Qué es la prevención distribuida de bloqueos?La prevención distribuida de bloqueos es un enfoque utilizado en sistemas distribuidos para evitar que se produzcan situaciones de bloqueo mutuo entre varios nodos o procesos que compiten por recursos compartidos. A diferencia de la detección y resolución de bloqueos, que aborda el problema una vez que se ha producido un bloqueo mutuo, la prevención de bloqueos busca evitar que dichas situaciones ocurran en primer lugar mediante el diseño cuidadoso de algoritmos y protocolos de acceso a recursos.
- 30¿Cuáles son las estrategias utilizadas para la prevención distribuida de bloqueos?* Ordenamiento de recursos: Establecer un orden global o parcial en los recursos compartidos para garantizar que los nodos soliciten los recursos en el mismo orden.
* Asignación de recursos de manera exclusiva: Utilizar técnicas de bloqueo exclusivo para asegurar que un recurso solo pueda ser accedido por un nodo a la vez.
* Evitar la espera circular: Establecer políticas de acceso a recursos que impidan la formación de ciclos de espera.
* Diseño de protocolos de comunicación eficientes: Utilizar protocolos de comunicación eficientes que minimicen la necesidad de bloqueo y coordinación entre nodos.
* Implementación de mecanismos de timeouts: Utilizar mecanismos de timeouts para limitar el tiempo de espera de un nodo para adquirir un recurso. - 31AlumnoValeria Cervantes Murguía
- 32ConclusionesComencé analizando algoritmos de sincronización, tales como exclusión mutua, semáforos y monitores, los cuales son esenciales para coordinar el acceso a recursos compartidos y prevenir condiciones de carrera en sistemas con múltiples procesos concurrentes. También aprendí lo que es el modelo cliente-servidor, examinando sus capas y ventajas, y estableciendo su relación con el modelo OSI.
También entendí más sobre el algoritmo de Lamport, destacando su uso de relojes lógicos para ordenar eventos en sistemas distribuidos. Además de abordar el concepto de transacciones atómicas en bases de datos distribuidas, que aseguran la consistencia de los datos al garantizar que las operaciones se completen completamente o no se ejecuten en absoluto.
En resumen, exploré una variedad de temas fundamentales, desde la sincronización de procesos hasta la gestión de transacciones en entornos distribuidos. Estos conceptos son cruciales para comprender cómo diseñar y mantener sistemas distribuidos eficientes y confiables en entornos concurrentes y distribuidos. - 33Bibliografía* Tanebaum Andrew. (1995). Sistemas Operativos Distribuidos. España. Prentice-Hall Hisp.
* Mclver Ann. (2011). Sistemas Operativos. México. Cengage Learning.
* Elmasri, R., Gil Carrick, A., & Levine, D. (2010). Sistemas Operativos, Un enfoque en espiral. McGraw-‐Hill.
* Romano studija, http://www.roman.lt/, Copyright (C) 2007. All rights reserved. (s. f.). S.O unidad-2. https://sistemasoperativos.angelfire.com/html/2.4.2.html#:~:text=La%20sincronizacion%20es%20la%20transmision,comparacion%20de%20recursos%20de%20computo.
* Salguero, E. (2019, 12 octubre). Sistemas distribuidos: coordinación y acuerdo (II) - Edu Salguero - Medium. Medium. https://medium.com/@edusalguero/sistemas-distribuidos-coordinacion-y-acuerdo-aa0b18b444e7#:~:text=Un%20algoritmo%20de%20elecci%C3%B3n%20es,espec%C3%ADfica%20del%20algoritmo%20de%20elecci%C3%B3n.
Information
- Description
- Recordar elementos previos relacionándolos entre si.
- Created by
- VALERIA CERVANTES MURGUIA
- Views
- 20
- Rating