PUERTA | PUERTA 2006 | Pregunta 57

Las operaciones de espera y señal de un monitor se implementan utilizando semáforos de la siguiente manera. En el siguiente,

  • x es una variable de condición,
  • mutex es un semáforo inicializado a 1,
  • x_sem es un semáforo inicializado a 0,
  • x_count es el número de procesos que esperan en el semáforo x_sem, inicialmente 0, el siguiente es un semáforo inicializado en 0,
  • next_count es el número de procesos que esperan en el semáforo next, inicialmente 0.
  • El cuerpo de cada procedimiento que es visible fuera del monitor se reemplaza con lo siguiente:

    P(mutex);
    body of procedure
    if (next_count > 0)
        V(next);
    else
        V(mutex);

    Cada ocurrencia de x.wait se reemplaza con lo siguiente:

    x_count = x_count + 1;
    if (next_count > 0)
        V(next)
    else
        V(mutex);
    ------------------------------------------------------------ E1;
    x_count = x_count - 1;

    Cada ocurrencia de x.signal se reemplaza con lo siguiente:

    if (x_count > 0)
    {
        next_count = next_count + 1;
        ------------------- E2;
        P(next),
        next_count = next_count - 1;
    }

    Para la implementación correcta del monitor, las sentencias E1 y E2 son, respectivamente,
    (A) P(x_sem), V(siguiente)
    (B) V(siguiente), P(x_sem)
    (C) P(siguiente), V(x_sem) )
    (D) P(x_sem), V(x_sem)

    Respuesta: (B)
    Explicación:
    Cuestionario de esta pregunta
    Comente a continuación si encuentra algo incorrecto en la publicación anterior

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 *