¿Qué es un sistema distribuido?
Enviado por mensonoti • 4 de Septiembre de 2015 • Apuntes • 17.674 Palabras (71 Páginas) • 277 Visitas
1.1 ¿Qué es un sistema distribuido?
Leslie Lamport dijo una vez: Un sistema distribuido es aquel en que el fracaso de un equipo que ni siquiera sabía que existían puede hacer su propia computadora inutilizable. Si bien esto no es una definición, que caracteriza a los retos de dar con una definición adecuada de un sistema distribuido.
Que es lo está distribuida en un sistema distribuido? Si el procesador del sistema informático se encuentra a 100 yardas de distancia de su memoria principal, entonces es un sistema distribuido? ¿Qué pasa si los dispositivos de E / S se encuentran tres millas de distancia desde el procesador? Si se toma en cuenta la distribución física, entonces la definición de un sistema distribuido se vuelve dependiente incómodamente sobre el grado de distribución física de los componentes de hardware, lo que ciertamente no es aceptable. Para aliviar este problema, es ahora habitual para caracterizar un sistema distribuido utilizando la distribución lógica o funcional de las capacidades de procesamiento.
La distribución lógica de las capacidades funcionales generalmente se basa en el siguiente conjunto de criterios:
Múltiples procesos. El sistema consta de más de un proceso secuencial. Estos procesos pueden ser procesos, ya sea del sistema o de usuario, pero cada proceso deben tener un hilo independiente de control- ya sea explícita o implícita.
La comunicación entre procesos. Los procesos se comunican entre sí mediante mensajes que tienen un tiempo finito para viajar de un proceso a otro. La naturaleza real o el fin de la demora dependerá de las características físicas de los enlaces de los mensajes. Estos enlaces de mensajes también se llaman canales.
Espacios de direcciones disjuntos. Los procesos tienen espacios de direcciones disjuntos. Estamos por lo tanto no vamos a tener en cuenta los multiprocesadores de memoria compartida como una verdadera representación de un sistema de computación distribuida, aunque la memoria compartida se puede implementar utilizando mensajes. La relación entre la memoria compartida y paso de mensajes se discutirá en un capítulo posterior.
Meta colectiva. Los procesos deben interactuar entre sí para cumplir con un objetivo común. Considere dos procesos P y Q en una red de procesos. Si P calcula f (x) = x2 para un determinado conjunto de valores de x, y Q multiplica un conjunto de números por π, entonces dudamos en llamar un sistema distribuido, ya que no hay interacción entre P y Q. Sin embargo, si P y Q cooperan entre sí para calcular las áreas de un conjunto de círculos de radio x, entonces el sistema de procesos (P y Q) es un ejemplo de un sistema distribuido significativa.
La definición anterior es un mínimo. No toma en consideración todo el control ejecutivo del sistema de cooperación entre procesos, o cuestiones de seguridad, que son sin duda las preocupaciones importantes en relación con la gestión del tiempo de ejecución y el apoyo de los cálculos de los usuarios. Nuestra definición pone de relieve las características más simples posibles para un cálculo a distribuir lógicamente. Distribución física sólo es un requisito previo para la distribución lógica.
1.2 ¿POR QUE SISTEMAS DISTRIBUIDOS?
En los últimos años, los sistemas distribuidos han ganado importancia sustancial. Las razones de su creciente importancia son múltiples:
Geográficamente distribuido medio ambiente. En primer lugar, en muchas situaciones, el propio entorno informático se distribuye geográficamente. Como ejemplo, considere una red bancaria. Cada banco se supone que para mantener las cuentas de sus clientes. Además, los bancos se comunican entre sí para controlar las transacciones interbancarias o transferencias de fondos de registro de los cajeros automáticos dispersos geográficamente. Otro ejemplo común de un entorno informático distribuido geográficamente es el Internet, que ha influido profundamente nuestra forma de vida. La movilidad de los usuarios ha añadido una nueva dimensión a la distribución geográfica.
Acelerar. En segundo lugar, existe la necesidad de acelerar el cálculo. La velocidad de la computación en uniprocesadores tradicionales se está acercando rápidamente al límite físico. Mientras que los procesadores superescalares y VLIW extienden el límite introduciendo el paralelismo a nivel de arquitectura (número de instrucciones), las técnicas no escalan mucho más allá de un cierto nivel. Una técnica alternativa de obtener más poder computacional es el uso de múltiples procesadores. División de un problema en subproblemas total de menores, y la asignación de estos subproblemas para separar procesadores físicos que pueden operar simultáneamente es potencialmente un método atractivo de mejorar la velocidad de cálculo. Además, este enfoque promueve una mejor escalabilidad, donde los usuarios pueden aumentar incrementalmente la potencia de cálculo mediante la compra de elementos o recursos de procesamiento adicionales. Muy a menudo, esto es más sencillo y más económico que la inversión en un único monoprocesador súper.
El intercambio de recursos. En tercer lugar, existe la necesidad de compartir recursos. En este caso, el término recurso representa tanto los recursos de hardware y software. El usuario del equipo A puede querer usar una impresora láser de lujo conectado con el equipo B, o el usuario del equipo B puede necesitar un poco de espacio de disco adicional disponible con equipo C para almacenar un archivo grande. En una red de estaciones de trabajo, estación de trabajo A puede querer usar los poderes de cómputo ociosos de las estaciones de trabajo B y C para mejorar la velocidad de un cálculo particular. Bases de datos distribuidas son buenos ejemplos de la puesta en común de los recursos de software, donde un gran base de datos se pueden almacenar en varias máquinas host, y constantemente actualizado o recuperados por una serie de procesos de agente.
Tolerancia a fallos. Cuarto uniprocesadores poderosos o sistemas informáticos en torno a un único nodo central son propensos a un colapso total cuando falla el procesador. Muchos usuarios consideran que esto es riesgoso. Ellos son, sin embargo dispuesto a comprometer con una degradación parcial en el rendimiento del sistema, cuando un fallo paraliza una fracción de los muchos elementos de procesamiento o enlaces de un sistema distribuido. Esta es la esencia de la degradación elegante. La otra cara de este enfoque es que, mediante la incorporación de elementos de procesamiento redundantes en un sistema distribuido, uno potencialmente puede aumentar la fiabilidad del sistema o de la disponibilidad del sistema. Por ejemplo, en un sistema que tiene la redundancia modular triple (TMR), tres unidades funcionales idénticos se utilizan para realizar el mismo cálculo, y el resultado correcto se determina por mayoría de votos. En otros sistemas distribuidos tolerantes a fallos, los procesadores de Comprobación entre sí en los puntos de control predefinidos, lo que permite la detección automática de fallos, diagnóstico y eventual recuperación. Así, un sistema distribuido es una excelente oportunidad para la incorporación de tolerancia a fallos y la degradación agraciada.
...