ADA: variables compartidas

ADA: variables compartidas

de Alexis Alfonso -
Número de respuestas: 1

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

En respuesta a Alexis Alfonso

Re: ADA: variables compartidas

de Jorge Merlino -

Las variables de un task son privadas de ese task y no las puede acceder otro proceso. Los encuentros de un task los ejecuta el hilo de ejecución asociado a ese task por lo que no es posible que se ejecute más de uno a la vez.