Examen Febrero 2020 Problema 2 , semaforos

Examen Febrero 2020 Problema 2 , semaforos

de Agustin Cabral Liard -
Número de respuestas: 3

Entiendo que el semaforo try se usa para intentar entrar a la sala de a un Tecnico a la vez, y tambien se usa del lado de TH en caso de que haya al menos un TH esperando para entrar, para bloquear los intentos de entrada, hasta que los TH esperando para entrar sean 0.

Pero si ese es el comportamiento, y yo tengo 2 TH y 3TS, cuando entra el primer TH se queda con el try, deja entrar el segundo TH, porque se saltea la condicion del p(try) ya que cantTH > 1 (es 2), pero los 3 TS no pueden acceder xq  el try sigue siendo 0 ya que hasta que el ultimo TH de esos dos no salga, no se va a hacer un V(try).

No se si es que estoy razonando algo mal o que, dejo debajo la consigna y la solucion


Se tiene un controlador para entrar en una sala de servidores. A la sala entran a realizarmantenimiento tanto técnicos de software (TS) como de hardware (TH) y sólo pueden entrar 5 personas al mismo tiempo. los TH tienen prioridad para entrar por sobre los TS, sin embargodentrodecadasubgruponoexisteningúnordenespecificado.

ex2020-2-ej2

En respuesta a Agustin Cabral Liard

Re: Examen Febrero 2020 Problema 2 , semaforos

de German Moreira Bellini -
Buenas, tengo la misma duda que el compañero. Cuando en la letra menciona que se debe dar prioridad a los TH, significa que si hay un TH ya no puedan ingresar mas TS aunque en la sala haya menos de 5 personas?. Por ejemplo, hay 2 TH y ningún TS, luego si llegan TS deben esperar a que salgan todos los TH?
En respuesta a German Moreira Bellini

Re: Examen Febrero 2020 Problema 2 , semaforos

de Leonardo Alberro Zimmermann -
Hola,
creo que depende donde apliques la prioridad. En la solución de arriba una vez que está llena la sala, los TS que lleguen hacen fila en el mutexTS, mientras que el primer TH que llegue espera en el try. Cuando alguien haga lugar en la sala y haga V (try), los TS y TH compiten 1 a 1 y una vez que gane el TH se lo queda hasta que no hayan más THs. Si no estuviera el mutexTS, y llegan 1000 TSs y 1 TH ambos compiten en el try, y no se le da prioridad en la cola al TH (ya que se despiertan aleatoriamente y compite 1000 a 1). Lo que si hace es dar prio una vez que el primero entra en la sala (porque se queda con el try).
En el ejercicio práctico "en clase" de los miércoles, para que esto quede claro se agregó a la letra que si llega un TH este debe tener prioridad sobre los TS que ya estaban esperando.
Saludos