Buenas, mirando el tema de semáforos quise implementar prioridades entre procesos usando una variable booleana.
Por ejemplo si tengo el siguiente escenario: el problema del Productor - Consumidor y a parte tengo Inspectores que tienen prioridad tanto sobre los Productores como sobre los Consumidores a la hora de entrar al buffer.
Mi idea fue que al momento de obtener el buffer los Productores o Consumidores preguntaran si había llegado un inspector, si es así liberaran el buffer y esperaran a que el inspector lo liberara.
procedure productor() { procedure inspector() { procedure consumidor() {
producir(); hayInspector = true; P(N);
P(E); P(S); P(S);
P(S); mirarBuffer(); if (hayInspector) {
if (hayInspector) { V(S); V(S);
V(S); } P(S);
P(S); hayInspector = false;
hayInspector = false; }
} tomar();
guardar(); V(S);
V(S); V(E);
V(N); }
}
Gracias.
Saludos!