Examen Febrero 2020 - Problema 2 (a)

Re: Examen Febrero 2020 - Problema 2 (a)

de Jorge Merlino -
Número de respuestas: 0

Perdón por la demora en responder pero recién vi ahora la pregunta.

En general lo que se espera es que después de que el sistema se entera que llegó un proceso prioritario no se deje entrar a más procesos sin prioridad hasta que entre el que tiene prioridad. La definición de "el sistema se entera" es un poco variable dependiendo de la herramienta que se use pero la idea es que se modifique algún estado global que indica que hay un proceso prioritario esperando.

En los casos que vos decís el sistema se entera cuando el proceso prioritario agarra el semáforo try. Si fuera en ADA por ejemplo en general podés hacer cosas mejores dado que el 'count te permite saber si hay alguien esperando antes de que obtenga el recurso (sería tu semántica 1). Esto es porque el solo hecho de esperar en un encuentro ya cambia el estado global del sistema.

Estoy de acuerdo que agregar un mutex como en el examen de diciembre hace que potencialmente el proceso prioritario espere menos dado que no puede haber más de uno no prioritario compitiendo con él pero no cambia la idea fundamental. Hasta que no agarre el semáforo try no se le puede dar prioridad.

Por último, en la solución del examen tampoco se cumple tu semántica 3 dado que los semáforos no son FIFO y no se sabe cuando lo va a obtener el proceso prioritario.

Espero que haya quedado más claro.

Saludos