Java - Problema universidad

 
Vista:

Problema universidad

Publicado por quiup (2 intervenciones) el 01/12/2006 18:54:16
Me han puesto este problema en la universidad... Si lo soluciono tengo la asignatura aprobada. Aquel que lo haga, le recompensaré con 150€! Adelante...

Enunciado

La implementación de monitores Signal and Continue (SC) mediante semáforos vista en clase, a pesar de ser didáctica, a veces se comporta de forma incorrecta.

Se pide:

* Que describáis claramente y detalladamente las causas del error y las situaciones en que se manifesta.
* Una solución: una realización correcta de la clase MonitorSC (monitors Signal and Continue) a partir de semáforos.
Especificación de las clases MonitorSC i Condition que tiene que cumplir la realización correcta:

public class MonitorSC {
protected MonitorSC();

protected void mon_enter();
protected void mon_exit();

protected Condition create_cond();
protected void wait_cond(Condition c);
protected void signal_cond(Condition c);
protected void signal_cond_all(Condition c);
}

public class Condition {
}

Realización de monitores SC vista en clase

(NOTA: en algunos grupos se ha visto otras muy similares)

public class MonitorSC {

private Semaphore mutex;

protected MonitorSC()
{
mutex = new Semaphore(1);
}

protected void mon_enter()
{
mutex.P();
}

protected void mon_exit()
{
mutex.V();
}

protected Condition create_cond()
{
return new Condition();
}

protected void wait_cond(Condition c)
{
++ c.waiting;
mutex.V();
c.queue.P();
mutex.P();
}

protected void signal_cond(Condition c)
{
if (c.waiting > 0) {
c.waiting --;
c.queue.V();
}
}

protected void signal_cond_all(Condition c)
{
while (c.waiting > 0) {
c.waiting --;
c.queue.V();
}
}

}

public class Condition {

Semaphore queue;
int waiting;

Condition()
{
queue = new Semaphore(0);
}

}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problema universidad

Publicado por tsukasa (42 intervenciones) el 01/12/2006 22:27:26
A ver, haría falta un semáforo para poner la realización del ejercicio y la obtención de la plata en el mismo recurso, así no me arriesgo a hacerlo y que justo otra persona responda primero.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema universidad

Publicado por quiupbcn (2 intervenciones) el 02/12/2006 07:16:19
Gracias! Pero lo que busco es la solución completa al problema... es decir, como para entregarlo ya. Lo de los 150€ va en serio... Si crees que lo puedes hacer, intentalo y si es correcto, te llevas el premio! :D
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar