Navegue por el glosario usando este índice.

Especial | A | B | C | D | E | F | G | H | I | J | K | L | M | N | Ñ | O | P | Q | R | S | T | U | V | W | X | Y | Z | TODAS

C

Comunicación

Proceso por el cual dos o más procesos intercambian información. Se presentan dos casos:

  • Compartiendo recursos: se necesita conectar directamente los recursos compartidos (por ejemplo, la memoria compartida) a los diferentes procesadores. Estos recursos a su vez se pueden organizar de manera paralela (por ejemplo, partir la memoria compartida en bancos).
  • Por la transmisión de la información: se deben interconectar los procesadores entre ellos, para poder intercambiar información. Ejemplo: envío de mensajes.

En ambos casos se requiere de redes de comunicación. Entre más grande es el número de componentes, más importante es la red de interconexión.


El tiempo de comunicación afecta al tiempo de ejecución de un proceso, siendo la fórmula:

tp= t_comm + t_comp  

Donde:

  • t_comm es el tiempo de comunicación
  • t_comp es el tiempo de cómputo.


Reducir la sobrecarga de comunicación es fundamental debido al tiempo significativo que la comunicación entre procesos puede tomar. La relación computo/comunicación, es un indicador del rendimiento de sistemas paralelos, se describe como

computo/comunicación  = t_comp  / t_comm



Concurrencia

Habilidad de un algoritmo para ejecutar múltiples operaciones en un momento.

Concurrency


En la figura podemos observar distintas operaciones simultáneas a una base de datos, podemos ver como las operaciones que están en conflicto serán tratadas por la base de datos aplicando algún algoritmo de concurrencia,ej: 2PL( algoritmo de bloqueo).


Concurrencia Aparente

El número de procesos es mayor que el número de procesadores disponibles. Cada proceso avanza su ejecución intercalando con el resto.

La concurrencia aparente describe la ilusión de que varias tareas están ejecutándose simultáneamente, aunque en realidad se están ejecutando de manera secuencial y alternada rápidamente. Esto se logra mediante técnicas el uso de hilos de ejecución en sistemas operativos que simulan la ejecución simultánea de múltiples procesos o tareas.


Concurrencia Real

Cada proceso es ejecutado en un procesador. Es decir, el número de procesos es menor o igual que el número de procesadores disponibles.

88xZ5q1BHEhlSbLF1mpzwUw82xCdisAdsXPCja4l0sPvNP6Ts8vBGLgCD5BfenspM3ohFHBkLvczxEueGkSr9AWmY6ADF11Nn_fgx8TfX2SE88Gbz55GjXsAoGcleHTxZeGkcSoooSzW3lHJufLDjHY


Condiciones de Bernstein

Supongamos un programa S, donde L(S) son lecturas y E(S) son escrituras dentro del código de S. Dos instrucciones de S, denominadas Sy S2, pueden ser ejecutadas en un orden cualquiera, o en paralelo, si las tres condiciones siguientes se cumplen:


  • Ausencia de cualquier dependencia Verdadera (E(S1)∩L(S2)=0): esto significa que S2 no utiliza ningún valor producido por S1. Si no es el caso, no se puede introducir paralelismo, ya que al introducirlo se correría el riesgo de que S2 calcule resultados errados debido a que leerá al azar un valor producido por S1 (el valor que había antes de la operación E(S1), o con suerte, después que esa operación termine).

  • Ausencia de cualquier Antidependencia (L(S1)∩E(S2)=0): si no se respeta esta dependencia, la ejecución paralela puede dar resultados errados, ya que quizás S2 asigne un nuevo valor a una variable antes que S1 haya podido leer el viejo valor de esa variable (va en el sentido inverso de la anterior).

  • Ausencia de cualquier dependencia de Salida (E(S1)∩E(S2)=0): en este caso se exige que no existan datos modificados a la vez por S1 y S2. Si no se respeta esta condición, la ejecución paralela dará un resultado indeterminado tal, que no se pueda determinar cuál valor final será guardado en la variable común.