Hay tres procesos P 1 , P 2 y P 3 que comparten un semáforo para sincronizar una variable. El valor inicial del semáforo es uno. Suponga que el valor negativo del semáforo nos dice cuántos procesos están esperando en la cola. Los procesos acceden al semáforo en el siguiente orden:
(a) P 2 necesita acceder
(b) P 1 necesita acceder
(c) P 3 necesita acceder
(d) P 2 sale de la sección crítica
(e) P 1 sale de la sección crítica
El final el valor del semáforo será:
(A) 0
(B) 1
(C) -1
(D) -2
Respuesta: (A)
Explicación: Valor inicial de los semáforos S=1
- P 2 necesita acceder disminuye el semáforo en 1, el nuevo valor será 0 (nadie está esperando)
- P 1 necesita acceder disminuye el semáforo en 1, el nuevo valor será -1 (un proceso está esperando)
- P 3 necesita acceder disminuye el semáforo en 1, el nuevo valor será -2 (2 procesos están esperando)
- P 2 sale de la sección crítica aumenta el semáforo en 1, el nuevo valor será -1 (un proceso está esperando)
- P 1 sale de la sección crítica aumenta el semáforo en 1, el nuevo valor será 0 (no hay ningún proceso en espera)
Entonces, la opción (A) es correcta.
Cuestionario de esta pregunta
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA