jueves, 5 de enero de 2012

Sincronización por Rendezvous, iniciar tareas a la vez



El fin del Rendezvous es sincronizar varias tareas que se ejecutan en instantes diferentes. Nos basaremos en un ejemplo de Labview para explicar su funcionamiento. Este ejemplo consiste en sincronizar tres gráficas que se ejecutan en diferentes instantes.


El panel frontal consta de tres gráficas y un pulsador a modo de interruptor para sincronizar la ejecución de las gráficas.


En el diagrama de bloques lo primero que nos encontramos es el borrado de las gráficas. Con la función first call, que devuelve true en el instante inicial, activa el case y borra las gráficas.


Creamos el Rendezvous con el nombre de "mi sincronización" y le especificamos que vamos a sincronizar 3 tareas.


Creamos los retardos de ejecución, de 0, 1 y 5 segundos. En los case, si tenemos activado el pulsador "rendezvous", sincronizamos las ejecuciones con la función wait a rendezvous.


Creamos las gráficas, con la función Get Date/Time in seconds, introducimos el tiempo de ejecución en la gráfica, así se consigue sacar gráficas diferentes. Finalmente cerramos el rendezvous.


Observamos como la función wait a rendezvous espera a que le lleguen las tres tareas:


No hay comentarios:

Publicar un comentario