Hola, mirando el teórico de ADA, no me queda claro cómo se garantiza la mutuoexclusión al acceso de variables comunes a los llamadores.
Las consideron "comunes" cuando diferentes instancias de tasks realizan pedidos de encuentro de una task particular que define dentro suyo una variable local.
Por ejemplo, en el problema de productor-comsumidor, hay un task BUFFER que define una variable contenido que es un array con los elementos a consumir y producir.
Cuando ese contenido no es vacío y tampoco está lleno, las guardas que permiten aceptar agregar y consumir son ambas verdaderas.
¿No se puede dar en ese caso que una instancia de consumidor esté sacando un elemento del buffer al mismo tiempo que otra instancia de productor esté agregando al un elemento al buffer?
Seguramente la duda sea sencilla de aclarar pero no lo estoy viendo claro todavìa.
Gracias