ScholarGate
Asistente

Modelos de Sistemas Distribuidos

Los modelos de sistemas distribuidos son las suposiciones abstractas —sobre arquitectura, temporización, comunicación y fallos— que definen en qué puede confiar un algoritmo distribuido y qué debe tolerar.

Encontrar tema con PaperMindPróximamenteFind papers & topics
Tools & resources
Descargar diapositivas
Learn & explore
VídeoPróximamente

Definition

Un sistema distribuido es una colección de computadoras independientes que se comunican solo mediante el intercambio de mensajes y que aparece a sus usuarios como un único sistema coherente; un modelo de sistema es el conjunto de suposiciones sobre procesos, canales de comunicación, temporización y fallos bajo los cuales se analiza dicho sistema.

Scope

Esta área cubre los modelos arquitectónicos y físicos de los sistemas distribuidos (clientes, servidores, pares y organizaciones de múltiples niveles), los modelos de temporización que distinguen la ejecución síncrona de la asíncrona, los modelos de fallo fundamentales (caída, omisión, temporización y bizantino), y las abstracciones de comunicación de paso de mensajes, memoria compartida, invocación remota y middleware. Estos modelos enmarcan cada resultado en el campo: un algoritmo correcto bajo un modelo puede ser imposible bajo otro, por lo que hacer explícito el modelo es un requisito previo para razonar sobre la corrección y el rendimiento.

Sub-topics

Core questions

  • ¿Qué suposiciones sobre temporización, comunicación y fallos requiere un algoritmo distribuido dado?
  • ¿En qué se diferencian los modelos síncronos y asíncronos, y por qué la distinción cambia lo que es computable?
  • ¿Qué clases de fallos de proceso y canal debe tolerar un protocolo para ser correcto?
  • ¿Cuándo debe estructurarse un sistema en torno al paso de mensajes frente a una abstracción de memoria compartida o invocación remota?

Key theories

Modelos síncronos versus asíncronos
En un modelo síncrono existen límites conocidos en el retardo de los mensajes y la velocidad relativa del procesador, lo que permite el uso de tiempos de espera (timeouts) para detectar fallos; en un modelo asíncrono no existen tales límites, lo que hace que la detección de fallos sea fundamentalmente poco fiable y subyace a muchos resultados de imposibilidad.
Jerarquía de modelos de fallos
Los fallos de proceso y canal se clasifican de benignos a graves —caída (fail-stop), omisión, temporización y arbitrarios (bizantinos)—, necesitándose garantías más fuertes para enmascarar fallos más graves; el modelo elegido determina tanto la resiliencia alcanzable como el coste de un protocolo.
Abstracciones de comunicación
La computación distribuida se basa en un pequeño conjunto de primitivas de interacción —paso de mensajes asíncrono y síncrono, memoria compartida distribuida e invocación de procedimientos o métodos remotos—, cada una con semánticas distintas para la entrega, el ordenamiento y los fallos que dan forma al diseño de nivel superior.

Clinical relevance

Elegir el modelo correcto es la primera decisión de diseño en cualquier sistema real: las plataformas en la nube, las bases de datos y los servicios de coordinación declaran un modelo de temporización (a menudo parcialmente síncrono) y un modelo de fallos, y estas elecciones determinan qué garantías de consistencia, disponibilidad y tolerancia a fallos puede prometer el sistema.

History

La investigación temprana en sistemas distribuidos en las décadas de 1970 y 1980 buscó identificar las suposiciones mínimas bajo las cuales la coordinación distribuida es posible, produciendo la dicotomía síncrona/asíncrona y una taxonomía de fallos. Estos modelos se consolidaron en libros de texto de Lynch, Attiya y Welch, Tanenbaum y van Steen, y Coulouris y colegas, convirtiéndose en el vocabulario compartido para todo el campo.

Debates

¿Qué tan realista es el modelo asíncrono para sistemas prácticos?
El modelo puramente asíncrono es demostrablemente el más difícil de programar y excluye la detección fiable de fallos, sin embargo, la mayoría de las redes reales solo son intermitentemente lentas; los modelos parcialmente síncronos y los detectores de fallos surgieron como un punto intermedio pragmático que mantiene el rigor al tiempo que admite los tiempos de espera.

Key figures

  • Leslie Lamport
  • Nancy Lynch
  • Andrew S. Tanenbaum
  • Maarten van Steen

Related topics

Seminal works

  • lynch1996
  • tanenbaum2017
  • attiya2004

Frequently asked questions

¿Por qué el modelo de temporización es tan importante?
Porque determina si se puede confiar en los tiempos de espera. En un modelo síncrono, los retardos acotados permiten que un proceso concluya de forma segura que un par silencioso ha fallado; en un modelo asíncrono, un proceso lento y uno caído son indistinguibles, lo cual es la causa raíz de varios resultados de imposibilidad famosos.
¿Qué es un fallo bizantino?
Un fallo bizantino (arbitrario) es aquel en el que un componente defectuoso puede comportarse de cualquier manera, incluyendo el envío de mensajes conflictivos o maliciosos. Tolerarlo es mucho más costoso que tolerar simples caídas y requiere protocolos de acuerdo especializados.

Methods for this concept

Related concepts