23-01-2013, 18:35
12-02-2014, 22:08
Tengo una duda con el ejercicio que se patea un penal
En la resolución no entiendo porque hay un semaforo gol ya existiendo la variable booleana GOL y la funcion validartiro()
Tampoco me cierra el semaforo 'arbitro', existiendo el semaforo 'orden'. Lo demas lo tengo igual
En la resolución no entiendo porque hay un semaforo gol ya existiendo la variable booleana GOL y la funcion validartiro()
Tampoco me cierra el semaforo 'arbitro', existiendo el semaforo 'orden'. Lo demas lo tengo igual
vector de semáforos
jugador[5]=[1,0,0,0,0];
pos_jug,pos_arq,orden,arbitro,gol,pateo=0
//Proceso ÁRBITRO
while(TRUE){
wait(pos_jug);
wait(pos_arq);
dar_orden();
signal(orden);
wait(arbitro);
validar_tiro();
signal(gol);
signal(gol);
signal(jugador[siguiente()]);
}
//Proceso JUGADOR
while(TRUE){
wait(jugador[actual()]);
posicionarse();
signal(pos_jug);
wait(orden);
patear();
signal(pateo);
wait(gol);
if (GOL==TRUE){
festejar();
else{
lamentarse();
}
//Proceso ARQUERO
while(TRUE){
posicionarse();
signal(pos_arq);
wait(pateo);
atajar();
signal(arbitro);
wait(gol);
if (GOL==FALSE){
festejar();
else{
lamentarse();
}
14-02-2014, 20:45
Nadie me explica me preguntonta?
30-05-2014, 15:11
quizas un toque tarde, pero el semaforo gol lo tenes que poner, porque fijate que jugador o arquero podrian validar gol antes de que el arbitro ejecute la instruccion validar tiro... nunca se puede depender de los tiempos de ejecucion
y el semaforo arbitro, es porque el arbitro no puede validar el tiro antes de que el tipo ataje, asi que una vez que ataje el arquero, despierta a arbitro para que pueda validar el tiro
saludos !
y el semaforo arbitro, es porque el arbitro no puede validar el tiro antes de que el tipo ataje, asi que una vez que ataje el arquero, despierta a arbitro para que pueda validar el tiro
saludos !
13-02-2016, 17:54
El 2 no debería ser así?
sem_a = 3
sem_mutex=1
while (TRUE){
wait(sem_a)
wait (sem_mutex);
id_recurso = pedir_recurso();
signal (sem_mutex);
usar_recurso(id_recurso);
signal(sem_a)
}
Puede pasar que se asignen el mismo recurso a los 3 procesos que ingresan.
Para el 9, es lo mismo si pongo signal(vec_sem_jugador[siguiente()]) al final del proceso Jugador en vez del proceso Arbitro?
Después del festejo habilita a otro jugador a posicionarse. Por lo general es así, hasta que no terminó de patear no se posiciona el próximo.
sem_a = 3
sem_mutex=1
while (TRUE){
wait(sem_a)
wait (sem_mutex);
id_recurso = pedir_recurso();
signal (sem_mutex);
usar_recurso(id_recurso);
signal(sem_a)
}
Puede pasar que se asignen el mismo recurso a los 3 procesos que ingresan.
Para el 9, es lo mismo si pongo signal(vec_sem_jugador[siguiente()]) al final del proceso Jugador en vez del proceso Arbitro?
Después del festejo habilita a otro jugador a posicionarse. Por lo general es así, hasta que no terminó de patear no se posiciona el próximo.