Sistema distribuido: paliza en la memoria compartida distribuida

En este artículo, vamos a entender Thrashing en un sistema distribuido. Pero antes de eso, comprendamos qué es un sistema distribuido y por qué se produce la paliza. En términos ingenuos, un sistema distribuido es una red de computadoras o dispositivos que están en diferentes lugares y conectados entre sí. Cada una de estas computadoras distribuidas comparte el mismo estado. Digamos que hemos abierto una cuenta bancaria en la sucursal de Delhi en el banco ABC. Entonces esta cuenta se verá reflejada en todas las sucursales de la sucursal ABC presentes en todo el país y el mundo.

En épocas anteriores, había una sola máquina para guardar la base de datos. Pero ahora, debido al sistema distribuido, podemos guardar información en cualquier dispositivo, y los cambios se realizarán en todas partes. Así podemos ver lo importante que es un sistema distribuido ya que toda nuestra información se almacena en él. Para la comunicación entre procesos, se utiliza con frecuencia la memoria compartida. La memoria compartida distribuida se usa para permitir que aplicaciones en computadoras separadas trabajen juntas y compartan memoria. La memoria compartida distribuida puede experimentar ‘ paliza’ . Aunque varias tareas modifican distintos datos, la mayor parte del trabajo se dedica a la sincronización de datos. El resultado es que el avance que hace cada proceso es muy poco.

Uno de los problemas más significativos y sin resolver es la programación de programas concurrentes. La pregunta pertinente es: ¿cómo utilizar adecuadamente los recursos inactivos y cómo compartir equitativamente la máquina en todas las actividades? La programación local de procesos es una solución fácil y escalable. En esta programación, cada estación de trabajo planifica sus actividades por separado. En un sistema distribuido, sin embargo, también se requiere la coordinación sincronizada del trabajo concurrente en todos los Nodes de un multiprocesador. Debido a la hiperpaginación de la CPU, los procesos que componen un trabajo paralelo pueden experimentar latencias de comunicación significativas si no se programan conjuntamente. La paliza puede provocar retrasos excesivos en la transmisión. Puede conducir a una eficiencia deficiente si la programación no está sincronizada. Con la conexión de dispositivos por redes de alta velocidad con retrasos en microsegundos,

Thrashing es un proceso que ocurre cuando el sistema pasa la mayor parte del tiempo transfiriendo bloques de bloques de datos compartidos de un Node a otro en comparación con el tiempo dedicado a realizar el trabajo útil de ejecutar el proceso de la aplicación. Si la paliza no se maneja con cuidado, degrada considerablemente el rendimiento del sistema.

Situaciones que pueden causar palizas:

  1. Efecto ping pong: ocurre cuando los procesos hacen acceso a datos intercalados en dos o más Nodes, lo que puede causar que un bloque de datos se mueva de un Node a otro en rápida sucesión, lo que se conoce como efecto ping-pong.
  2. Cuando los bloques que tienen permiso de solo lectura se invalidan repetidamente después de que se replican. Se produce por mala localidad de referencia.
  3. Cuando los datos están siendo modificados por múltiples Nodes en el mismo instante.

¿Cómo controlar la paliza?

1. Proporcionar bloqueos controlados por aplicaciones

  • Los datos se bloquean durante un breve período de tiempo para evitar que los Nodes accedan a los datos y, por lo tanto, evitarán la hiperpaginación.
  • Para este método, se puede asociar un bloqueo controlado por la aplicación con cada bloque de datos.

2. Clavar un bloque al Node por un tiempo mínimo (t):

  • No se permite quitar un bloque de un Node hasta que pase una cantidad mínima de tiempo (t) después de que se haya asignado al Node.
  • Sobre la base de patrones de acceso anteriores, el tiempo t se puede fijar de forma estática o dinámica.
  • El problema con este método es fijar el valor de t
  • Hay dos formas de ajustar el valor de t. Son los siguientes:
    • Según el patrón de acceso anterior del bloque, el valor de t se puede ajustar. Y,
    • Basado en la longitud de la cola de procesos que esperan acceder a ese bloque.

3. Adaptar el algoritmo de coherencia a los patrones de uso de datos compartidos

  • Se pueden usar diferentes protocolos de coherencia para datos compartidos que tienen diferentes características para minimizar la hiperpaginación.

Publicación traducida automáticamente

Artículo escrito por error_502 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *