PUERTA | Puerta TI 2007 | Pregunta 10

Los procesos P 1 y P 2 usan Critical_flag en la siguiente rutina para lograr la exclusión mutua. Suponga que Critical_flag se inicializa en FALSO en el programa principal. Considere las siguientes declaraciones. i. Es posible que tanto P 1 como P 2 accedan a la región_crítica al mismo tiempo. ii. Esto puede conducir a un punto muerto. ¿Cuál de los siguientes se cumple? (A) (i) es falsa y (ii) es verdadera (B) Tanto (i) como (ii) son falsas (C) (i) es verdadera y (ii) es falsa (D) Tanto (i) como ( ii) son verdaderas Respuesta: (C) Explicación: Decir P 1

get_exclusive_access ( )
{
if (critical _flag == FALSE) {
critical_flag = TRUE ;
critical_region() ;
critical_flag = FALSE;
}
}





comienza primero y ejecuta la declaración 1, después de que el contexto del sistema cambie a P 2 (antes de ejecutar la declaración 2), y entra dentro de la declaración if, ya que el indicador sigue siendo falso.
¡Así que ahora ambos procesos están en la sección crítica! entonces (i) es verdadero .. (ii) es falso
De ninguna manera sucede que flag es verdadero y ningún proceso está dentro de la cláusula if, si alguien ingresa a la sección crítica, definitivamente hará flag = false. Así que no hay punto muerto.

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *