¿Qué constituye exactamente la informática distribuida?
La computación distribuida es una colección inherentemente paralela de elementos de procesamiento que se comunican entre sí para abordar uno o más problemas. Esos elementos de procesamiento están suficientemente separados entre sí que no es práctico construir una estructura de mensajería confiable y oportuna entre ellos, por lo que es imposible que exista un conocimiento global del estado del sistema. Las características particulares de los mensajes con sistemas distribuidos son que los mensajes se perderán, se confundirán, se retrasarán; las soluciones en este espacio deben tener en cuenta esto. Por lo tanto, la programación distribuida se trata de tratar con redes y mensajes, paralelismo y falta de información global.
El método más sencillo para solucionar los problemas es hacer que un único elemento de procesamiento sea especial, es decir, autoritario para una determinada información. Luego, los otros elementos pueden volver a consultarlo cada vez, o almacenar en caché la información y esperar que no se desactualice (ya que no pueden contar con que se les informe de los cambios). Esta es la arquitectura clásica de cliente / servidor.
La informática en Internet es informática distribuida, pero sin la capacidad de controlar lo que la mayoría de los nodos distribuidos realmente hacen.
¿Múltiples hilos paralelos que intentan sincronizarse para acceder a un recurso constituyen un problema en el dominio de la computación distribuida?
Constituyen una posible solución que es útil al construir el modelo cliente / servidor, pero a un costo de un aumento potencialmente dramático en la contención de recursos. Para las lecturas, eso no es un gran problema (siempre que haya suficiente hardware), pero para las escrituras es un gran problema.
Sin embargo, lo que intenta evitar son bloqueos distribuidos. La falta de mensajería confiable y oportuna mata absolutamente los protocolos de decisión distribuidos, a menos que use algo como el protocolo Paxos , pero eso tiene muchas advertencias. El problema fundamental con la informática distribuida es que "a los mensajes les pasan cosas malas". Los protocolos de nivel relativamente bajo, como TCP, disminuyen los problemas, pero aún puede desatarse.